From 2aaec17a651fcfbfcaccef6b94bad6a0f81c393b Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Fri, 26 Feb 2021 16:55:50 -0800 Subject: [PATCH 001/112] Add scaffolding for api server Signed-off-by: Remington Breeze --- Makefile | 87 + go.mod | 5 + go.sum | 1 + pkg/apiclient/rollout/rollout.pb.go | 509 + pkg/apiclient/rollout/rollout.pb.gw.go | 144 + pkg/apiclient/rollout/rollout.proto | 21 + pkg/apiclient/rollout/rollout.swagger.json | 300 + pkg/apis/rollouts/v1alpha1/analysis_types.go | 196 +- .../rollouts/v1alpha1/experiment_types.go | 90 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 22734 ++++++++++++++++ pkg/apis/rollouts/v1alpha1/generated.proto | 1306 + pkg/apis/rollouts/v1alpha1/types.go | 299 +- server/server.go | 56 + 13 files changed, 25467 insertions(+), 281 deletions(-) create mode 100644 pkg/apiclient/rollout/rollout.pb.go create mode 100644 pkg/apiclient/rollout/rollout.pb.gw.go create mode 100644 pkg/apiclient/rollout/rollout.proto create mode 100644 pkg/apiclient/rollout/rollout.swagger.json create mode 100644 pkg/apis/rollouts/v1alpha1/generated.pb.go create mode 100644 pkg/apis/rollouts/v1alpha1/generated.proto create mode 100644 server/server.go diff --git a/Makefile b/Makefile index f5769a2e0d..c3265850dc 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,23 @@ ifdef IMAGE_NAMESPACE IMAGE_PREFIX=${IMAGE_NAMESPACE}/ endif +# protoc,my.proto +define protoc + # protoc $(1) + [ -e vendor ] || go mod vendor + protoc \ + -I /usr/local/include \ + -I . \ + -I ./vendor \ + -I ${GOPATH}/src \ + -I ${GOPATH}/pkg/mod/github.com/gogo/protobuf@v1.3.1/gogoproto \ + -I ${GOPATH}/pkg/mod/github.com/grpc-ecosystem/grpc-gateway@v1.16.0/third_party/googleapis \ + --gogofast_out=plugins=grpc:${GOPATH}/src \ + --grpc-gateway_out=logtostderr=true:${GOPATH}/src \ + --swagger_out=logtostderr=true,fqn_for_swagger_name=true:. \ + $(1) +endef + .PHONY: all all: controller image @@ -57,6 +74,76 @@ codegen: mocks ./hack/update-openapigen.sh PATH=${DIST_DIR}:$$PATH go run ./hack/gen-crd-spec/main.go +LEGACY_PATH=$(GOPATH)/src/github.com/argoproj/argo-rollouts + +.PHONY: ensure-gopath +ensure-gopath: +ifneq ("$(PWD)","$(LEGACY_PATH)") + @echo "Due to legacy requirements for codegen, repository needs to be checked out within \$$GOPATH" + @echo "Location of this repo should be '$(LEGACY_PATH)' but is '$(PWD)'" + @exit 1 +endif + +.PHONY: protogen +protogen: \ + pkg/apis/rollouts/v1alpha1/generated.proto \ + pkg/apiclient/rollout/rollout.swagger.json \ + $(GOPATH)/bin/mockery + go generate ./pkg/apiclient/rollout + rm -Rf vendor + go mod tidy + +PROTO_BINARIES := $(GOPATH)/bin/protoc-gen-gogo $(GOPATH)/bin/protoc-gen-gogofast $(GOPATH)/bin/goimports $(GOPATH)/bin/protoc-gen-grpc-gateway $(GOPATH)/bin/protoc-gen-swagger +TYPES := $(shell find pkg/apis/rollouts/v1alpha1 -type f -name '*.go' -not -name openapi_generated.go -not -name '*generated*' -not -name '*test.go') + +$(GOPATH)/bin/mockery: + ./hack/recurl.sh dist/mockery.tar.gz https://github.com/vektra/mockery/releases/download/v1.1.1/mockery_1.1.1_$(shell uname -s)_$(shell uname -m).tar.gz + tar zxvf dist/mockery.tar.gz mockery + chmod +x mockery + mkdir -p $(GOPATH)/bin + mv mockery $(GOPATH)/bin/mockery + mockery -version + +$(GOPATH)/bin/controller-gen: + $(call go_install,sigs.k8s.io/controller-tools/cmd/controller-gen) + +$(GOPATH)/bin/go-to-protobuf: + $(call go_install,k8s.io/code-generator/cmd/go-to-protobuf) + +$(GOPATH)/bin/protoc-gen-gogo: + $(call go_install,github.com/gogo/protobuf/protoc-gen-gogo) + +$(GOPATH)/bin/protoc-gen-gogofast: + $(call go_install,github.com/gogo/protobuf/protoc-gen-gogofast) + +$(GOPATH)/bin/protoc-gen-grpc-gateway: + $(call go_install,github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway) + +$(GOPATH)/bin/protoc-gen-swagger: + $(call go_install,github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger) + +$(GOPATH)/bin/openapi-gen: + $(call go_install,k8s.io/kube-openapi/cmd/openapi-gen) + +$(GOPATH)/bin/swagger: + $(call go_install,github.com/go-swagger/go-swagger/cmd/swagger) + +$(GOPATH)/bin/goimports: + $(call go_install,golang.org/x/tools/cmd/goimports) + +pkg/apis/rollouts/v1alpha1/generated.proto: $(GOPATH)/bin/go-to-protobuf $(PROTO_BINARIES) $(TYPES) + [ -e vendor ] || go mod vendor + go mod download + ${GOPATH}/bin/go-to-protobuf \ + --go-header-file=./hack/custom-boilerplate.go.txt \ + --packages=github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1 \ + --apimachinery-packages=+k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/policy/v1beta1 \ + --proto-import ./vendor + touch pkg/apis/rollouts/v1alpha1/generated.proto + +pkg/apiclient/rollout/rollout.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apiclient/rollout/rollout.proto + $(call protoc,pkg/apiclient/rollout/rollout.proto) + .PHONY: controller controller: clean-debug CGO_ENABLED=0 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller ./cmd/rollouts-controller diff --git a/go.mod b/go.mod index 30626f0b0c..5fa7fd8d26 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,10 @@ require ( github.com/evanphx/json-patch/v5 v5.2.0 github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 github.com/go-openapi/spec v0.19.3 + github.com/gogo/protobuf v1.3.1 + github.com/golang/protobuf v1.4.3 github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.9.5 github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/jstemmer/go-junit-report v0.9.1 github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a @@ -28,6 +31,8 @@ require ( github.com/undefinedlabs/go-mpatch v1.0.6 github.com/valyala/fasttemplate v1.2.1 github.com/vektra/mockery/v2 v2.6.0 + google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a + google.golang.org/grpc v1.29.1 gopkg.in/yaml.v2 v2.3.0 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect k8s.io/api v0.20.4 diff --git a/go.sum b/go.sum index 79c3824662..460afd0679 100644 --- a/go.sum +++ b/go.sum @@ -1585,6 +1585,7 @@ google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEY google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482 h1:i+Aiej6cta/Frzp13/swvwz5O00kYcSe0A/C5Wd7zX8= google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a h1:pOwg4OoaRYScjmR4LlLgdtnyoHYTSAVhhqe5uPdpII8= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go new file mode 100644 index 0000000000..b1ed6728f8 --- /dev/null +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -0,0 +1,509 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: pkg/apiclient/rollout/rollout.proto + +package rollout + +import ( + context "context" + fmt "fmt" + v1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" + proto "github.com/gogo/protobuf/proto" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + io "io" + _ "k8s.io/api/core/v1" + _ "k8s.io/apimachinery/pkg/apis/meta/v1" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type RolloutInfoRequest struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RolloutInfoRequest) Reset() { *m = RolloutInfoRequest{} } +func (m *RolloutInfoRequest) String() string { return proto.CompactTextString(m) } +func (*RolloutInfoRequest) ProtoMessage() {} +func (*RolloutInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_99101d942e8912a7, []int{0} +} +func (m *RolloutInfoRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RolloutInfoRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RolloutInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutInfoRequest.Merge(m, src) +} +func (m *RolloutInfoRequest) XXX_Size() int { + return m.Size() +} +func (m *RolloutInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutInfoRequest proto.InternalMessageInfo + +func (m *RolloutInfoRequest) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + +func (m *RolloutInfoRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func init() { + proto.RegisterType((*RolloutInfoRequest)(nil), "rollout.RolloutInfoRequest") +} + +func init() { + proto.RegisterFile("pkg/apiclient/rollout/rollout.proto", fileDescriptor_99101d942e8912a7) +} + +var fileDescriptor_99101d942e8912a7 = []byte{ + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0x33, 0x31, + 0x14, 0x86, 0x49, 0xf9, 0xf8, 0xa4, 0xb3, 0x70, 0x91, 0x85, 0x94, 0x5a, 0x06, 0xa9, 0x1b, 0x37, + 0x26, 0x56, 0x05, 0x5d, 0x0b, 0x0a, 0x05, 0x57, 0x75, 0x21, 0xb8, 0x91, 0x34, 0x1e, 0x33, 0xb1, + 0x33, 0x39, 0x31, 0x49, 0x07, 0xdc, 0x7a, 0x0b, 0xe2, 0x3d, 0x78, 0x29, 0x2e, 0x05, 0x6f, 0x40, + 0x8a, 0x17, 0x22, 0x33, 0x9d, 0x1f, 0xa5, 0x2e, 0x5c, 0xe5, 0xfc, 0xe4, 0x3c, 0x27, 0xef, 0x4b, + 0xa2, 0x6d, 0x3b, 0x53, 0x5c, 0x58, 0x2d, 0x53, 0x0d, 0x26, 0x70, 0x87, 0x69, 0x8a, 0xf3, 0xe6, + 0x64, 0xd6, 0x61, 0x40, 0xba, 0x56, 0xa5, 0xfd, 0x81, 0x42, 0x54, 0x29, 0x14, 0x03, 0x5c, 0x18, + 0x83, 0x41, 0x04, 0x8d, 0xc6, 0x2f, 0xaf, 0xf5, 0x0f, 0x67, 0xc7, 0x9e, 0x69, 0x2c, 0xba, 0x99, + 0x90, 0x89, 0x36, 0xe0, 0x1e, 0x78, 0xc5, 0xf7, 0x3c, 0x83, 0x20, 0x78, 0x3e, 0xe2, 0x0a, 0x0c, + 0x38, 0x11, 0xe0, 0xa6, 0x9a, 0x3a, 0x57, 0x3a, 0x24, 0xf3, 0x29, 0x93, 0x98, 0x71, 0xe1, 0x14, + 0x5a, 0x87, 0x77, 0x65, 0xb0, 0x5b, 0x6d, 0xf5, 0x2d, 0xa3, 0xa9, 0xe4, 0x23, 0x91, 0xda, 0x44, + 0xac, 0xd2, 0x86, 0xed, 0x1b, 0xb8, 0x44, 0x07, 0xbf, 0x6c, 0x1c, 0x9e, 0x45, 0x74, 0xb2, 0x04, + 0x8d, 0xcd, 0x2d, 0x4e, 0xe0, 0x7e, 0x0e, 0x3e, 0xd0, 0x41, 0xd4, 0x35, 0x22, 0x03, 0x6f, 0x85, + 0x84, 0x1e, 0xd9, 0x22, 0x3b, 0xdd, 0x49, 0x5b, 0xa0, 0x34, 0xfa, 0x57, 0x24, 0xbd, 0x4e, 0xd9, + 0x28, 0xe3, 0xfd, 0x17, 0x12, 0xad, 0x57, 0xa0, 0x0b, 0x70, 0xb9, 0x96, 0x40, 0x9f, 0x49, 0xd4, + 0xbd, 0x14, 0x41, 0x26, 0x05, 0x99, 0x6e, 0xb2, 0xda, 0xc7, 0xd5, 0x7d, 0xfd, 0x31, 0x6b, 0x85, + 0xb3, 0x5a, 0x78, 0x19, 0x5c, 0xd7, 0x32, 0x99, 0x9d, 0x29, 0x56, 0x08, 0x67, 0x4d, 0xa5, 0x16, + 0xfe, 0x9d, 0x38, 0x8c, 0x1f, 0xdf, 0x3f, 0x9f, 0x3a, 0x3d, 0xba, 0x51, 0xca, 0xce, 0x47, 0xdc, + 0x07, 0x07, 0x22, 0xab, 0xed, 0xda, 0x23, 0x27, 0xa7, 0xaf, 0x8b, 0x98, 0xbc, 0x2d, 0x62, 0xf2, + 0xb1, 0x88, 0xc9, 0xd5, 0xd1, 0x9f, 0x2d, 0xff, 0xf9, 0x2d, 0xa6, 0xff, 0x4b, 0x03, 0x0f, 0xbe, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x33, 0xa6, 0x8e, 0x7b, 0x36, 0x02, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// RolloutServiceClient is the client API for RolloutService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type RolloutServiceClient interface { + // WatchInfo return stream of rollout info + WatchInfo(ctx context.Context, in *RolloutInfoRequest, opts ...grpc.CallOption) (RolloutService_WatchInfoClient, error) +} + +type rolloutServiceClient struct { + cc *grpc.ClientConn +} + +func NewRolloutServiceClient(cc *grpc.ClientConn) RolloutServiceClient { + return &rolloutServiceClient{cc} +} + +func (c *rolloutServiceClient) WatchInfo(ctx context.Context, in *RolloutInfoRequest, opts ...grpc.CallOption) (RolloutService_WatchInfoClient, error) { + stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[0], "/rollout.RolloutService/WatchInfo", opts...) + if err != nil { + return nil, err + } + x := &rolloutServiceWatchInfoClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type RolloutService_WatchInfoClient interface { + Recv() (*v1alpha1.RolloutInfo, error) + grpc.ClientStream +} + +type rolloutServiceWatchInfoClient struct { + grpc.ClientStream +} + +func (x *rolloutServiceWatchInfoClient) Recv() (*v1alpha1.RolloutInfo, error) { + m := new(v1alpha1.RolloutInfo) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// RolloutServiceServer is the server API for RolloutService service. +type RolloutServiceServer interface { + // WatchInfo return stream of rollout info + WatchInfo(*RolloutInfoRequest, RolloutService_WatchInfoServer) error +} + +// UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. +type UnimplementedRolloutServiceServer struct { +} + +func (*UnimplementedRolloutServiceServer) WatchInfo(req *RolloutInfoRequest, srv RolloutService_WatchInfoServer) error { + return status.Errorf(codes.Unimplemented, "method WatchInfo not implemented") +} + +func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { + s.RegisterService(&_RolloutService_serviceDesc, srv) +} + +func _RolloutService_WatchInfo_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(RolloutInfoRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RolloutServiceServer).WatchInfo(m, &rolloutServiceWatchInfoServer{stream}) +} + +type RolloutService_WatchInfoServer interface { + Send(*v1alpha1.RolloutInfo) error + grpc.ServerStream +} + +type rolloutServiceWatchInfoServer struct { + grpc.ServerStream +} + +func (x *rolloutServiceWatchInfoServer) Send(m *v1alpha1.RolloutInfo) error { + return x.ServerStream.SendMsg(m) +} + +var _RolloutService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "rollout.RolloutService", + HandlerType: (*RolloutServiceServer)(nil), + Methods: []grpc.MethodDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "WatchInfo", + Handler: _RolloutService_WatchInfo_Handler, + ServerStreams: true, + }, + }, + Metadata: "pkg/apiclient/rollout/rollout.proto", +} + +func (m *RolloutInfoRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutInfoRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintRollout(dAtA []byte, offset int, v uint64) int { + offset -= sovRollout(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *RolloutInfoRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + l = len(m.Name) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func sovRollout(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozRollout(x uint64) (n int) { + return sovRollout(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *RolloutInfoRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutInfoRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRollout(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRollout(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRollout + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRollout + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowRollout + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthRollout + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupRollout + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthRollout + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthRollout = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRollout = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupRollout = fmt.Errorf("proto: unexpected end of group") +) diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go new file mode 100644 index 0000000000..4271b9cb77 --- /dev/null +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -0,0 +1,144 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: pkg/apiclient/rollout/rollout.proto + +/* +Package rollout is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package rollout + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage + +var ( + filter_RolloutService_WatchInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_RolloutService_WatchInfo_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchInfoClient, runtime.ServerMetadata, error) { + var protoReq RolloutInfoRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RolloutService_WatchInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + stream, err := client.WatchInfo(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +// RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". +// UnaryRPC :call RolloutServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RolloutServiceServer) error { + + mux.Handle("GET", pattern_RolloutService_WatchInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + return nil +} + +// RegisterRolloutServiceHandlerFromEndpoint is same as RegisterRolloutServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterRolloutServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterRolloutServiceHandler(ctx, mux, conn) +} + +// RegisterRolloutServiceHandler registers the http handlers for service RolloutService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterRolloutServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterRolloutServiceHandlerClient(ctx, mux, NewRolloutServiceClient(conn)) +} + +// RegisterRolloutServiceHandlerClient registers the http handlers for service RolloutService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "RolloutServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "RolloutServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "RolloutServiceClient" to call the correct interceptors. +func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RolloutServiceClient) error { + + mux.Handle("GET", pattern_RolloutService_WatchInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_WatchInfo_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_WatchInfo_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_RolloutService_WatchInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "stream", "rollout"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_RolloutService_WatchInfo_0 = runtime.ForwardResponseStream +) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto new file mode 100644 index 0000000000..d3230703ab --- /dev/null +++ b/pkg/apiclient/rollout/rollout.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +option go_package = "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout"; + +import "google/api/annotations.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto"; +import "k8s.io/api/core/v1/generated.proto"; + +package rollout; + +message RolloutInfoRequest { + string namespace = 1; + string name = 2; +} + +service RolloutService { + // WatchInfo return stream of rollout info + rpc WatchInfo(RolloutInfoRequest) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { + option (google.api.http).get = "/api/v1/stream/rollout"; + } +} \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json new file mode 100644 index 0000000000..e6727236c2 --- /dev/null +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -0,0 +1,300 @@ +{ + "swagger": "2.0", + "info": { + "title": "pkg/apiclient/rollout/rollout.proto", + "version": "version not set" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/v1/stream/rollout": { + "get": { + "summary": "WatchInfo return stream of rollout info", + "operationId": "WatchInfo", + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo" + }, + "error": { + "$ref": "#/definitions/grpc.gateway.runtime.StreamError" + } + }, + "title": "Stream result of github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo" + } + } + }, + "parameters": [ + { + "name": "namespace", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "name", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "RolloutService" + ] + } + } + }, + "definitions": { + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "status": { + "type": "string" + }, + "message": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "strategy": { + "type": "string" + }, + "step": { + "type": "string" + }, + "setWeight": { + "type": "string" + }, + "actualWeight": { + "type": "string" + } + }, + "title": "RolloutInfo is information about a rollout" + }, + "google.protobuf.Any": { + "type": "object", + "properties": { + "type_url": { + "type": "string" + }, + "value": { + "type": "string", + "format": "byte" + } + } + }, + "grpc.gateway.runtime.StreamError": { + "type": "object", + "properties": { + "grpc_code": { + "type": "integer", + "format": "int32" + }, + "http_code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "http_status": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/google.protobuf.Any" + } + } + } + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1": { + "type": "object", + "properties": { + "Raw": { + "type": "string", + "format": "byte", + "description": "Raw is the underlying serialization of this object." + } + }, + "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set,\nor a string representing a sub-field or item. The string will follow one of these four formats:\n'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map\n'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item\n'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list\n'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values\nIf a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\n+protobuf.options.(gogoproto.goproto_stringer)=false" + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { + "type": "object", + "properties": { + "manager": { + "type": "string", + "description": "Manager is an identifier of the workflow managing these fields." + }, + "operation": { + "type": "string", + "description": "Operation is the type of operation which lead to this ManagedFieldsEntry being created.\nThe only valid values for this field are 'Apply' and 'Update'." + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the version of this resource that this field set\napplies to. The format is \"group/version\" just like the top-level\nAPIVersion field. It is necessary to track the version of a field\nset because it cannot be automatically converted." + }, + "time": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "title": "Time is timestamp of when these fields were set. It should always be empty if Operation is 'Apply'\n+optional" + }, + "fieldsType": { + "type": "string", + "title": "FieldsType is the discriminator for the different fields format and version.\nThere is currently only one possible value: \"FieldsV1\"" + }, + "fieldsV1": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1", + "title": "FieldsV1 holds the first JSON version format as described in the \"FieldsV1\" type.\n+optional" + } + }, + "description": "ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource\nthat the fieldset applies to." + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name must be unique within a namespace. Is required when creating resources, although\nsome resources may allow a client to request the generation of an appropriate name\nautomatically. Name is primarily intended for creation idempotence and configuration\ndefinition.\nCannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names\n+optional" + }, + "generateName": { + "type": "string", + "description": "GenerateName is an optional prefix, used by the server, to generate a unique\nname ONLY IF the Name field has not been provided.\nIf this field is used, the name returned to the client will be different\nthan the name passed. This value will also be combined with a unique suffix.\nThe provided value has the same validation rules as the Name field,\nand may be truncated by the length of the suffix required to make the value\nunique on the server.\n\nIf this field is specified and the generated name exists, the server will\nNOT return a 409 - instead, it will either return 201 Created or 500 with Reason\nServerTimeout indicating a unique name could not be found in the time allotted, and the client\nshould retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency\n+optional" + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within which each name must be unique. An empty namespace is\nequivalent to the \"default\" namespace, but \"default\" is the canonical representation.\nNot all objects are required to be scoped to a namespace - the value of this field for\nthose objects will be empty.\n\nMust be a DNS_LABEL.\nCannot be updated.\nMore info: http://kubernetes.io/docs/user-guide/namespaces\n+optional" + }, + "selfLink": { + "type": "string", + "description": "SelfLink is a URL representing this object.\nPopulated by the system.\nRead-only.\n\nDEPRECATED\nKubernetes will stop propagating this field in 1.20 release and the field is planned\nto be removed in 1.21 release.\n+optional" + }, + "uid": { + "type": "string", + "description": "UID is the unique in time and space value for this object. It is typically generated by\nthe server on successful creation of a resource and is not allowed to change on PUT\noperations.\n\nPopulated by the system.\nRead-only.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids\n+optional" + }, + "resourceVersion": { + "type": "string", + "description": "An opaque value that represents the internal version of this object that can\nbe used by clients to determine when objects have changed. May be used for optimistic\nconcurrency, change detection, and the watch operation on a resource or set of resources.\nClients must treat these values as opaque and passed unmodified back to the server.\nThey may only be valid for a particular resource or set of resources.\n\nPopulated by the system.\nRead-only.\nValue must be treated as opaque by clients and .\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n+optional" + }, + "generation": { + "type": "string", + "format": "int64", + "title": "A sequence number representing a specific generation of the desired state.\nPopulated by the system. Read-only.\n+optional" + }, + "creationTimestamp": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "description": "CreationTimestamp is a timestamp representing the server time when this object was\ncreated. It is not guaranteed to be set in happens-before order across separate operations.\nClients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system.\nRead-only.\nNull for lists.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n+optional" + }, + "deletionTimestamp": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This\nfield is set by the server when a graceful deletion is requested by the user, and is not\ndirectly settable by a client. The resource is expected to be deleted (no longer visible\nfrom resource lists, and not reachable by name) after the time in this field, once the\nfinalizers list is empty. As long as the finalizers list contains items, deletion is blocked.\nOnce the deletionTimestamp is set, this value may not be unset or be set further into the\nfuture, although it may be shortened or the resource may be deleted prior to this time.\nFor example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react\nby sending a graceful termination signal to the containers in the pod. After that 30 seconds,\nthe Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup,\nremove the pod from the API. In the presence of network partitions, this object may still\nexist after this timestamp, until an administrator or automated process can determine the\nresource is fully terminated.\nIf not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested.\nRead-only.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n+optional" + }, + "deletionGracePeriodSeconds": { + "type": "string", + "format": "int64", + "title": "Number of seconds allowed for this object to gracefully terminate before\nit will be removed from the system. Only set when deletionTimestamp is also set.\nMay only be shortened.\nRead-only.\n+optional" + }, + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Map of string keys and values that can be used to organize and categorize\n(scope and select) objects. May match selectors of replication controllers\nand services.\nMore info: http://kubernetes.io/docs/user-guide/labels\n+optional" + }, + "annotations": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Annotations is an unstructured key value map stored with a resource that may be\nset by external tools to store and retrieve arbitrary metadata. They are not\nqueryable and should be preserved when modifying objects.\nMore info: http://kubernetes.io/docs/user-guide/annotations\n+optional" + }, + "ownerReferences": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference" + }, + "title": "List of objects depended by this object. If ALL objects in the list have\nbeen deleted, this object will be garbage collected. If this object is managed by a controller,\nthen an entry in this list will point to this controller, with the controller field set to true.\nThere cannot be more than one managing controller.\n+optional\n+patchMergeKey=uid\n+patchStrategy=merge" + }, + "finalizers": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Must be empty before the object is deleted from the registry. Each entry\nis an identifier for the responsible component that will remove the entry\nfrom the list. If the deletionTimestamp of the object is non-nil, entries\nin this list can only be removed.\nFinalizers may be processed and removed in any order. Order is NOT enforced\nbecause it introduces significant risk of stuck finalizers.\nfinalizers is a shared field, any actor with permission can reorder it.\nIf the finalizer list is processed in order, then this can lead to a situation\nin which the component responsible for the first finalizer in the list is\nwaiting for a signal (field value, external system, or other) produced by a\ncomponent responsible for a finalizer later in the list, resulting in a deadlock.\nWithout enforced ordering finalizers are free to order amongst themselves and\nare not vulnerable to ordering changes in the list.\n+optional\n+patchStrategy=merge" + }, + "clusterName": { + "type": "string", + "title": "The name of the cluster which the object belongs to.\nThis is used to distinguish resources with same name and namespace in different clusters.\nThis field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.\n+optional" + }, + "managedFields": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" + }, + "description": "ManagedFields maps workflow-id and version to the set of fields\nthat are managed by that workflow. This is mostly for internal\nhousekeeping, and users typically shouldn't need to set or\nunderstand this field. A workflow can be the user's name, a\ncontroller's name, or the name of a specific apply path like\n\"ci-cd\". The set of fields is always in the version that the\nworkflow used when modifying the object.\n\n+optional" + } + }, + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects\nusers must create." + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "description": "API version of the referent." + }, + "kind": { + "type": "string", + "title": "Kind of the referent.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + }, + "name": { + "type": "string", + "title": "Name of the referent.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#names" + }, + "uid": { + "type": "string", + "title": "UID of the referent.\nMore info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "controller": { + "type": "boolean", + "format": "boolean", + "title": "If true, this reference points to the managing controller.\n+optional" + }, + "blockOwnerDeletion": { + "type": "boolean", + "format": "boolean", + "title": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then\nthe owner cannot be deleted from the key-value store until this\nreference is removed.\nDefaults to false.\nTo set this field, a user needs \"delete\" permission of the owner,\notherwise 422 (Unprocessable Entity) will be returned.\n+optional" + } + }, + "description": "OwnerReference contains enough information to let you identify an owning\nobject. An owning object must be in the same namespace as the dependent, or\nbe cluster-scoped, so there is no namespace field." + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.Time": { + "type": "object", + "properties": { + "seconds": { + "type": "string", + "format": "int64", + "description": "Represents seconds of UTC time since Unix epoch\n1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to\n9999-12-31T23:59:59Z inclusive." + }, + "nanos": { + "type": "integer", + "format": "int32", + "description": "Non-negative fractions of a second at nanosecond resolution. Negative\nsecond values with fractions must still have non-negative nanos values\nthat count forward in time. Must be from 0 to 999,999,999\ninclusive. This field may be limited in precision depending on context." + } + }, + "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON. Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" + } + } +} diff --git a/pkg/apis/rollouts/v1alpha1/analysis_types.go b/pkg/apis/rollouts/v1alpha1/analysis_types.go index 876362ae41..f8272ca865 100644 --- a/pkg/apis/rollouts/v1alpha1/analysis_types.go +++ b/pkg/apis/rollouts/v1alpha1/analysis_types.go @@ -16,17 +16,17 @@ import ( // +kubebuilder:resource:path=clusteranalysistemplates,shortName=cat type ClusterAnalysisTemplate struct { metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Spec AnalysisTemplateSpec `json:"spec"` + Spec AnalysisTemplateSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` } // AnalysisTemplateList is a list of AnalysisTemplate resources // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type ClusterAnalysisTemplateList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []ClusterAnalysisTemplate `json:"items"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Items []ClusterAnalysisTemplate `json:"items" protobuf:"bytes,2,rep,name=items"` } // AnalysisTemplate holds the template for performing canary analysis @@ -35,17 +35,17 @@ type ClusterAnalysisTemplateList struct { // +kubebuilder:resource:path=analysistemplates,shortName=at type AnalysisTemplate struct { metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Spec AnalysisTemplateSpec `json:"spec"` + Spec AnalysisTemplateSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` } // AnalysisTemplateList is a list of AnalysisTemplate resources // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type AnalysisTemplateList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []AnalysisTemplate `json:"items"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Items []AnalysisTemplate `json:"items" protobuf:"bytes,2,rep,name=items"` } // AnalysisTemplateSpec is the specification for a AnalysisTemplate resource @@ -53,12 +53,12 @@ type AnalysisTemplateSpec struct { // Metrics contains the list of metrics to query as part of an analysis run // +patchMergeKey=name // +patchStrategy=merge - Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name"` + Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=metrics"` // Args are the list of arguments to the template // +patchMergeKey=name // +patchStrategy=merge // +optional - Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=args"` } // DurationString is a string representing a duration (e.g. 30s, 5m, 1h) @@ -72,38 +72,38 @@ func (d DurationString) Duration() (time.Duration, error) { // Metric defines a metric in which to perform analysis type Metric struct { // Name is the name of the metric - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Interval defines an interval string (e.g. 30s, 5m, 1h) between each measurement. // If omitted, will perform a single measurement - Interval DurationString `json:"interval,omitempty"` + Interval DurationString `json:"interval,omitempty" protobuf:"bytes,2,opt,name=interval,casttype=DurationString"` // InitialDelay how long the AnalysisRun should wait before starting this metric - InitialDelay DurationString `json:"initialDelay,omitempty"` + InitialDelay DurationString `json:"initialDelay,omitempty" protobuf:"bytes,3,opt,name=initialDelay,casttype=DurationString"` // Count is the number of times to run the measurement. If both interval and count are omitted, // the effective count is 1. If only interval is specified, metric runs indefinitely. // If count > 1, interval must be specified. - Count *intstrutil.IntOrString `json:"count,omitempty"` + Count *intstrutil.IntOrString `json:"count,omitempty" protobuf:"bytes,4,opt,name=count"` // SuccessCondition is an expression which determines if a measurement is considered successful // Expression is a goevaluate expression. The keyword `result` is a variable reference to the // value of measurement. Results can be both structured data or primitive. // Examples: // result > 10 // (result.requests_made * result.requests_succeeded / 100) >= 90 - SuccessCondition string `json:"successCondition,omitempty"` + SuccessCondition string `json:"successCondition,omitempty" protobuf:"bytes,5,opt,name=successCondition"` // FailureCondition is an expression which determines if a measurement is considered failed // If both success and failure conditions are specified, and the measurement does not fall into // either condition, the measurement is considered Inconclusive - FailureCondition string `json:"failureCondition,omitempty"` + FailureCondition string `json:"failureCondition,omitempty" protobuf:"bytes,6,opt,name=failureCondition"` // FailureLimit is the maximum number of times the measurement is allowed to fail, before the // entire metric is considered Failed (default: 0) - FailureLimit *intstrutil.IntOrString `json:"failureLimit,omitempty"` + FailureLimit *intstrutil.IntOrString `json:"failureLimit,omitempty" protobuf:"bytes,7,opt,name=failureLimit"` // InconclusiveLimit is the maximum number of times the measurement is allowed to measure // Inconclusive, before the entire metric is considered Inconclusive (default: 0) - InconclusiveLimit *intstrutil.IntOrString `json:"inconclusiveLimit,omitempty"` + InconclusiveLimit *intstrutil.IntOrString `json:"inconclusiveLimit,omitempty" protobuf:"bytes,8,opt,name=inconclusiveLimit"` // ConsecutiveErrorLimit is the maximum number of times the measurement is allowed to error in // succession, before the metric is considered error (default: 4) - ConsecutiveErrorLimit *intstrutil.IntOrString `json:"consecutiveErrorLimit,omitempty"` + ConsecutiveErrorLimit *intstrutil.IntOrString `json:"consecutiveErrorLimit,omitempty" protobuf:"bytes,9,opt,name=consecutiveErrorLimit"` // Provider configuration to the external system to use to verify the analysis - Provider MetricProvider `json:"provider"` + Provider MetricProvider `json:"provider" protobuf:"bytes,10,opt,name=provider"` } // EffectiveCount is the effective count based on whether or not count/interval is specified @@ -126,19 +126,19 @@ func (m *Metric) EffectiveCount() *intstrutil.IntOrString { // Only one of the fields in this struct should be non-nil type MetricProvider struct { // Prometheus specifies the prometheus metric to query - Prometheus *PrometheusMetric `json:"prometheus,omitempty"` + Prometheus *PrometheusMetric `json:"prometheus,omitempty" protobuf:"bytes,1,opt,name=prometheus"` // Kayenta specifies a Kayenta metric - Kayenta *KayentaMetric `json:"kayenta,omitempty"` + Kayenta *KayentaMetric `json:"kayenta,omitempty" protobuf:"bytes,2,opt,name=kayenta"` // Web specifies a generic HTTP web metric - Web *WebMetric `json:"web,omitempty"` + Web *WebMetric `json:"web,omitempty" protobuf:"bytes,3,opt,name=web"` // Datadog specifies a datadog metric to query - Datadog *DatadogMetric `json:"datadog,omitempty"` + Datadog *DatadogMetric `json:"datadog,omitempty" protobuf:"bytes,4,opt,name=datadog"` // Wavefront specifies the wavefront metric to query - Wavefront *WavefrontMetric `json:"wavefront,omitempty"` + Wavefront *WavefrontMetric `json:"wavefront,omitempty" protobuf:"bytes,5,opt,name=wavefront"` // NewRelic specifies the newrelic metric to query - NewRelic *NewRelicMetric `json:"newRelic,omitempty"` + NewRelic *NewRelicMetric `json:"newRelic,omitempty" protobuf:"bytes,6,opt,name=newRelic"` // Job specifies the job metric run - Job *JobMetric `json:"job,omitempty"` + Job *JobMetric `json:"job,omitempty" protobuf:"bytes,7,opt,name=job"` } // AnalysisPhase is the overall phase of an AnalysisRun, MetricResult, or Measurement @@ -166,31 +166,31 @@ func (as AnalysisPhase) Completed() bool { // PrometheusMetric defines the prometheus query to perform canary analysis type PrometheusMetric struct { // Address is the HTTP address and port of the prometheus server - Address string `json:"address,omitempty"` + Address string `json:"address,omitempty" protobuf:"bytes,1,opt,name=address"` // Query is a raw prometheus query to perform - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" protobuf:"bytes,2,opt,name=query"` } // WavefrontMetric defines the wavefront query to perform canary analysis type WavefrontMetric struct { // Address is the HTTP address and port of the wavefront server - Address string `json:"address,omitempty"` + Address string `json:"address,omitempty" protobuf:"bytes,1,opt,name=address"` // Query is a raw wavefront query to perform - Query string `json:"query,omitempty"` + Query string `json:"query,omitempty" protobuf:"bytes,2,opt,name=query"` } // NewRelicMetric defines the newrelic query to perform canary analysis type NewRelicMetric struct { // Profile is the name of the secret holding NR account configuration - Profile string `json:"profile,omitempty"` + Profile string `json:"profile,omitempty" protobuf:"bytes,1,opt,name=profile"` // Query is a raw newrelic NRQL query to perform - Query string `json:"query"` + Query string `json:"query" protobuf:"bytes,2,opt,name=query"` } // JobMetric defines a job to run which acts as a metric type JobMetric struct { - Metadata metav1.ObjectMeta `json:"metadata,omitempty"` - Spec batchv1.JobSpec `json:"spec"` + Metadata metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Spec batchv1.JobSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` } // AnalysisRun is an instantiation of an AnalysisTemplate @@ -200,17 +200,17 @@ type JobMetric struct { // +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="AnalysisRun status" type AnalysisRun struct { metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - Spec AnalysisRunSpec `json:"spec"` - Status AnalysisRunStatus `json:"status,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + Spec AnalysisRunSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status AnalysisRunStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // AnalysisRunList is a list of AnalysisTemplate resources // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object type AnalysisRunList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` - Items []AnalysisRun `json:"items"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` + Items []AnalysisRun `json:"items" protobuf:"bytes,2,rep,name=items"` } // AnalysisRunSpec is the spec for a AnalysisRun resource @@ -218,159 +218,159 @@ type AnalysisRunSpec struct { // Metrics contains the list of metrics to query as part of an analysis run // +patchMergeKey=name // +patchStrategy=merge - Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name"` + Metrics []Metric `json:"metrics" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=metrics"` // Args are the list of arguments used in this run // +optional // +patchMergeKey=name // +patchStrategy=merge - Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=args"` // Terminate is used to prematurely stop the run (e.g. rollout completed and analysis is no longer desired) - Terminate bool `json:"terminate,omitempty"` + Terminate bool `json:"terminate,omitempty" protobuf:"varint,3,opt,name=terminate"` } // Argument is an argument to an AnalysisRun type Argument struct { // Name is the name of the argument - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Value is the value of the argument // +optional - Value *string `json:"value,omitempty"` + Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` // ValueFrom is a reference to where a secret is stored. This field is one of the fields with valueFrom // +optional - ValueFrom *ValueFrom `json:"valueFrom,omitempty"` + ValueFrom *ValueFrom `json:"valueFrom,omitempty" protobuf:"bytes,3,opt,name=valueFrom"` } type ValueFrom struct { // Secret is a reference to where a secret is stored. This field is one of the fields with valueFrom // +optional - SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty"` + SecretKeyRef *SecretKeyRef `json:"secretKeyRef,omitempty" protobuf:"bytes,1,opt,name=secretKeyRef"` //FieldRef is a reference to the fields in metadata which we are referencing. This field is one of the fields with //valueFrom // +optional - FieldRef *FieldRef `json:"fieldRef,omitempty"` + FieldRef *FieldRef `json:"fieldRef,omitempty" protobuf:"bytes,2,opt,name=fieldRef"` } type SecretKeyRef struct { // Name is the name of the secret - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Key is the key of the secret to select from. - Key string `json:"key"` + Key string `json:"key" protobuf:"bytes,2,opt,name=key"` } // AnalysisRunStatus is the status for a AnalysisRun resource type AnalysisRunStatus struct { // Phase is the status of the analysis run - Phase AnalysisPhase `json:"phase"` + Phase AnalysisPhase `json:"phase" protobuf:"bytes,1,opt,name=phase,casttype=AnalysisPhase"` // Message is a message explaining current status - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` // MetricResults contains the metrics collected during the run - MetricResults []MetricResult `json:"metricResults,omitempty"` + MetricResults []MetricResult `json:"metricResults,omitempty" protobuf:"bytes,3,rep,name=metricResults"` // StartedAt indicates when the analysisRun first started - StartedAt *metav1.Time `json:"startedAt,omitempty"` + StartedAt *metav1.Time `json:"startedAt,omitempty" protobuf:"bytes,4,opt,name=startedAt"` } // MetricResult contain a list of the most recent measurements for a single metric along with // counters on how often the measurement type MetricResult struct { // Name is the name of the metric - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Phase is the overall aggregate status of the metric - Phase AnalysisPhase `json:"phase"` + Phase AnalysisPhase `json:"phase" protobuf:"bytes,2,opt,name=phase,casttype=AnalysisPhase"` // Measurements holds the most recent measurements collected for the metric - Measurements []Measurement `json:"measurements,omitempty"` + Measurements []Measurement `json:"measurements,omitempty" protobuf:"bytes,3,rep,name=measurements"` // Message contains a message describing current condition (e.g. error messages) - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` // Count is the number of times the metric was measured without Error // This is equal to the sum of Successful, Failed, Inconclusive - Count int32 `json:"count,omitempty"` + Count int32 `json:"count,omitempty" protobuf:"varint,5,opt,name=count"` // Successful is the number of times the metric was measured Successful - Successful int32 `json:"successful,omitempty"` + Successful int32 `json:"successful,omitempty" protobuf:"varint,6,opt,name=successful"` // Failed is the number of times the metric was measured Failed - Failed int32 `json:"failed,omitempty"` + Failed int32 `json:"failed,omitempty" protobuf:"varint,7,opt,name=failed"` // Inconclusive is the number of times the metric was measured Inconclusive - Inconclusive int32 `json:"inconclusive,omitempty"` + Inconclusive int32 `json:"inconclusive,omitempty" protobuf:"varint,8,opt,name=inconclusive"` // Error is the number of times an error was encountered during measurement - Error int32 `json:"error,omitempty"` + Error int32 `json:"error,omitempty" protobuf:"varint,9,opt,name=error"` // ConsecutiveError is the number of times an error was encountered during measurement in succession // Resets to zero when non-errors are encountered - ConsecutiveError int32 `json:"consecutiveError,omitempty"` + ConsecutiveError int32 `json:"consecutiveError,omitempty" protobuf:"varint,10,opt,name=consecutiveError"` } // Measurement is a point in time result value of a single metric, and the time it was measured type Measurement struct { // Phase is the status of this single measurement - Phase AnalysisPhase `json:"phase"` + Phase AnalysisPhase `json:"phase" protobuf:"bytes,1,opt,name=phase,casttype=AnalysisPhase"` // Message contains a message describing current condition (e.g. error messages) - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` // StartedAt is the timestamp in which this measurement started to be measured - StartedAt *metav1.Time `json:"startedAt,omitempty"` + StartedAt *metav1.Time `json:"startedAt,omitempty" protobuf:"bytes,3,opt,name=startedAt"` // FinishedAt is the timestamp in which this measurement completed and value was collected - FinishedAt *metav1.Time `json:"finishedAt,omitempty"` + FinishedAt *metav1.Time `json:"finishedAt,omitempty" protobuf:"bytes,4,opt,name=finishedAt"` // Value is the measured value of the metric - Value string `json:"value,omitempty"` + Value string `json:"value,omitempty" protobuf:"bytes,5,opt,name=value"` // Metadata stores additional metadata about this metric result, used by the different providers // (e.g. kayenta run ID, job name) - Metadata map[string]string `json:"metadata,omitempty"` + Metadata map[string]string `json:"metadata,omitempty" protobuf:"bytes,6,rep,name=metadata"` // ResumeAt is the timestamp when the analysisRun should try to resume the measurement - ResumeAt *metav1.Time `json:"resumeAt,omitempty"` + ResumeAt *metav1.Time `json:"resumeAt,omitempty" protobuf:"bytes,7,opt,name=resumeAt"` } type KayentaMetric struct { - Address string `json:"address"` + Address string `json:"address" protobuf:"bytes,1,opt,name=address"` - Application string `json:"application"` + Application string `json:"application" protobuf:"bytes,2,opt,name=application"` - CanaryConfigName string `json:"canaryConfigName"` + CanaryConfigName string `json:"canaryConfigName" protobuf:"bytes,3,opt,name=canaryConfigName"` - MetricsAccountName string `json:"metricsAccountName"` - ConfigurationAccountName string `json:"configurationAccountName"` - StorageAccountName string `json:"storageAccountName"` + MetricsAccountName string `json:"metricsAccountName" protobuf:"bytes,4,opt,name=metricsAccountName"` + ConfigurationAccountName string `json:"configurationAccountName" protobuf:"bytes,5,opt,name=configurationAccountName"` + StorageAccountName string `json:"storageAccountName" protobuf:"bytes,6,opt,name=storageAccountName"` - Threshold KayentaThreshold `json:"threshold"` + Threshold KayentaThreshold `json:"threshold" protobuf:"bytes,7,opt,name=threshold"` - Scopes []KayentaScope `json:"scopes"` + Scopes []KayentaScope `json:"scopes" protobuf:"bytes,8,rep,name=scopes"` } type KayentaThreshold struct { - Pass int `json:"pass"` - Marginal int `json:"marginal"` + Pass int `json:"pass" protobuf:"varint,1,opt,name=pass"` + Marginal int `json:"marginal" protobuf:"varint,2,opt,name=marginal"` } type KayentaScope struct { - Name string `json:"name"` - ControlScope ScopeDetail `json:"controlScope"` - ExperimentScope ScopeDetail `json:"experimentScope"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + ControlScope ScopeDetail `json:"controlScope" protobuf:"bytes,2,opt,name=controlScope"` + ExperimentScope ScopeDetail `json:"experimentScope" protobuf:"bytes,3,opt,name=experimentScope"` } type ScopeDetail struct { - Scope string `json:"scope"` - Region string `json:"region"` - Step int `json:"step"` - Start string `json:"start"` - End string `json:"end"` + Scope string `json:"scope" protobuf:"bytes,1,opt,name=scope"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` + Step int `json:"step" protobuf:"varint,3,opt,name=step"` + Start string `json:"start" protobuf:"bytes,4,opt,name=start"` + End string `json:"end" protobuf:"bytes,5,opt,name=end"` } type WebMetric struct { // URL is the address of the web metric - URL string `json:"url"` + URL string `json:"url" protobuf:"bytes,1,opt,name=url"` // +patchMergeKey=key // +patchStrategy=merge // Headers are optional HTTP headers to use in the request - Headers []WebMetricHeader `json:"headers,omitempty" patchStrategy:"merge" patchMergeKey:"key"` + Headers []WebMetricHeader `json:"headers,omitempty" patchStrategy:"merge" patchMergeKey:"key" protobuf:"bytes,2,rep,name=headers"` // TimeoutSeconds is the timeout for the request in seconds (default: 10) - TimeoutSeconds int `json:"timeoutSeconds,omitempty"` + TimeoutSeconds int `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"` // JSONPath is a JSON Path to use as the result variable (default: "{$}") - JSONPath string `json:"jsonPath,omitempty"` + JSONPath string `json:"jsonPath,omitempty" protobuf:"bytes,4,opt,name=jsonPath"` // Insecure skips host TLS verification - Insecure bool `json:"insecure,omitempty"` + Insecure bool `json:"insecure,omitempty" protobuf:"varint,5,opt,name=insecure"` } type WebMetricHeader struct { - Key string `json:"key"` - Value string `json:"value"` + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` + Value string `json:"value" protobuf:"bytes,2,opt,name=value"` } type DatadogMetric struct { - Interval DurationString `json:"interval,omitempty"` - Query string `json:"query"` + Interval DurationString `json:"interval,omitempty" protobuf:"bytes,1,opt,name=interval,casttype=DurationString"` + Query string `json:"query" protobuf:"bytes,2,opt,name=query"` } diff --git a/pkg/apis/rollouts/v1alpha1/experiment_types.go b/pkg/apis/rollouts/v1alpha1/experiment_types.go index 27e1492da0..17fb642742 100644 --- a/pkg/apis/rollouts/v1alpha1/experiment_types.go +++ b/pkg/apis/rollouts/v1alpha1/experiment_types.go @@ -18,10 +18,10 @@ const ( // +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="Experiment status" type Experiment struct { metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Spec ExperimentSpec `json:"spec"` - Status ExperimentStatus `json:"status,omitempty"` + Spec ExperimentSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status ExperimentStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // ExperimentSpec is the spec for a Experiment resource @@ -29,44 +29,44 @@ type ExperimentSpec struct { // Templates are a list of PodSpecs that define the ReplicaSets that should be run during an experiment. // +patchMergeKey=name // +patchStrategy=merge - Templates []TemplateSpec `json:"templates" patchStrategy:"merge" patchMergeKey:"name"` + Templates []TemplateSpec `json:"templates" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=templates"` // Duration the amount of time for the experiment to run as a duration string (e.g. 30s, 5m, 1h). // If omitted, the experiment will run indefinitely, stopped either via termination, or a failed analysis run. // +optional - Duration DurationString `json:"duration,omitempty"` + Duration DurationString `json:"duration,omitempty" protobuf:"bytes,2,opt,name=duration,casttype=DurationString"` // ProgressDeadlineSeconds The maximum time in seconds for a experiment to // make progress before it is considered to be failed. Argo Rollouts will // continue to process failed experiments and a condition with a // ProgressDeadlineExceeded reason will be surfaced in the experiment status. // Defaults to 600s. // +optional - ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,3,opt,name=progressDeadlineSeconds"` // Terminate is used to prematurely stop the experiment - Terminate bool `json:"terminate,omitempty"` + Terminate bool `json:"terminate,omitempty" protobuf:"varint,4,opt,name=terminate"` // Analyses references AnalysisTemplates to run during the experiment // +patchMergeKey=name // +patchStrategy=merge - Analyses []ExperimentAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Analyses []ExperimentAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,5,rep,name=analyses"` } type TemplateSpec struct { // Name of the template used to identity replicaset running for this experiment - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. Defaults to 1. // +optional - Replicas *int32 `json:"replicas,omitempty"` + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,2,opt,name=replicas"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. // Defaults to 0 (pod will be considered available as soon as it is ready) // +optional - MinReadySeconds int32 `json:"minReadySeconds,omitempty"` + MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,3,opt,name=minReadySeconds"` // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this experiment. // It must match the pod template's labels. Each selector must be unique to the other selectors in the other templates - Selector *metav1.LabelSelector `json:"selector"` + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,4,opt,name=selector"` // Template describes the pods that will be created. - Template corev1.PodTemplateSpec `json:"template"` + Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,5,opt,name=template"` } type TemplateStatusCode string @@ -90,50 +90,50 @@ func (ts TemplateStatusCode) Completed() bool { // TemplateStatus is the status of a specific template of an Experiment type TemplateStatus struct { // Name of the template used to identity which hash to compare to the hash - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Total number of non-terminated pods targeted by this experiment (their labels match the selector). - Replicas int32 `json:"replicas"` + Replicas int32 `json:"replicas" protobuf:"varint,2,opt,name=replicas"` // Total number of non-terminated pods targeted by this experiment that have the desired template spec. - UpdatedReplicas int32 `json:"updatedReplicas"` + UpdatedReplicas int32 `json:"updatedReplicas" protobuf:"varint,3,opt,name=updatedReplicas"` // Total number of ready pods targeted by this experiment. - ReadyReplicas int32 `json:"readyReplicas"` + ReadyReplicas int32 `json:"readyReplicas" protobuf:"varint,4,opt,name=readyReplicas"` // Total number of available pods (ready for at least minReadySeconds) targeted by this experiment. - AvailableReplicas int32 `json:"availableReplicas"` + AvailableReplicas int32 `json:"availableReplicas" protobuf:"varint,5,opt,name=availableReplicas"` // CollisionCount count of hash collisions for the Experiment. The Experiment controller uses this // field as a collision avoidance mechanism when it needs to create the name for the // newest ReplicaSet. // +optional - CollisionCount *int32 `json:"collisionCount,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,6,opt,name=collisionCount"` // Phase is the status of the ReplicaSet associated with the template - Status TemplateStatusCode `json:"status,omitempty"` + Status TemplateStatusCode `json:"status,omitempty" protobuf:"bytes,7,opt,name=status,casttype=TemplateStatusCode"` // Message is a message explaining the current status - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,8,opt,name=message"` // LastTransitionTime is the last time the replicaset transitioned, which resets the countdown // on the ProgressDeadlineSeconds check. - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` + LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty" protobuf:"bytes,9,opt,name=lastTransitionTime"` } // ExperimentStatus is the status for a Experiment resource type ExperimentStatus struct { // Phase is the status of the experiment. Takes into consideration ReplicaSet degradations and // AnalysisRun statuses - Phase AnalysisPhase `json:"phase,omitempty"` + Phase AnalysisPhase `json:"phase,omitempty" protobuf:"bytes,1,opt,name=phase,casttype=AnalysisPhase"` // Message is an explanation for the current status // +optional - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,2,opt,name=message"` // TemplateStatuses holds the ReplicaSet related statuses for individual templates // +optional - TemplateStatuses []TemplateStatus `json:"templateStatuses,omitempty"` + TemplateStatuses []TemplateStatus `json:"templateStatuses,omitempty" protobuf:"bytes,3,rep,name=templateStatuses"` // AvailableAt the time when all the templates become healthy and the experiment should start tracking the time to // run for the duration of specificed in the spec. // +optional - AvailableAt *metav1.Time `json:"availableAt,omitempty"` + AvailableAt *metav1.Time `json:"availableAt,omitempty" protobuf:"bytes,4,opt,name=availableAt"` // Conditions a list of conditions a experiment can have. // +optional - Conditions []ExperimentCondition `json:"conditions,omitempty"` + Conditions []ExperimentCondition `json:"conditions,omitempty" protobuf:"bytes,5,rep,name=conditions"` // AnalysisRuns tracks the status of AnalysisRuns associated with this Experiment // +optional - AnalysisRuns []ExperimentAnalysisRunStatus `json:"analysisRuns,omitempty"` + AnalysisRuns []ExperimentAnalysisRunStatus `json:"analysisRuns,omitempty" protobuf:"bytes,6,rep,name=analysisRuns"` } // ExperimentConditionType defines the conditions of Experiment @@ -163,17 +163,17 @@ const ( // ExperimentCondition describes the state of a experiment at a certain point. type ExperimentCondition struct { // Type of deployment condition. - Type ExperimentConditionType `json:"type"` + Type ExperimentConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ExperimentConditionType"` // Phase of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status"` + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,3,opt,name=lastUpdateTime"` // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` // The reason for the condition's last transition. - Reason string `json:"reason"` + Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` // A human readable message indicating details about the transition. - Message string `json:"message"` + Message string `json:"message" protobuf:"bytes,6,opt,name=message"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -181,35 +181,35 @@ type ExperimentCondition struct { // ExperimentList is a list of Experiment resources type ExperimentList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Items []Experiment `json:"items"` + Items []Experiment `json:"items" protobuf:"bytes,2,rep,name=items"` } type ExperimentAnalysisTemplateRef struct { // Name is the name of the analysis - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run - TemplateName string `json:"templateName"` + TemplateName string `json:"templateName" protobuf:"bytes,2,opt,name=templateName"` // Whether to look for the templateName at cluster scope or namespace scope // +optional - ClusterScope bool `json:"clusterScope,omitempty"` + ClusterScope bool `json:"clusterScope,omitempty" protobuf:"varint,3,opt,name=clusterScope"` // Args are the arguments that will be added to the AnalysisRuns // +optional // +patchMergeKey=name // +patchStrategy=merge - Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Args []Argument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=args"` // RequiredForCompletion blocks the Experiment from completing until the analysis has completed - RequiredForCompletion bool `json:"requiredForCompletion,omitempty"` + RequiredForCompletion bool `json:"requiredForCompletion,omitempty" protobuf:"varint,5,opt,name=requiredForCompletion"` } type ExperimentAnalysisRunStatus struct { // Name is the name of the analysis - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // AnalysisRun is the name of the AnalysisRun - AnalysisRun string `json:"analysisRun"` + AnalysisRun string `json:"analysisRun" protobuf:"bytes,2,opt,name=analysisRun"` // Phase is the status of the AnalysisRun - Phase AnalysisPhase `json:"phase"` + Phase AnalysisPhase `json:"phase" protobuf:"bytes,3,opt,name=phase,casttype=AnalysisPhase"` // Message is a message explaining the current status - Message string `json:"message,omitempty"` + Message string `json:"message,omitempty" protobuf:"bytes,4,opt,name=message"` } diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go new file mode 100644 index 0000000000..36f86dc5fd --- /dev/null +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -0,0 +1,22734 @@ +/* +Copyright 2021 The Kubernetes sample-controller Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto + +package v1alpha1 + +import ( + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + k8s_io_api_core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" + + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *JobSpec) Reset() { *m = JobSpec{} } +func (*JobSpec) ProtoMessage() {} +func (*JobSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{0} +} +func (m *JobSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *JobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *JobSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_JobSpec.Merge(m, src) +} +func (m *JobSpec) XXX_Size() int { + return m.Size() +} +func (m *JobSpec) XXX_DiscardUnknown() { + xxx_messageInfo_JobSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_JobSpec proto.InternalMessageInfo + +func (m *ALBTrafficRouting) Reset() { *m = ALBTrafficRouting{} } +func (*ALBTrafficRouting) ProtoMessage() {} +func (*ALBTrafficRouting) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{1} +} +func (m *ALBTrafficRouting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ALBTrafficRouting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ALBTrafficRouting) XXX_Merge(src proto.Message) { + xxx_messageInfo_ALBTrafficRouting.Merge(m, src) +} +func (m *ALBTrafficRouting) XXX_Size() int { + return m.Size() +} +func (m *ALBTrafficRouting) XXX_DiscardUnknown() { + xxx_messageInfo_ALBTrafficRouting.DiscardUnknown(m) +} + +var xxx_messageInfo_ALBTrafficRouting proto.InternalMessageInfo + +func (m *AnalysisRun) Reset() { *m = AnalysisRun{} } +func (*AnalysisRun) ProtoMessage() {} +func (*AnalysisRun) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{2} +} +func (m *AnalysisRun) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRun) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRun) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRun.Merge(m, src) +} +func (m *AnalysisRun) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRun) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRun.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRun proto.InternalMessageInfo + +func (m *AnalysisRunArgument) Reset() { *m = AnalysisRunArgument{} } +func (*AnalysisRunArgument) ProtoMessage() {} +func (*AnalysisRunArgument) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{3} +} +func (m *AnalysisRunArgument) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunArgument) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunArgument) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunArgument.Merge(m, src) +} +func (m *AnalysisRunArgument) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunArgument) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunArgument.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunArgument proto.InternalMessageInfo + +func (m *AnalysisRunList) Reset() { *m = AnalysisRunList{} } +func (*AnalysisRunList) ProtoMessage() {} +func (*AnalysisRunList) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{4} +} +func (m *AnalysisRunList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunList) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunList.Merge(m, src) +} +func (m *AnalysisRunList) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunList) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunList.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunList proto.InternalMessageInfo + +func (m *AnalysisRunSpec) Reset() { *m = AnalysisRunSpec{} } +func (*AnalysisRunSpec) ProtoMessage() {} +func (*AnalysisRunSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{5} +} +func (m *AnalysisRunSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunSpec.Merge(m, src) +} +func (m *AnalysisRunSpec) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunSpec) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunSpec proto.InternalMessageInfo + +func (m *AnalysisRunStatus) Reset() { *m = AnalysisRunStatus{} } +func (*AnalysisRunStatus) ProtoMessage() {} +func (*AnalysisRunStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{6} +} +func (m *AnalysisRunStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunStatus.Merge(m, src) +} +func (m *AnalysisRunStatus) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunStatus) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunStatus proto.InternalMessageInfo + +func (m *AnalysisTemplate) Reset() { *m = AnalysisTemplate{} } +func (*AnalysisTemplate) ProtoMessage() {} +func (*AnalysisTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{7} +} +func (m *AnalysisTemplate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisTemplate.Merge(m, src) +} +func (m *AnalysisTemplate) XXX_Size() int { + return m.Size() +} +func (m *AnalysisTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisTemplate.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisTemplate proto.InternalMessageInfo + +func (m *AnalysisTemplateList) Reset() { *m = AnalysisTemplateList{} } +func (*AnalysisTemplateList) ProtoMessage() {} +func (*AnalysisTemplateList) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{8} +} +func (m *AnalysisTemplateList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisTemplateList) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisTemplateList.Merge(m, src) +} +func (m *AnalysisTemplateList) XXX_Size() int { + return m.Size() +} +func (m *AnalysisTemplateList) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisTemplateList.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisTemplateList proto.InternalMessageInfo + +func (m *AnalysisTemplateSpec) Reset() { *m = AnalysisTemplateSpec{} } +func (*AnalysisTemplateSpec) ProtoMessage() {} +func (*AnalysisTemplateSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{9} +} +func (m *AnalysisTemplateSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisTemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisTemplateSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisTemplateSpec.Merge(m, src) +} +func (m *AnalysisTemplateSpec) XXX_Size() int { + return m.Size() +} +func (m *AnalysisTemplateSpec) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisTemplateSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisTemplateSpec proto.InternalMessageInfo + +func (m *AntiAffinity) Reset() { *m = AntiAffinity{} } +func (*AntiAffinity) ProtoMessage() {} +func (*AntiAffinity) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{10} +} +func (m *AntiAffinity) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AntiAffinity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AntiAffinity) XXX_Merge(src proto.Message) { + xxx_messageInfo_AntiAffinity.Merge(m, src) +} +func (m *AntiAffinity) XXX_Size() int { + return m.Size() +} +func (m *AntiAffinity) XXX_DiscardUnknown() { + xxx_messageInfo_AntiAffinity.DiscardUnknown(m) +} + +var xxx_messageInfo_AntiAffinity proto.InternalMessageInfo + +func (m *Argument) Reset() { *m = Argument{} } +func (*Argument) ProtoMessage() {} +func (*Argument) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{11} +} +func (m *Argument) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Argument) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Argument) XXX_Merge(src proto.Message) { + xxx_messageInfo_Argument.Merge(m, src) +} +func (m *Argument) XXX_Size() int { + return m.Size() +} +func (m *Argument) XXX_DiscardUnknown() { + xxx_messageInfo_Argument.DiscardUnknown(m) +} + +var xxx_messageInfo_Argument proto.InternalMessageInfo + +func (m *ArgumentValueFrom) Reset() { *m = ArgumentValueFrom{} } +func (*ArgumentValueFrom) ProtoMessage() {} +func (*ArgumentValueFrom) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{12} +} +func (m *ArgumentValueFrom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ArgumentValueFrom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ArgumentValueFrom) XXX_Merge(src proto.Message) { + xxx_messageInfo_ArgumentValueFrom.Merge(m, src) +} +func (m *ArgumentValueFrom) XXX_Size() int { + return m.Size() +} +func (m *ArgumentValueFrom) XXX_DiscardUnknown() { + xxx_messageInfo_ArgumentValueFrom.DiscardUnknown(m) +} + +var xxx_messageInfo_ArgumentValueFrom proto.InternalMessageInfo + +func (m *BlueGreenStatus) Reset() { *m = BlueGreenStatus{} } +func (*BlueGreenStatus) ProtoMessage() {} +func (*BlueGreenStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{13} +} +func (m *BlueGreenStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BlueGreenStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BlueGreenStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlueGreenStatus.Merge(m, src) +} +func (m *BlueGreenStatus) XXX_Size() int { + return m.Size() +} +func (m *BlueGreenStatus) XXX_DiscardUnknown() { + xxx_messageInfo_BlueGreenStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_BlueGreenStatus proto.InternalMessageInfo + +func (m *BlueGreenStrategy) Reset() { *m = BlueGreenStrategy{} } +func (*BlueGreenStrategy) ProtoMessage() {} +func (*BlueGreenStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{14} +} +func (m *BlueGreenStrategy) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BlueGreenStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BlueGreenStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlueGreenStrategy.Merge(m, src) +} +func (m *BlueGreenStrategy) XXX_Size() int { + return m.Size() +} +func (m *BlueGreenStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_BlueGreenStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_BlueGreenStrategy proto.InternalMessageInfo + +func (m *CanaryStatus) Reset() { *m = CanaryStatus{} } +func (*CanaryStatus) ProtoMessage() {} +func (*CanaryStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{15} +} +func (m *CanaryStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CanaryStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CanaryStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_CanaryStatus.Merge(m, src) +} +func (m *CanaryStatus) XXX_Size() int { + return m.Size() +} +func (m *CanaryStatus) XXX_DiscardUnknown() { + xxx_messageInfo_CanaryStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_CanaryStatus proto.InternalMessageInfo + +func (m *CanaryStep) Reset() { *m = CanaryStep{} } +func (*CanaryStep) ProtoMessage() {} +func (*CanaryStep) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{16} +} +func (m *CanaryStep) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CanaryStep) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CanaryStep) XXX_Merge(src proto.Message) { + xxx_messageInfo_CanaryStep.Merge(m, src) +} +func (m *CanaryStep) XXX_Size() int { + return m.Size() +} +func (m *CanaryStep) XXX_DiscardUnknown() { + xxx_messageInfo_CanaryStep.DiscardUnknown(m) +} + +var xxx_messageInfo_CanaryStep proto.InternalMessageInfo + +func (m *CanaryStrategy) Reset() { *m = CanaryStrategy{} } +func (*CanaryStrategy) ProtoMessage() {} +func (*CanaryStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{17} +} +func (m *CanaryStrategy) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CanaryStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CanaryStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_CanaryStrategy.Merge(m, src) +} +func (m *CanaryStrategy) XXX_Size() int { + return m.Size() +} +func (m *CanaryStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_CanaryStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_CanaryStrategy proto.InternalMessageInfo + +func (m *ClusterAnalysisTemplate) Reset() { *m = ClusterAnalysisTemplate{} } +func (*ClusterAnalysisTemplate) ProtoMessage() {} +func (*ClusterAnalysisTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{18} +} +func (m *ClusterAnalysisTemplate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterAnalysisTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterAnalysisTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterAnalysisTemplate.Merge(m, src) +} +func (m *ClusterAnalysisTemplate) XXX_Size() int { + return m.Size() +} +func (m *ClusterAnalysisTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterAnalysisTemplate.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterAnalysisTemplate proto.InternalMessageInfo + +func (m *ClusterAnalysisTemplateList) Reset() { *m = ClusterAnalysisTemplateList{} } +func (*ClusterAnalysisTemplateList) ProtoMessage() {} +func (*ClusterAnalysisTemplateList) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{19} +} +func (m *ClusterAnalysisTemplateList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterAnalysisTemplateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterAnalysisTemplateList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterAnalysisTemplateList.Merge(m, src) +} +func (m *ClusterAnalysisTemplateList) XXX_Size() int { + return m.Size() +} +func (m *ClusterAnalysisTemplateList) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterAnalysisTemplateList.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterAnalysisTemplateList proto.InternalMessageInfo + +func (m *DatadogMetric) Reset() { *m = DatadogMetric{} } +func (*DatadogMetric) ProtoMessage() {} +func (*DatadogMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{20} +} +func (m *DatadogMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DatadogMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DatadogMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_DatadogMetric.Merge(m, src) +} +func (m *DatadogMetric) XXX_Size() int { + return m.Size() +} +func (m *DatadogMetric) XXX_DiscardUnknown() { + xxx_messageInfo_DatadogMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_DatadogMetric proto.InternalMessageInfo + +func (m *Experiment) Reset() { *m = Experiment{} } +func (*Experiment) ProtoMessage() {} +func (*Experiment) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{21} +} +func (m *Experiment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Experiment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Experiment) XXX_Merge(src proto.Message) { + xxx_messageInfo_Experiment.Merge(m, src) +} +func (m *Experiment) XXX_Size() int { + return m.Size() +} +func (m *Experiment) XXX_DiscardUnknown() { + xxx_messageInfo_Experiment.DiscardUnknown(m) +} + +var xxx_messageInfo_Experiment proto.InternalMessageInfo + +func (m *ExperimentAnalysisRunStatus) Reset() { *m = ExperimentAnalysisRunStatus{} } +func (*ExperimentAnalysisRunStatus) ProtoMessage() {} +func (*ExperimentAnalysisRunStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{22} +} +func (m *ExperimentAnalysisRunStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentAnalysisRunStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentAnalysisRunStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentAnalysisRunStatus.Merge(m, src) +} +func (m *ExperimentAnalysisRunStatus) XXX_Size() int { + return m.Size() +} +func (m *ExperimentAnalysisRunStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentAnalysisRunStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentAnalysisRunStatus proto.InternalMessageInfo + +func (m *ExperimentAnalysisTemplateRef) Reset() { *m = ExperimentAnalysisTemplateRef{} } +func (*ExperimentAnalysisTemplateRef) ProtoMessage() {} +func (*ExperimentAnalysisTemplateRef) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{23} +} +func (m *ExperimentAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentAnalysisTemplateRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentAnalysisTemplateRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentAnalysisTemplateRef.Merge(m, src) +} +func (m *ExperimentAnalysisTemplateRef) XXX_Size() int { + return m.Size() +} +func (m *ExperimentAnalysisTemplateRef) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentAnalysisTemplateRef.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentAnalysisTemplateRef proto.InternalMessageInfo + +func (m *ExperimentCondition) Reset() { *m = ExperimentCondition{} } +func (*ExperimentCondition) ProtoMessage() {} +func (*ExperimentCondition) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{24} +} +func (m *ExperimentCondition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentCondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentCondition.Merge(m, src) +} +func (m *ExperimentCondition) XXX_Size() int { + return m.Size() +} +func (m *ExperimentCondition) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentCondition.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentCondition proto.InternalMessageInfo + +func (m *ExperimentList) Reset() { *m = ExperimentList{} } +func (*ExperimentList) ProtoMessage() {} +func (*ExperimentList) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{25} +} +func (m *ExperimentList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentList.Merge(m, src) +} +func (m *ExperimentList) XXX_Size() int { + return m.Size() +} +func (m *ExperimentList) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentList.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentList proto.InternalMessageInfo + +func (m *ExperimentSpec) Reset() { *m = ExperimentSpec{} } +func (*ExperimentSpec) ProtoMessage() {} +func (*ExperimentSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{26} +} +func (m *ExperimentSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentSpec.Merge(m, src) +} +func (m *ExperimentSpec) XXX_Size() int { + return m.Size() +} +func (m *ExperimentSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentSpec proto.InternalMessageInfo + +func (m *ExperimentStatus) Reset() { *m = ExperimentStatus{} } +func (*ExperimentStatus) ProtoMessage() {} +func (*ExperimentStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{27} +} +func (m *ExperimentStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentStatus.Merge(m, src) +} +func (m *ExperimentStatus) XXX_Size() int { + return m.Size() +} +func (m *ExperimentStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentStatus proto.InternalMessageInfo + +func (m *FieldRef) Reset() { *m = FieldRef{} } +func (*FieldRef) ProtoMessage() {} +func (*FieldRef) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{28} +} +func (m *FieldRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *FieldRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *FieldRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_FieldRef.Merge(m, src) +} +func (m *FieldRef) XXX_Size() int { + return m.Size() +} +func (m *FieldRef) XXX_DiscardUnknown() { + xxx_messageInfo_FieldRef.DiscardUnknown(m) +} + +var xxx_messageInfo_FieldRef proto.InternalMessageInfo + +func (m *IstioDestinationRule) Reset() { *m = IstioDestinationRule{} } +func (*IstioDestinationRule) ProtoMessage() {} +func (*IstioDestinationRule) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{29} +} +func (m *IstioDestinationRule) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IstioDestinationRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *IstioDestinationRule) XXX_Merge(src proto.Message) { + xxx_messageInfo_IstioDestinationRule.Merge(m, src) +} +func (m *IstioDestinationRule) XXX_Size() int { + return m.Size() +} +func (m *IstioDestinationRule) XXX_DiscardUnknown() { + xxx_messageInfo_IstioDestinationRule.DiscardUnknown(m) +} + +var xxx_messageInfo_IstioDestinationRule proto.InternalMessageInfo + +func (m *IstioTrafficRouting) Reset() { *m = IstioTrafficRouting{} } +func (*IstioTrafficRouting) ProtoMessage() {} +func (*IstioTrafficRouting) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{30} +} +func (m *IstioTrafficRouting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IstioTrafficRouting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *IstioTrafficRouting) XXX_Merge(src proto.Message) { + xxx_messageInfo_IstioTrafficRouting.Merge(m, src) +} +func (m *IstioTrafficRouting) XXX_Size() int { + return m.Size() +} +func (m *IstioTrafficRouting) XXX_DiscardUnknown() { + xxx_messageInfo_IstioTrafficRouting.DiscardUnknown(m) +} + +var xxx_messageInfo_IstioTrafficRouting proto.InternalMessageInfo + +func (m *IstioVirtualService) Reset() { *m = IstioVirtualService{} } +func (*IstioVirtualService) ProtoMessage() {} +func (*IstioVirtualService) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{31} +} +func (m *IstioVirtualService) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IstioVirtualService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *IstioVirtualService) XXX_Merge(src proto.Message) { + xxx_messageInfo_IstioVirtualService.Merge(m, src) +} +func (m *IstioVirtualService) XXX_Size() int { + return m.Size() +} +func (m *IstioVirtualService) XXX_DiscardUnknown() { + xxx_messageInfo_IstioVirtualService.DiscardUnknown(m) +} + +var xxx_messageInfo_IstioVirtualService proto.InternalMessageInfo + +func (m *JobMetric) Reset() { *m = JobMetric{} } +func (*JobMetric) ProtoMessage() {} +func (*JobMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{32} +} +func (m *JobMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *JobMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *JobMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_JobMetric.Merge(m, src) +} +func (m *JobMetric) XXX_Size() int { + return m.Size() +} +func (m *JobMetric) XXX_DiscardUnknown() { + xxx_messageInfo_JobMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_JobMetric proto.InternalMessageInfo + +func (m *KayentaMetric) Reset() { *m = KayentaMetric{} } +func (*KayentaMetric) ProtoMessage() {} +func (*KayentaMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{33} +} +func (m *KayentaMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KayentaMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KayentaMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_KayentaMetric.Merge(m, src) +} +func (m *KayentaMetric) XXX_Size() int { + return m.Size() +} +func (m *KayentaMetric) XXX_DiscardUnknown() { + xxx_messageInfo_KayentaMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_KayentaMetric proto.InternalMessageInfo + +func (m *KayentaScope) Reset() { *m = KayentaScope{} } +func (*KayentaScope) ProtoMessage() {} +func (*KayentaScope) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{34} +} +func (m *KayentaScope) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KayentaScope) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KayentaScope) XXX_Merge(src proto.Message) { + xxx_messageInfo_KayentaScope.Merge(m, src) +} +func (m *KayentaScope) XXX_Size() int { + return m.Size() +} +func (m *KayentaScope) XXX_DiscardUnknown() { + xxx_messageInfo_KayentaScope.DiscardUnknown(m) +} + +var xxx_messageInfo_KayentaScope proto.InternalMessageInfo + +func (m *KayentaThreshold) Reset() { *m = KayentaThreshold{} } +func (*KayentaThreshold) ProtoMessage() {} +func (*KayentaThreshold) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{35} +} +func (m *KayentaThreshold) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KayentaThreshold) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KayentaThreshold) XXX_Merge(src proto.Message) { + xxx_messageInfo_KayentaThreshold.Merge(m, src) +} +func (m *KayentaThreshold) XXX_Size() int { + return m.Size() +} +func (m *KayentaThreshold) XXX_DiscardUnknown() { + xxx_messageInfo_KayentaThreshold.DiscardUnknown(m) +} + +var xxx_messageInfo_KayentaThreshold proto.InternalMessageInfo + +func (m *Measurement) Reset() { *m = Measurement{} } +func (*Measurement) ProtoMessage() {} +func (*Measurement) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{36} +} +func (m *Measurement) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Measurement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Measurement) XXX_Merge(src proto.Message) { + xxx_messageInfo_Measurement.Merge(m, src) +} +func (m *Measurement) XXX_Size() int { + return m.Size() +} +func (m *Measurement) XXX_DiscardUnknown() { + xxx_messageInfo_Measurement.DiscardUnknown(m) +} + +var xxx_messageInfo_Measurement proto.InternalMessageInfo + +func (m *Metric) Reset() { *m = Metric{} } +func (*Metric) ProtoMessage() {} +func (*Metric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{37} +} +func (m *Metric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Metric) XXX_Merge(src proto.Message) { + xxx_messageInfo_Metric.Merge(m, src) +} +func (m *Metric) XXX_Size() int { + return m.Size() +} +func (m *Metric) XXX_DiscardUnknown() { + xxx_messageInfo_Metric.DiscardUnknown(m) +} + +var xxx_messageInfo_Metric proto.InternalMessageInfo + +func (m *MetricProvider) Reset() { *m = MetricProvider{} } +func (*MetricProvider) ProtoMessage() {} +func (*MetricProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{38} +} +func (m *MetricProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MetricProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MetricProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetricProvider.Merge(m, src) +} +func (m *MetricProvider) XXX_Size() int { + return m.Size() +} +func (m *MetricProvider) XXX_DiscardUnknown() { + xxx_messageInfo_MetricProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_MetricProvider proto.InternalMessageInfo + +func (m *MetricResult) Reset() { *m = MetricResult{} } +func (*MetricResult) ProtoMessage() {} +func (*MetricResult) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{39} +} +func (m *MetricResult) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MetricResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MetricResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetricResult.Merge(m, src) +} +func (m *MetricResult) XXX_Size() int { + return m.Size() +} +func (m *MetricResult) XXX_DiscardUnknown() { + xxx_messageInfo_MetricResult.DiscardUnknown(m) +} + +var xxx_messageInfo_MetricResult proto.InternalMessageInfo + +func (m *NewRelicMetric) Reset() { *m = NewRelicMetric{} } +func (*NewRelicMetric) ProtoMessage() {} +func (*NewRelicMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{40} +} +func (m *NewRelicMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NewRelicMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NewRelicMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_NewRelicMetric.Merge(m, src) +} +func (m *NewRelicMetric) XXX_Size() int { + return m.Size() +} +func (m *NewRelicMetric) XXX_DiscardUnknown() { + xxx_messageInfo_NewRelicMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_NewRelicMetric proto.InternalMessageInfo + +func (m *NginxTrafficRouting) Reset() { *m = NginxTrafficRouting{} } +func (*NginxTrafficRouting) ProtoMessage() {} +func (*NginxTrafficRouting) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{41} +} +func (m *NginxTrafficRouting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NginxTrafficRouting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NginxTrafficRouting) XXX_Merge(src proto.Message) { + xxx_messageInfo_NginxTrafficRouting.Merge(m, src) +} +func (m *NginxTrafficRouting) XXX_Size() int { + return m.Size() +} +func (m *NginxTrafficRouting) XXX_DiscardUnknown() { + xxx_messageInfo_NginxTrafficRouting.DiscardUnknown(m) +} + +var xxx_messageInfo_NginxTrafficRouting proto.InternalMessageInfo + +func (m *PauseCondition) Reset() { *m = PauseCondition{} } +func (*PauseCondition) ProtoMessage() {} +func (*PauseCondition) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{42} +} +func (m *PauseCondition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PauseCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PauseCondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_PauseCondition.Merge(m, src) +} +func (m *PauseCondition) XXX_Size() int { + return m.Size() +} +func (m *PauseCondition) XXX_DiscardUnknown() { + xxx_messageInfo_PauseCondition.DiscardUnknown(m) +} + +var xxx_messageInfo_PauseCondition proto.InternalMessageInfo + +func (m *PodTemplateMetadata) Reset() { *m = PodTemplateMetadata{} } +func (*PodTemplateMetadata) ProtoMessage() {} +func (*PodTemplateMetadata) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{43} +} +func (m *PodTemplateMetadata) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodTemplateMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodTemplateMetadata) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodTemplateMetadata.Merge(m, src) +} +func (m *PodTemplateMetadata) XXX_Size() int { + return m.Size() +} +func (m *PodTemplateMetadata) XXX_DiscardUnknown() { + xxx_messageInfo_PodTemplateMetadata.DiscardUnknown(m) +} + +var xxx_messageInfo_PodTemplateMetadata proto.InternalMessageInfo + +func (m *PreferredDuringSchedulingIgnoredDuringExecution) Reset() { + *m = PreferredDuringSchedulingIgnoredDuringExecution{} +} +func (*PreferredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} +func (*PreferredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{44} +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Merge(src proto.Message) { + xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution.Merge(m, src) +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Size() int { + return m.Size() +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_DiscardUnknown() { + xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution.DiscardUnknown(m) +} + +var xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution proto.InternalMessageInfo + +func (m *PrometheusMetric) Reset() { *m = PrometheusMetric{} } +func (*PrometheusMetric) ProtoMessage() {} +func (*PrometheusMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{45} +} +func (m *PrometheusMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PrometheusMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PrometheusMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_PrometheusMetric.Merge(m, src) +} +func (m *PrometheusMetric) XXX_Size() int { + return m.Size() +} +func (m *PrometheusMetric) XXX_DiscardUnknown() { + xxx_messageInfo_PrometheusMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_PrometheusMetric proto.InternalMessageInfo + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Reset() { + *m = RequiredDuringSchedulingIgnoredDuringExecution{} +} +func (*RequiredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} +func (*RequiredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{46} +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution.Merge(m, src) +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Size() int { + return m.Size() +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_DiscardUnknown() { + xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution.DiscardUnknown(m) +} + +var xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution proto.InternalMessageInfo + +func (m *Rollout) Reset() { *m = Rollout{} } +func (*Rollout) ProtoMessage() {} +func (*Rollout) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{47} +} +func (m *Rollout) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Rollout) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Rollout) XXX_Merge(src proto.Message) { + xxx_messageInfo_Rollout.Merge(m, src) +} +func (m *Rollout) XXX_Size() int { + return m.Size() +} +func (m *Rollout) XXX_DiscardUnknown() { + xxx_messageInfo_Rollout.DiscardUnknown(m) +} + +var xxx_messageInfo_Rollout proto.InternalMessageInfo + +func (m *RolloutAnalysis) Reset() { *m = RolloutAnalysis{} } +func (*RolloutAnalysis) ProtoMessage() {} +func (*RolloutAnalysis) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{48} +} +func (m *RolloutAnalysis) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutAnalysis) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutAnalysis) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutAnalysis.Merge(m, src) +} +func (m *RolloutAnalysis) XXX_Size() int { + return m.Size() +} +func (m *RolloutAnalysis) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutAnalysis.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutAnalysis proto.InternalMessageInfo + +func (m *RolloutAnalysisBackground) Reset() { *m = RolloutAnalysisBackground{} } +func (*RolloutAnalysisBackground) ProtoMessage() {} +func (*RolloutAnalysisBackground) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{49} +} +func (m *RolloutAnalysisBackground) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutAnalysisBackground) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutAnalysisBackground) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutAnalysisBackground.Merge(m, src) +} +func (m *RolloutAnalysisBackground) XXX_Size() int { + return m.Size() +} +func (m *RolloutAnalysisBackground) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutAnalysisBackground.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutAnalysisBackground proto.InternalMessageInfo + +func (m *RolloutAnalysisRunStatus) Reset() { *m = RolloutAnalysisRunStatus{} } +func (*RolloutAnalysisRunStatus) ProtoMessage() {} +func (*RolloutAnalysisRunStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{50} +} +func (m *RolloutAnalysisRunStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutAnalysisRunStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutAnalysisRunStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutAnalysisRunStatus.Merge(m, src) +} +func (m *RolloutAnalysisRunStatus) XXX_Size() int { + return m.Size() +} +func (m *RolloutAnalysisRunStatus) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutAnalysisRunStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutAnalysisRunStatus proto.InternalMessageInfo + +func (m *RolloutAnalysisTemplate) Reset() { *m = RolloutAnalysisTemplate{} } +func (*RolloutAnalysisTemplate) ProtoMessage() {} +func (*RolloutAnalysisTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{51} +} +func (m *RolloutAnalysisTemplate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutAnalysisTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutAnalysisTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutAnalysisTemplate.Merge(m, src) +} +func (m *RolloutAnalysisTemplate) XXX_Size() int { + return m.Size() +} +func (m *RolloutAnalysisTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutAnalysisTemplate.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutAnalysisTemplate proto.InternalMessageInfo + +func (m *RolloutCondition) Reset() { *m = RolloutCondition{} } +func (*RolloutCondition) ProtoMessage() {} +func (*RolloutCondition) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{52} +} +func (m *RolloutCondition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutCondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutCondition.Merge(m, src) +} +func (m *RolloutCondition) XXX_Size() int { + return m.Size() +} +func (m *RolloutCondition) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutCondition.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutCondition proto.InternalMessageInfo + +func (m *RolloutExperimentStep) Reset() { *m = RolloutExperimentStep{} } +func (*RolloutExperimentStep) ProtoMessage() {} +func (*RolloutExperimentStep) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{53} +} +func (m *RolloutExperimentStep) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutExperimentStep) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutExperimentStep) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutExperimentStep.Merge(m, src) +} +func (m *RolloutExperimentStep) XXX_Size() int { + return m.Size() +} +func (m *RolloutExperimentStep) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutExperimentStep.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutExperimentStep proto.InternalMessageInfo + +func (m *RolloutExperimentStepAnalysisTemplateRef) Reset() { + *m = RolloutExperimentStepAnalysisTemplateRef{} +} +func (*RolloutExperimentStepAnalysisTemplateRef) ProtoMessage() {} +func (*RolloutExperimentStepAnalysisTemplateRef) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{54} +} +func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef.Merge(m, src) +} +func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Size() int { + return m.Size() +} +func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef proto.InternalMessageInfo + +func (m *RolloutExperimentTemplate) Reset() { *m = RolloutExperimentTemplate{} } +func (*RolloutExperimentTemplate) ProtoMessage() {} +func (*RolloutExperimentTemplate) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{55} +} +func (m *RolloutExperimentTemplate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutExperimentTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutExperimentTemplate) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutExperimentTemplate.Merge(m, src) +} +func (m *RolloutExperimentTemplate) XXX_Size() int { + return m.Size() +} +func (m *RolloutExperimentTemplate) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutExperimentTemplate.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutExperimentTemplate proto.InternalMessageInfo + +func (m *RolloutInfo) Reset() { *m = RolloutInfo{} } +func (*RolloutInfo) ProtoMessage() {} +func (*RolloutInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{56} +} +func (m *RolloutInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutInfo.Merge(m, src) +} +func (m *RolloutInfo) XXX_Size() int { + return m.Size() +} +func (m *RolloutInfo) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutInfo proto.InternalMessageInfo + +func (m *RolloutList) Reset() { *m = RolloutList{} } +func (*RolloutList) ProtoMessage() {} +func (*RolloutList) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{57} +} +func (m *RolloutList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutList) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutList.Merge(m, src) +} +func (m *RolloutList) XXX_Size() int { + return m.Size() +} +func (m *RolloutList) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutList.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutList proto.InternalMessageInfo + +func (m *RolloutPause) Reset() { *m = RolloutPause{} } +func (*RolloutPause) ProtoMessage() {} +func (*RolloutPause) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{58} +} +func (m *RolloutPause) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutPause) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutPause) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutPause.Merge(m, src) +} +func (m *RolloutPause) XXX_Size() int { + return m.Size() +} +func (m *RolloutPause) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutPause.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutPause proto.InternalMessageInfo + +func (m *RolloutSpec) Reset() { *m = RolloutSpec{} } +func (*RolloutSpec) ProtoMessage() {} +func (*RolloutSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{59} +} +func (m *RolloutSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutSpec.Merge(m, src) +} +func (m *RolloutSpec) XXX_Size() int { + return m.Size() +} +func (m *RolloutSpec) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutSpec proto.InternalMessageInfo + +func (m *RolloutStatus) Reset() { *m = RolloutStatus{} } +func (*RolloutStatus) ProtoMessage() {} +func (*RolloutStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{60} +} +func (m *RolloutStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutStatus.Merge(m, src) +} +func (m *RolloutStatus) XXX_Size() int { + return m.Size() +} +func (m *RolloutStatus) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutStatus proto.InternalMessageInfo + +func (m *RolloutStrategy) Reset() { *m = RolloutStrategy{} } +func (*RolloutStrategy) ProtoMessage() {} +func (*RolloutStrategy) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{61} +} +func (m *RolloutStrategy) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutStrategy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutStrategy) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutStrategy.Merge(m, src) +} +func (m *RolloutStrategy) XXX_Size() int { + return m.Size() +} +func (m *RolloutStrategy) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutStrategy.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutStrategy proto.InternalMessageInfo + +func (m *RolloutTrafficRouting) Reset() { *m = RolloutTrafficRouting{} } +func (*RolloutTrafficRouting) ProtoMessage() {} +func (*RolloutTrafficRouting) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{62} +} +func (m *RolloutTrafficRouting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutTrafficRouting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *RolloutTrafficRouting) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutTrafficRouting.Merge(m, src) +} +func (m *RolloutTrafficRouting) XXX_Size() int { + return m.Size() +} +func (m *RolloutTrafficRouting) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutTrafficRouting.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutTrafficRouting proto.InternalMessageInfo + +func (m *SMITrafficRouting) Reset() { *m = SMITrafficRouting{} } +func (*SMITrafficRouting) ProtoMessage() {} +func (*SMITrafficRouting) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{63} +} +func (m *SMITrafficRouting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SMITrafficRouting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SMITrafficRouting) XXX_Merge(src proto.Message) { + xxx_messageInfo_SMITrafficRouting.Merge(m, src) +} +func (m *SMITrafficRouting) XXX_Size() int { + return m.Size() +} +func (m *SMITrafficRouting) XXX_DiscardUnknown() { + xxx_messageInfo_SMITrafficRouting.DiscardUnknown(m) +} + +var xxx_messageInfo_SMITrafficRouting proto.InternalMessageInfo + +func (m *ScopeDetail) Reset() { *m = ScopeDetail{} } +func (*ScopeDetail) ProtoMessage() {} +func (*ScopeDetail) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{64} +} +func (m *ScopeDetail) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ScopeDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ScopeDetail) XXX_Merge(src proto.Message) { + xxx_messageInfo_ScopeDetail.Merge(m, src) +} +func (m *ScopeDetail) XXX_Size() int { + return m.Size() +} +func (m *ScopeDetail) XXX_DiscardUnknown() { + xxx_messageInfo_ScopeDetail.DiscardUnknown(m) +} + +var xxx_messageInfo_ScopeDetail proto.InternalMessageInfo + +func (m *SecretKeyRef) Reset() { *m = SecretKeyRef{} } +func (*SecretKeyRef) ProtoMessage() {} +func (*SecretKeyRef) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{65} +} +func (m *SecretKeyRef) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SecretKeyRef) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SecretKeyRef) XXX_Merge(src proto.Message) { + xxx_messageInfo_SecretKeyRef.Merge(m, src) +} +func (m *SecretKeyRef) XXX_Size() int { + return m.Size() +} +func (m *SecretKeyRef) XXX_DiscardUnknown() { + xxx_messageInfo_SecretKeyRef.DiscardUnknown(m) +} + +var xxx_messageInfo_SecretKeyRef proto.InternalMessageInfo + +func (m *SetCanaryScale) Reset() { *m = SetCanaryScale{} } +func (*SetCanaryScale) ProtoMessage() {} +func (*SetCanaryScale) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{66} +} +func (m *SetCanaryScale) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SetCanaryScale) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SetCanaryScale) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetCanaryScale.Merge(m, src) +} +func (m *SetCanaryScale) XXX_Size() int { + return m.Size() +} +func (m *SetCanaryScale) XXX_DiscardUnknown() { + xxx_messageInfo_SetCanaryScale.DiscardUnknown(m) +} + +var xxx_messageInfo_SetCanaryScale proto.InternalMessageInfo + +func (m *TemplateSpec) Reset() { *m = TemplateSpec{} } +func (*TemplateSpec) ProtoMessage() {} +func (*TemplateSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{67} +} +func (m *TemplateSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TemplateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *TemplateSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_TemplateSpec.Merge(m, src) +} +func (m *TemplateSpec) XXX_Size() int { + return m.Size() +} +func (m *TemplateSpec) XXX_DiscardUnknown() { + xxx_messageInfo_TemplateSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_TemplateSpec proto.InternalMessageInfo + +func (m *TemplateStatus) Reset() { *m = TemplateStatus{} } +func (*TemplateStatus) ProtoMessage() {} +func (*TemplateStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{68} +} +func (m *TemplateStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TemplateStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *TemplateStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_TemplateStatus.Merge(m, src) +} +func (m *TemplateStatus) XXX_Size() int { + return m.Size() +} +func (m *TemplateStatus) XXX_DiscardUnknown() { + xxx_messageInfo_TemplateStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_TemplateStatus proto.InternalMessageInfo + +func (m *ValueFrom) Reset() { *m = ValueFrom{} } +func (*ValueFrom) ProtoMessage() {} +func (*ValueFrom) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{69} +} +func (m *ValueFrom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ValueFrom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ValueFrom) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValueFrom.Merge(m, src) +} +func (m *ValueFrom) XXX_Size() int { + return m.Size() +} +func (m *ValueFrom) XXX_DiscardUnknown() { + xxx_messageInfo_ValueFrom.DiscardUnknown(m) +} + +var xxx_messageInfo_ValueFrom proto.InternalMessageInfo + +func (m *WavefrontMetric) Reset() { *m = WavefrontMetric{} } +func (*WavefrontMetric) ProtoMessage() {} +func (*WavefrontMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{70} +} +func (m *WavefrontMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WavefrontMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *WavefrontMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_WavefrontMetric.Merge(m, src) +} +func (m *WavefrontMetric) XXX_Size() int { + return m.Size() +} +func (m *WavefrontMetric) XXX_DiscardUnknown() { + xxx_messageInfo_WavefrontMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_WavefrontMetric proto.InternalMessageInfo + +func (m *WebMetric) Reset() { *m = WebMetric{} } +func (*WebMetric) ProtoMessage() {} +func (*WebMetric) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{71} +} +func (m *WebMetric) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WebMetric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *WebMetric) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebMetric.Merge(m, src) +} +func (m *WebMetric) XXX_Size() int { + return m.Size() +} +func (m *WebMetric) XXX_DiscardUnknown() { + xxx_messageInfo_WebMetric.DiscardUnknown(m) +} + +var xxx_messageInfo_WebMetric proto.InternalMessageInfo + +func (m *WebMetricHeader) Reset() { *m = WebMetricHeader{} } +func (*WebMetricHeader) ProtoMessage() {} +func (*WebMetricHeader) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{72} +} +func (m *WebMetricHeader) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WebMetricHeader) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *WebMetricHeader) XXX_Merge(src proto.Message) { + xxx_messageInfo_WebMetricHeader.Merge(m, src) +} +func (m *WebMetricHeader) XXX_Size() int { + return m.Size() +} +func (m *WebMetricHeader) XXX_DiscardUnknown() { + xxx_messageInfo_WebMetricHeader.DiscardUnknown(m) +} + +var xxx_messageInfo_WebMetricHeader proto.InternalMessageInfo + +func init() { + proto.RegisterType((*JobSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobSpec") + proto.RegisterType((*ALBTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ALBTrafficRouting") + proto.RegisterType((*AnalysisRun)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRun") + proto.RegisterType((*AnalysisRunArgument)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument") + proto.RegisterType((*AnalysisRunList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunList") + proto.RegisterType((*AnalysisRunSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunSpec") + proto.RegisterType((*AnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunStatus") + proto.RegisterType((*AnalysisTemplate)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisTemplate") + proto.RegisterType((*AnalysisTemplateList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisTemplateList") + proto.RegisterType((*AnalysisTemplateSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisTemplateSpec") + proto.RegisterType((*AntiAffinity)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AntiAffinity") + proto.RegisterType((*Argument)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Argument") + proto.RegisterType((*ArgumentValueFrom)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ArgumentValueFrom") + proto.RegisterType((*BlueGreenStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStatus") + proto.RegisterType((*BlueGreenStrategy)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStrategy") + proto.RegisterType((*CanaryStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStatus") + proto.RegisterType((*CanaryStep)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStep") + proto.RegisterType((*CanaryStrategy)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStrategy") + proto.RegisterType((*ClusterAnalysisTemplate)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ClusterAnalysisTemplate") + proto.RegisterType((*ClusterAnalysisTemplateList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ClusterAnalysisTemplateList") + proto.RegisterType((*DatadogMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.DatadogMetric") + proto.RegisterType((*Experiment)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Experiment") + proto.RegisterType((*ExperimentAnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisRunStatus") + proto.RegisterType((*ExperimentAnalysisTemplateRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisTemplateRef") + proto.RegisterType((*ExperimentCondition)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentCondition") + proto.RegisterType((*ExperimentList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentList") + proto.RegisterType((*ExperimentSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentSpec") + proto.RegisterType((*ExperimentStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentStatus") + proto.RegisterType((*FieldRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.FieldRef") + proto.RegisterType((*IstioDestinationRule)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioDestinationRule") + proto.RegisterType((*IstioTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioTrafficRouting") + proto.RegisterType((*IstioVirtualService)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioVirtualService") + proto.RegisterType((*JobMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobMetric") + proto.RegisterType((*KayentaMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaMetric") + proto.RegisterType((*KayentaScope)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaScope") + proto.RegisterType((*KayentaThreshold)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaThreshold") + proto.RegisterType((*Measurement)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Measurement") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Measurement.MetadataEntry") + proto.RegisterType((*Metric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Metric") + proto.RegisterType((*MetricProvider)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MetricProvider") + proto.RegisterType((*MetricResult)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.MetricResult") + proto.RegisterType((*NewRelicMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NewRelicMetric") + proto.RegisterType((*NginxTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting.AdditionalIngressAnnotationsEntry") + proto.RegisterType((*PauseCondition)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PauseCondition") + proto.RegisterType((*PodTemplateMetadata)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata.AnnotationsEntry") + proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata.LabelsEntry") + proto.RegisterType((*PreferredDuringSchedulingIgnoredDuringExecution)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PreferredDuringSchedulingIgnoredDuringExecution") + proto.RegisterType((*PrometheusMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PrometheusMetric") + proto.RegisterType((*RequiredDuringSchedulingIgnoredDuringExecution)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RequiredDuringSchedulingIgnoredDuringExecution") + proto.RegisterType((*Rollout)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout") + proto.RegisterType((*RolloutAnalysis)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis") + proto.RegisterType((*RolloutAnalysisBackground)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisBackground") + proto.RegisterType((*RolloutAnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus") + proto.RegisterType((*RolloutAnalysisTemplate)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisTemplate") + proto.RegisterType((*RolloutCondition)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutCondition") + proto.RegisterType((*RolloutExperimentStep)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStep") + proto.RegisterType((*RolloutExperimentStepAnalysisTemplateRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStepAnalysisTemplateRef") + proto.RegisterType((*RolloutExperimentTemplate)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentTemplate") + proto.RegisterType((*RolloutInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo") + proto.RegisterType((*RolloutList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutList") + proto.RegisterType((*RolloutPause)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutPause") + proto.RegisterType((*RolloutSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutSpec") + proto.RegisterType((*RolloutStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStatus") + proto.RegisterType((*RolloutStrategy)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStrategy") + proto.RegisterType((*RolloutTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutTrafficRouting") + proto.RegisterType((*SMITrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SMITrafficRouting") + proto.RegisterType((*ScopeDetail)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ScopeDetail") + proto.RegisterType((*SecretKeyRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SecretKeyRef") + proto.RegisterType((*SetCanaryScale)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SetCanaryScale") + proto.RegisterType((*TemplateSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateSpec") + proto.RegisterType((*TemplateStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.TemplateStatus") + proto.RegisterType((*ValueFrom)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ValueFrom") + proto.RegisterType((*WavefrontMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.WavefrontMetric") + proto.RegisterType((*WebMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.WebMetric") + proto.RegisterType((*WebMetricHeader)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.WebMetricHeader") +} + +func init() { + proto.RegisterFile("github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto", fileDescriptor_e0e705f843545fab) +} + +var fileDescriptor_e0e705f843545fab = []byte{ + // 5687 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xc9, + 0x71, 0xf0, 0x0d, 0x29, 0x4a, 0x64, 0x51, 0xbf, 0xbd, 0x5a, 0x2f, 0xbd, 0x77, 0x2b, 0xae, 0xe7, + 0x8c, 0xfd, 0xd6, 0x5f, 0x6c, 0xc9, 0xb7, 0xde, 0x4b, 0x36, 0x3e, 0xe3, 0x10, 0x52, 0xfb, 0x27, + 0x9d, 0xb4, 0xcb, 0x6d, 0x6a, 0x6f, 0xe1, 0xfb, 0x49, 0x3c, 0x22, 0x5b, 0xd4, 0xec, 0x0e, 0x67, + 0xe8, 0x99, 0xa1, 0x76, 0x75, 0x36, 0xec, 0x3b, 0x1b, 0x17, 0x5f, 0x02, 0x1b, 0x77, 0xf9, 0x79, + 0x09, 0x82, 0xfc, 0x20, 0xc8, 0x43, 0x90, 0xa7, 0x3c, 0xf8, 0x25, 0x48, 0x8c, 0x18, 0x4e, 0x02, + 0x5c, 0x1e, 0x12, 0x3b, 0x40, 0x90, 0x73, 0x02, 0x98, 0xc9, 0xd1, 0x01, 0x82, 0xe4, 0x25, 0x70, + 0x60, 0x20, 0xf0, 0x22, 0x0f, 0x41, 0xff, 0x4c, 0xcf, 0xf4, 0x70, 0x24, 0x91, 0xcb, 0xd1, 0xc6, + 0x48, 0xf2, 0x26, 0x56, 0x55, 0x57, 0x75, 0xf7, 0x54, 0x57, 0x55, 0x77, 0x55, 0xb7, 0x60, 0xa3, + 0x65, 0xfa, 0xbb, 0xdd, 0xed, 0xe5, 0x86, 0xd3, 0x5e, 0x31, 0xdc, 0x96, 0xd3, 0x71, 0x9d, 0xbb, + 0xec, 0x8f, 0x8f, 0xb9, 0x8e, 0x65, 0x39, 0x5d, 0xdf, 0x5b, 0xe9, 0xdc, 0x6b, 0xad, 0x18, 0x1d, + 0xd3, 0x5b, 0x91, 0x90, 0xbd, 0x67, 0x0c, 0xab, 0xb3, 0x6b, 0x3c, 0xb3, 0xd2, 0x22, 0x36, 0x71, + 0x0d, 0x9f, 0x34, 0x97, 0x3b, 0xae, 0xe3, 0x3b, 0xe8, 0x53, 0x21, 0xb7, 0xe5, 0x80, 0x1b, 0xfb, + 0xe3, 0xe7, 0x82, 0xb6, 0xcb, 0x9d, 0x7b, 0xad, 0x65, 0xca, 0x6d, 0x59, 0x42, 0x02, 0x6e, 0xa7, + 0x3f, 0x16, 0xe9, 0x4b, 0xcb, 0x69, 0x39, 0x2b, 0x8c, 0xe9, 0x76, 0x77, 0x87, 0xfd, 0x62, 0x3f, + 0xd8, 0x5f, 0x5c, 0xd8, 0x69, 0xfd, 0xde, 0x25, 0x6f, 0xd9, 0x74, 0x68, 0xdf, 0x56, 0x1a, 0x8e, + 0x4b, 0x56, 0xf6, 0x06, 0x3a, 0x74, 0xfa, 0x62, 0x48, 0xd3, 0x36, 0x1a, 0xbb, 0xa6, 0x4d, 0xdc, + 0xfd, 0x70, 0x40, 0x6d, 0xe2, 0x1b, 0x49, 0xad, 0x56, 0x0e, 0x6a, 0xe5, 0x76, 0x6d, 0xdf, 0x6c, + 0x93, 0x81, 0x06, 0x3f, 0x79, 0x54, 0x03, 0xaf, 0xb1, 0x4b, 0xda, 0xc6, 0x40, 0xbb, 0x4f, 0x1c, + 0xd4, 0xae, 0xeb, 0x9b, 0xd6, 0x8a, 0x69, 0xfb, 0x9e, 0xef, 0xc6, 0x1b, 0xe9, 0x7f, 0x34, 0x01, + 0x53, 0xeb, 0xce, 0x76, 0xbd, 0x43, 0x1a, 0xe8, 0x19, 0x28, 0x76, 0x0c, 0xd7, 0xb0, 0x2c, 0x62, + 0x99, 0x5e, 0xbb, 0xa4, 0x9d, 0xd5, 0xce, 0xe7, 0xaa, 0x73, 0xfd, 0x5e, 0xb9, 0x58, 0x0b, 0xc1, + 0x38, 0x4a, 0x43, 0x9b, 0x34, 0x9c, 0x76, 0xc7, 0x22, 0xbe, 0xe9, 0xd8, 0x5e, 0x29, 0x13, 0x36, + 0x59, 0x0d, 0xc1, 0x38, 0x4a, 0x83, 0x6e, 0xc2, 0x49, 0xa3, 0xe1, 0x9b, 0x7b, 0xe4, 0x32, 0x31, + 0x9a, 0x96, 0x69, 0x93, 0x3a, 0x69, 0x38, 0x76, 0xd3, 0x2b, 0x65, 0xcf, 0x6a, 0xe7, 0xb3, 0xd5, + 0x0f, 0xf6, 0x7b, 0xe5, 0x93, 0x95, 0x24, 0x02, 0x9c, 0xdc, 0x0e, 0x5d, 0x84, 0xe9, 0x6d, 0xa3, + 0x71, 0xcf, 0xd9, 0xd9, 0xd9, 0x30, 0xdb, 0xa6, 0x5f, 0x9a, 0x62, 0x9d, 0x98, 0xef, 0xf7, 0xca, + 0xd3, 0xd5, 0x08, 0x1c, 0x2b, 0x54, 0xe8, 0x55, 0xc8, 0x7b, 0xc4, 0x22, 0x0d, 0xdf, 0x71, 0x4b, + 0x13, 0x67, 0xb5, 0xf3, 0xc5, 0x0b, 0x9f, 0x58, 0xe6, 0x13, 0xb8, 0x1c, 0x9d, 0xc0, 0x50, 0xc5, + 0xe8, 0xf7, 0x5d, 0xde, 0x7b, 0x66, 0x79, 0xc3, 0xd8, 0x26, 0x56, 0x5d, 0x34, 0xad, 0x4e, 0xf7, + 0x7b, 0xe5, 0x7c, 0xf0, 0x0b, 0x4b, 0x96, 0xe8, 0x93, 0x30, 0xdb, 0x36, 0xec, 0xae, 0x21, 0x29, + 0x4b, 0xb9, 0xb3, 0xda, 0xf9, 0x7c, 0x15, 0xf5, 0x7b, 0xe5, 0xd9, 0x4d, 0x05, 0x83, 0x63, 0x94, + 0xe8, 0x16, 0xe4, 0x7d, 0xd2, 0xee, 0x58, 0x86, 0x4f, 0x4a, 0x93, 0xac, 0x6b, 0x4f, 0x47, 0xba, + 0xb6, 0x4c, 0xd5, 0x93, 0x76, 0xa4, 0xe6, 0x34, 0xb7, 0x04, 0x19, 0xfd, 0x7c, 0xd5, 0xf9, 0x77, + 0x7b, 0xe5, 0x27, 0x68, 0x77, 0x02, 0x28, 0x96, 0x6c, 0xd0, 0x6d, 0x38, 0xe5, 0xfb, 0x96, 0x98, + 0xb1, 0xca, 0x8e, 0x4f, 0xdc, 0xab, 0xa6, 0x6d, 0x7a, 0xbb, 0xa4, 0x59, 0xca, 0xb3, 0xe9, 0x7a, + 0xb2, 0xdf, 0x2b, 0x9f, 0xda, 0xda, 0xda, 0x48, 0x22, 0xc1, 0x07, 0xb5, 0xd5, 0xff, 0x5d, 0x83, + 0x85, 0xca, 0x46, 0x75, 0xcb, 0x35, 0x76, 0x76, 0xcc, 0x06, 0x76, 0xba, 0xbe, 0x69, 0xb7, 0xd0, + 0x47, 0x60, 0xca, 0xb4, 0x5b, 0x2e, 0xf1, 0x3c, 0xa6, 0x43, 0x85, 0xea, 0x9c, 0xe8, 0xd9, 0xd4, + 0x1a, 0x07, 0xe3, 0x00, 0x8f, 0x9e, 0x85, 0xa2, 0x47, 0xdc, 0x3d, 0xb3, 0x41, 0x6a, 0x8e, 0xeb, + 0x0b, 0xfd, 0x39, 0x21, 0xc8, 0x8b, 0xf5, 0x10, 0x85, 0xa3, 0x74, 0xb4, 0x99, 0xeb, 0x38, 0xbe, + 0xc0, 0x33, 0xcd, 0x29, 0x84, 0xcd, 0x70, 0x88, 0xc2, 0x51, 0x3a, 0x74, 0x19, 0xe6, 0x0d, 0xdb, + 0x76, 0x7c, 0x83, 0x6a, 0x62, 0xcd, 0x25, 0x3b, 0xe6, 0x03, 0xf6, 0xed, 0x0b, 0xd5, 0x92, 0x68, + 0x3b, 0x5f, 0x89, 0xe1, 0xf1, 0x40, 0x0b, 0xfd, 0xef, 0x32, 0x50, 0xac, 0xd8, 0x86, 0xb5, 0xef, + 0x99, 0x1e, 0xee, 0xda, 0xe8, 0x33, 0x90, 0xa7, 0xba, 0xd1, 0x34, 0x7c, 0x83, 0x8d, 0xb7, 0x78, + 0xe1, 0xe3, 0xc3, 0x69, 0xd2, 0xcd, 0xed, 0xbb, 0xa4, 0xe1, 0x6f, 0x12, 0xdf, 0xa8, 0x22, 0x21, + 0x1f, 0x42, 0x18, 0x96, 0x5c, 0x91, 0x03, 0x13, 0x5e, 0x87, 0x34, 0xd8, 0xf4, 0x14, 0x2f, 0x6c, + 0x2e, 0x8f, 0x63, 0x18, 0x97, 0x23, 0x5d, 0x67, 0x6a, 0x33, 0x2d, 0x44, 0x4f, 0xd0, 0x5f, 0x98, + 0x09, 0x42, 0xf7, 0x61, 0xd2, 0xf3, 0x0d, 0xbf, 0xcb, 0x17, 0x65, 0xf1, 0xc2, 0xcd, 0xf4, 0x44, + 0x32, 0xb6, 0xd5, 0x59, 0x21, 0x74, 0x92, 0xff, 0xc6, 0x42, 0x9c, 0xfe, 0xf7, 0x1a, 0x9c, 0x88, + 0x50, 0x57, 0xdc, 0x56, 0xb7, 0x4d, 0x6c, 0x1f, 0x9d, 0x85, 0x09, 0xdb, 0x68, 0x13, 0xa1, 0x4f, + 0xb2, 0xcb, 0x37, 0x8c, 0x36, 0xc1, 0x0c, 0x83, 0x9e, 0x86, 0xdc, 0x9e, 0x61, 0x75, 0x09, 0x9b, + 0xa4, 0x42, 0x75, 0x46, 0x90, 0xe4, 0x5e, 0xa4, 0x40, 0xcc, 0x71, 0xe8, 0xf3, 0x50, 0x60, 0x7f, + 0x5c, 0x75, 0x9d, 0x76, 0x4a, 0x43, 0x13, 0x3d, 0x7c, 0x31, 0x60, 0x5b, 0x9d, 0xe9, 0xf7, 0xca, + 0x05, 0xf9, 0x13, 0x87, 0x02, 0xf5, 0x7f, 0xd0, 0x60, 0x2e, 0x32, 0xb8, 0x0d, 0xd3, 0xf3, 0xd1, + 0x2b, 0x03, 0xca, 0xb3, 0x3c, 0xa4, 0x19, 0x32, 0x3d, 0xae, 0x3a, 0x72, 0xd9, 0x07, 0x90, 0x88, + 0xe2, 0xd8, 0x90, 0x33, 0x7d, 0xd2, 0xa6, 0x86, 0x39, 0x7b, 0xbe, 0x78, 0x61, 0x2d, 0xb5, 0xcf, + 0x18, 0xce, 0xef, 0x1a, 0xe5, 0x8f, 0xb9, 0x18, 0xfd, 0x37, 0x32, 0xca, 0x08, 0x99, 0x57, 0x71, + 0x60, 0xaa, 0x4d, 0x7c, 0xd7, 0x6c, 0x50, 0x6b, 0x40, 0x7b, 0x71, 0x79, 0xbc, 0x5e, 0x6c, 0x32, + 0x66, 0xa1, 0x4d, 0xe1, 0xbf, 0x3d, 0x1c, 0x48, 0x41, 0xbb, 0x30, 0x61, 0xb8, 0xad, 0x60, 0xcc, + 0x57, 0xd3, 0xf9, 0xbe, 0xa1, 0xce, 0x55, 0xdc, 0x96, 0x87, 0x99, 0x04, 0xb4, 0x02, 0x05, 0x9f, + 0xb8, 0x6d, 0xd3, 0xa6, 0x96, 0x3a, 0xcb, 0xec, 0xfb, 0x82, 0x20, 0x2b, 0x6c, 0x05, 0x08, 0x1c, + 0xd2, 0xe8, 0xef, 0x65, 0x60, 0x61, 0x60, 0x31, 0xa0, 0x8b, 0x90, 0xeb, 0xec, 0x1a, 0x5e, 0xa0, + 0xdd, 0x4b, 0xc1, 0xd4, 0xd6, 0x28, 0xf0, 0x61, 0xaf, 0x3c, 0x13, 0x34, 0x61, 0x00, 0xcc, 0x89, + 0xa9, 0x95, 0x6d, 0x13, 0xcf, 0x33, 0x5a, 0x81, 0xca, 0x47, 0x66, 0x84, 0x81, 0x71, 0x80, 0x47, + 0x5f, 0xd1, 0x60, 0x86, 0xcf, 0x0e, 0x26, 0x5e, 0xd7, 0xf2, 0xe9, 0xb2, 0xa6, 0x73, 0xb3, 0x9e, + 0xc6, 0x97, 0xe0, 0x2c, 0xab, 0x27, 0x85, 0xf4, 0x99, 0x28, 0xd4, 0xc3, 0xaa, 0x5c, 0x74, 0x07, + 0x0a, 0x9e, 0x6f, 0xb8, 0x3e, 0x69, 0x56, 0x7c, 0xe1, 0x76, 0xff, 0xff, 0x70, 0xfa, 0xbe, 0x65, + 0xb6, 0x09, 0x5f, 0x5b, 0xf5, 0x80, 0x01, 0x0e, 0x79, 0xe9, 0xff, 0xaa, 0xc1, 0x7c, 0x30, 0x4d, + 0x81, 0xff, 0x7b, 0x0c, 0x96, 0xd9, 0x57, 0x2c, 0x33, 0x4e, 0x67, 0x7d, 0x29, 0x5e, 0x3d, 0xc1, + 0x3c, 0xeb, 0xff, 0xa2, 0xc1, 0x62, 0x9c, 0xf8, 0x31, 0x58, 0x13, 0x4f, 0xb5, 0x26, 0x37, 0xd2, + 0x1d, 0xed, 0x01, 0x26, 0xe5, 0x07, 0x09, 0x63, 0xfd, 0x1f, 0x6e, 0x57, 0xf4, 0xdf, 0x9b, 0x80, + 0xe9, 0x8a, 0xed, 0x9b, 0x95, 0x9d, 0x1d, 0xd3, 0x36, 0xfd, 0x7d, 0xf4, 0xd5, 0x0c, 0xac, 0x74, + 0x5c, 0xb2, 0x43, 0x5c, 0x97, 0x34, 0x2f, 0x77, 0x5d, 0xd3, 0x6e, 0xd5, 0x1b, 0xbb, 0xa4, 0xd9, + 0xb5, 0x4c, 0xbb, 0xb5, 0xd6, 0xb2, 0x1d, 0x09, 0xbe, 0xf2, 0x80, 0x34, 0xba, 0x34, 0x58, 0x11, + 0xdf, 0xbf, 0x3d, 0x5e, 0x37, 0x6b, 0xa3, 0x09, 0xad, 0x7e, 0xa2, 0xdf, 0x2b, 0xaf, 0x8c, 0xd8, + 0x08, 0x8f, 0x3a, 0x34, 0xf4, 0x56, 0x06, 0x96, 0x5d, 0xf2, 0xd9, 0xae, 0x39, 0xfc, 0x6c, 0xf0, + 0x05, 0x6a, 0x8d, 0x37, 0x1b, 0x78, 0x24, 0x99, 0xd5, 0x0b, 0xfd, 0x5e, 0x79, 0xc4, 0x36, 0x78, + 0xc4, 0x71, 0xe9, 0x7f, 0xaa, 0x41, 0x7e, 0x84, 0x28, 0xa9, 0xac, 0x46, 0x49, 0x85, 0x81, 0x08, + 0xc9, 0x1f, 0x8c, 0x90, 0xae, 0x8d, 0x37, 0x69, 0xc3, 0x44, 0x46, 0xff, 0x46, 0xf7, 0x11, 0xf1, + 0x48, 0x0a, 0xed, 0xc2, 0x62, 0x27, 0xdc, 0xe3, 0x5c, 0x37, 0xbc, 0x5d, 0x86, 0x13, 0xc3, 0xbb, + 0xd8, 0xef, 0x95, 0x17, 0x6b, 0x09, 0xf8, 0x87, 0xbd, 0x72, 0x49, 0x32, 0x89, 0x11, 0xe0, 0x44, + 0x8e, 0xa8, 0x03, 0xf9, 0x1d, 0x93, 0x58, 0x4d, 0x4c, 0x76, 0x84, 0xa6, 0x8c, 0xb9, 0xbc, 0xaf, + 0x0a, 0x6e, 0x7c, 0x7f, 0x18, 0xfc, 0xc2, 0x52, 0x8a, 0xfe, 0xa3, 0x09, 0x98, 0xab, 0x5a, 0x5d, + 0x72, 0xcd, 0x25, 0x24, 0x88, 0x03, 0x2a, 0x30, 0xd7, 0x71, 0xc9, 0x9e, 0x49, 0xee, 0xcb, 0x4d, + 0x23, 0x1f, 0xea, 0x29, 0xf1, 0x25, 0xe7, 0x6a, 0x2a, 0x1a, 0xc7, 0xe9, 0xd1, 0xf3, 0x30, 0xcb, + 0x37, 0xc9, 0x92, 0x03, 0xff, 0xd0, 0x1f, 0x10, 0x1c, 0x66, 0x2b, 0x0a, 0x16, 0xc7, 0xa8, 0xd1, + 0x2b, 0x50, 0xf2, 0x1a, 0x86, 0x45, 0x6e, 0x77, 0x84, 0xa8, 0xd5, 0x5d, 0xd2, 0xb8, 0x57, 0x73, + 0x4c, 0xdb, 0x17, 0x01, 0xce, 0x59, 0xc1, 0xa9, 0x54, 0x3f, 0x80, 0x0e, 0x1f, 0xc8, 0x01, 0xfd, + 0x89, 0x06, 0x67, 0x3a, 0x2e, 0xa9, 0xb9, 0x4e, 0xdb, 0xa1, 0xda, 0x3b, 0x10, 0x0a, 0x89, 0x90, + 0xe0, 0xc5, 0x31, 0x97, 0x29, 0x87, 0x0c, 0xee, 0x3a, 0x3e, 0xd4, 0xef, 0x95, 0xcf, 0xd4, 0x0e, + 0xeb, 0x00, 0x3e, 0xbc, 0x7f, 0xe8, 0x5b, 0x1a, 0x2c, 0x75, 0x1c, 0xcf, 0x3f, 0x64, 0x08, 0xb9, + 0x63, 0x1d, 0x82, 0xde, 0xef, 0x95, 0x97, 0x6a, 0x87, 0xf6, 0x00, 0x1f, 0xd1, 0x43, 0xfd, 0x4b, + 0x45, 0x58, 0x88, 0xe8, 0x9e, 0x6b, 0xf8, 0xa4, 0xb5, 0x8f, 0x9e, 0x83, 0x99, 0x40, 0x19, 0xf8, + 0xae, 0x9a, 0xeb, 0x9e, 0x8c, 0xeb, 0x2a, 0x51, 0x24, 0x56, 0x69, 0xa9, 0xde, 0x49, 0x55, 0xe4, + 0xad, 0x63, 0x7a, 0x57, 0x53, 0xb0, 0x38, 0x46, 0x8d, 0xd6, 0xe0, 0x84, 0x80, 0x60, 0xd2, 0xb1, + 0xcc, 0x86, 0xb1, 0xea, 0x74, 0x85, 0xca, 0xe5, 0xaa, 0xa7, 0xfa, 0xbd, 0xf2, 0x89, 0xda, 0x20, + 0x1a, 0x27, 0xb5, 0x41, 0x1b, 0xb0, 0x68, 0x74, 0x7d, 0x47, 0x8e, 0xff, 0x8a, 0x6d, 0x6c, 0x5b, + 0xa4, 0xc9, 0x54, 0x2b, 0x5f, 0x2d, 0x51, 0xab, 0x51, 0x49, 0xc0, 0xe3, 0xc4, 0x56, 0xa8, 0x16, + 0xe3, 0x16, 0x1c, 0x56, 0xe5, 0x58, 0xcf, 0x9e, 0x12, 0xc3, 0x53, 0x39, 0x06, 0xe7, 0x55, 0x89, + 0x2d, 0x91, 0x05, 0xb3, 0x6d, 0xe3, 0xc1, 0x6d, 0xdb, 0xd8, 0x33, 0x4c, 0x8b, 0x0a, 0x11, 0x67, + 0x3c, 0x07, 0x87, 0xa6, 0x5d, 0xdf, 0xb4, 0x96, 0xf9, 0xf9, 0xdd, 0xf2, 0x9a, 0xed, 0xdf, 0x74, + 0xeb, 0x3e, 0x75, 0x02, 0xc1, 0x59, 0x52, 0x94, 0x17, 0x8e, 0xf1, 0x46, 0x37, 0xe1, 0x24, 0x5b, + 0x8e, 0x97, 0x9d, 0xfb, 0xf6, 0x65, 0x62, 0x19, 0xfb, 0xc1, 0x00, 0xf8, 0x29, 0x19, 0x3b, 0x6d, + 0xab, 0x27, 0x11, 0xe0, 0xe4, 0x76, 0xc8, 0x80, 0x27, 0x55, 0x04, 0x26, 0x7b, 0xa6, 0x67, 0x3a, + 0x36, 0x3f, 0x7c, 0xe3, 0xa7, 0x49, 0xe5, 0x7e, 0xaf, 0xfc, 0x64, 0xfd, 0x60, 0x32, 0x7c, 0x18, + 0x0f, 0xf4, 0xeb, 0x1a, 0x2c, 0x26, 0x2d, 0xc3, 0x52, 0x21, 0x8d, 0xf3, 0x8f, 0xd8, 0xd2, 0xe2, + 0x1a, 0x91, 0x68, 0x14, 0x12, 0x3b, 0x81, 0x5e, 0xd7, 0x60, 0xda, 0x88, 0x04, 0x67, 0x25, 0x60, + 0xbd, 0x5a, 0x1f, 0x37, 0x1a, 0x0e, 0x39, 0xf2, 0xb3, 0xcb, 0x28, 0x04, 0x2b, 0x12, 0xd1, 0x6f, + 0x6a, 0x70, 0x32, 0x71, 0x8d, 0x97, 0x8a, 0xc7, 0x31, 0x43, 0x4c, 0x49, 0x92, 0x6d, 0x4e, 0x72, + 0x37, 0xd0, 0x3b, 0x9a, 0x74, 0x65, 0x9b, 0xc1, 0x7e, 0x64, 0x9a, 0x75, 0xed, 0xd6, 0x98, 0xf1, + 0x68, 0xe8, 0xbd, 0x03, 0xc6, 0xd5, 0x13, 0x11, 0xcf, 0x18, 0x00, 0x71, 0x5c, 0x3c, 0xfa, 0x9a, + 0x16, 0xb8, 0x46, 0xd9, 0xa3, 0x99, 0xe3, 0xea, 0x11, 0x0a, 0x3d, 0xad, 0xec, 0x50, 0x4c, 0xb8, + 0xfe, 0xcf, 0x59, 0x98, 0x5e, 0x35, 0x6c, 0xc3, 0xdd, 0x17, 0xae, 0xe5, 0x8f, 0x35, 0x78, 0xaa, + 0xd1, 0x75, 0x5d, 0x62, 0xfb, 0x75, 0x9f, 0x74, 0x06, 0x1d, 0x8b, 0x76, 0xac, 0x8e, 0xe5, 0x6c, + 0xbf, 0x57, 0x7e, 0x6a, 0xf5, 0x10, 0xf9, 0xf8, 0xd0, 0xde, 0xa1, 0xbf, 0xd2, 0x40, 0x17, 0x04, + 0x55, 0xa3, 0x71, 0xaf, 0xe5, 0x3a, 0x5d, 0xbb, 0x39, 0x38, 0x88, 0xcc, 0xb1, 0x0e, 0xe2, 0x5c, + 0xbf, 0x57, 0xd6, 0x57, 0x8f, 0xec, 0x05, 0x1e, 0xa2, 0xa7, 0xe8, 0x1a, 0x2c, 0x08, 0xaa, 0x2b, + 0x0f, 0x3a, 0xc4, 0x35, 0x69, 0x6c, 0x2a, 0x4e, 0x9a, 0x3f, 0x28, 0xcc, 0xfe, 0xc2, 0x6a, 0x9c, + 0x00, 0x0f, 0xb6, 0xd1, 0xff, 0x60, 0x02, 0x20, 0xf8, 0xd2, 0xa4, 0x83, 0x7e, 0x02, 0x0a, 0x1e, + 0xf1, 0xef, 0x10, 0xb3, 0xb5, 0xeb, 0x8b, 0x1c, 0x0b, 0x3f, 0xd6, 0x08, 0x80, 0x38, 0xc4, 0xa3, + 0x7b, 0x90, 0xeb, 0x18, 0x5d, 0x8f, 0x88, 0x79, 0x5b, 0x4f, 0x65, 0xde, 0x6a, 0x94, 0x23, 0x8f, + 0xfd, 0xd9, 0x9f, 0x98, 0xcb, 0x40, 0x5f, 0xd6, 0x00, 0x88, 0x3a, 0xd6, 0xe2, 0x85, 0x7a, 0x2a, + 0x22, 0xc3, 0xe9, 0xa0, 0x73, 0x50, 0x9d, 0xed, 0xf7, 0xca, 0x10, 0x99, 0xb5, 0x88, 0x58, 0x74, + 0x1f, 0xf2, 0x46, 0x60, 0xce, 0x26, 0x8e, 0xc3, 0x9c, 0xb1, 0x90, 0x5c, 0x7e, 0x6f, 0x29, 0x0c, + 0xbd, 0xa5, 0xc1, 0xac, 0x47, 0x7c, 0xf1, 0xa9, 0xa8, 0x7f, 0x12, 0xb1, 0xdc, 0xc6, 0x78, 0xf2, + 0xeb, 0x0a, 0x4f, 0x6e, 0x1c, 0x54, 0x18, 0x8e, 0xc9, 0xd5, 0xff, 0x33, 0x0f, 0xb3, 0x81, 0xca, + 0x84, 0xe1, 0x59, 0x83, 0x43, 0x92, 0xc3, 0xb3, 0xd5, 0x28, 0x12, 0xab, 0xb4, 0xb4, 0xb1, 0xe7, + 0xd3, 0x78, 0x40, 0x8d, 0xce, 0x64, 0xe3, 0x7a, 0x14, 0x89, 0x55, 0x5a, 0xd4, 0x86, 0x9c, 0xe7, + 0x93, 0x4e, 0x70, 0x68, 0x78, 0x7d, 0xbc, 0xd9, 0x08, 0x57, 0x42, 0x78, 0xe0, 0x43, 0x7f, 0x79, + 0x98, 0x4b, 0x41, 0x6f, 0x6b, 0x30, 0xeb, 0x2b, 0x09, 0x25, 0xa1, 0x06, 0xe9, 0x68, 0xa2, 0x9a, + 0xab, 0xe2, 0x5f, 0x43, 0x85, 0xe1, 0x98, 0xf8, 0x84, 0x88, 0x2d, 0x77, 0x8c, 0x11, 0xdb, 0x4b, + 0x90, 0x6f, 0x1b, 0x0f, 0xea, 0x5d, 0xb7, 0xf5, 0xe8, 0x91, 0x21, 0x53, 0xf1, 0x4d, 0xc1, 0x05, + 0x4b, 0x7e, 0xe8, 0x0d, 0x2d, 0xb2, 0xb8, 0xa6, 0x18, 0xf3, 0x3b, 0xe9, 0x2e, 0x2e, 0x69, 0x50, + 0x0f, 0x5c, 0x66, 0x03, 0xf1, 0x53, 0xfe, 0xb1, 0xc7, 0x4f, 0x34, 0x16, 0xe0, 0x0b, 0x44, 0xc6, + 0x02, 0x85, 0x63, 0x8d, 0x05, 0x56, 0x15, 0x61, 0x38, 0x26, 0x9c, 0xf5, 0x87, 0xaf, 0x39, 0xd9, + 0x1f, 0x38, 0xd6, 0xfe, 0xd4, 0x15, 0x61, 0x38, 0x26, 0x5c, 0xff, 0x81, 0x06, 0xa7, 0x56, 0xad, + 0xae, 0xe7, 0x13, 0xf7, 0x7f, 0xcd, 0x99, 0xfa, 0x7f, 0x68, 0xf0, 0xe4, 0x01, 0x63, 0x7e, 0x0c, + 0x47, 0xeb, 0xaf, 0xa9, 0x47, 0xeb, 0xb7, 0xc7, 0xb4, 0xb1, 0xc9, 0xe3, 0x38, 0xe0, 0x84, 0xdd, + 0x87, 0x99, 0xcb, 0x86, 0x6f, 0x34, 0x9d, 0x16, 0x3f, 0xf2, 0x46, 0xcf, 0x43, 0xde, 0xb4, 0x7d, + 0xe2, 0xee, 0x19, 0x96, 0xf0, 0x32, 0x7a, 0xd0, 0xf5, 0x35, 0x01, 0x7f, 0xd8, 0x2b, 0xcf, 0x5e, + 0xee, 0xba, 0x2c, 0x2d, 0xce, 0x6d, 0x0e, 0x96, 0x6d, 0xd0, 0xd3, 0x90, 0xfb, 0x6c, 0x97, 0xb8, + 0xfb, 0xf1, 0x54, 0xec, 0x2d, 0x0a, 0xc4, 0x1c, 0xa7, 0xff, 0x6d, 0x06, 0x22, 0x11, 0xc0, 0x63, + 0x50, 0x2b, 0x5b, 0x51, 0xab, 0x31, 0x7d, 0x7a, 0x24, 0x9e, 0x39, 0x28, 0x87, 0xbe, 0x17, 0xcb, + 0xa1, 0xdf, 0x48, 0x4d, 0xe2, 0xe1, 0x29, 0xf4, 0xf7, 0x34, 0x78, 0x32, 0x24, 0x1e, 0x8c, 0x6b, + 0x8f, 0x3e, 0x24, 0x7e, 0x16, 0x8a, 0x46, 0xd8, 0x4c, 0x7c, 0x45, 0x59, 0x5d, 0x11, 0xe1, 0x88, + 0xa3, 0x74, 0x61, 0x1a, 0x33, 0xfb, 0x88, 0x69, 0xcc, 0x89, 0xc3, 0xd3, 0x98, 0xfa, 0x0f, 0x33, + 0x70, 0x66, 0x70, 0x64, 0xb2, 0xda, 0x85, 0xec, 0x0c, 0x31, 0xb6, 0x4b, 0x30, 0x1d, 0x14, 0xc5, + 0x50, 0xa8, 0x18, 0xdc, 0xa2, 0xa0, 0x9c, 0xde, 0x8a, 0xe0, 0xb0, 0x42, 0x49, 0x5b, 0x36, 0xf8, + 0xba, 0xaa, 0x37, 0x9c, 0x4e, 0x90, 0xef, 0x95, 0x2d, 0x57, 0x23, 0x38, 0xac, 0x50, 0xca, 0xc4, + 0xd1, 0xc4, 0xb1, 0x27, 0xa4, 0xeb, 0x70, 0x32, 0xc8, 0x1f, 0x5c, 0x75, 0xdc, 0xb0, 0x04, 0x4b, + 0x14, 0x1f, 0x9d, 0x11, 0x4d, 0x4e, 0xe2, 0x24, 0x22, 0x9c, 0xdc, 0x56, 0x7f, 0x2f, 0x0b, 0x27, + 0xc2, 0x69, 0x5f, 0x75, 0xec, 0xa6, 0xc9, 0xb2, 0x30, 0xcf, 0xc1, 0x84, 0xbf, 0xdf, 0x09, 0x26, + 0xfb, 0xff, 0x05, 0xdd, 0xd9, 0xda, 0xef, 0xd0, 0xaf, 0x7d, 0x2a, 0xa1, 0x09, 0x45, 0x61, 0xd6, + 0x08, 0x6d, 0xc8, 0xd5, 0xc1, 0xbf, 0xc0, 0x45, 0x55, 0x9b, 0x1f, 0xf6, 0xca, 0x09, 0x15, 0x79, + 0xcb, 0x92, 0x93, 0xaa, 0xf3, 0xe8, 0x2e, 0xcc, 0x5a, 0x86, 0xe7, 0xdf, 0xee, 0x34, 0x0d, 0x9f, + 0x6c, 0x99, 0x6d, 0x22, 0xd6, 0xdc, 0x28, 0xb9, 0x65, 0x79, 0x54, 0xb9, 0xa1, 0x70, 0xc2, 0x31, + 0xce, 0x68, 0x0f, 0x10, 0x85, 0x6c, 0xb9, 0x86, 0xed, 0xf1, 0x51, 0x51, 0x79, 0xa3, 0xe7, 0xb2, + 0x4f, 0x0b, 0x79, 0x68, 0x63, 0x80, 0x1b, 0x4e, 0x90, 0x80, 0xce, 0xc1, 0xa4, 0x4b, 0x0c, 0x4f, + 0x7c, 0xcc, 0x42, 0xb8, 0xfe, 0x31, 0x83, 0x62, 0x81, 0x8d, 0x2e, 0xa8, 0xc9, 0x23, 0x16, 0xd4, + 0xf7, 0x34, 0x98, 0x0d, 0x3f, 0xd3, 0x63, 0x70, 0x73, 0x6d, 0xd5, 0xcd, 0x5d, 0x4f, 0xcb, 0x24, + 0x1e, 0xe0, 0xd9, 0xde, 0xcf, 0x46, 0xc7, 0xc7, 0xb2, 0xc6, 0x9f, 0x83, 0x42, 0xb0, 0xaa, 0x83, + 0xbc, 0xf1, 0x98, 0x91, 0xa7, 0x12, 0x59, 0x44, 0xca, 0x3f, 0x84, 0x10, 0x1c, 0xca, 0xa3, 0x8e, + 0xb5, 0x29, 0x9c, 0xa6, 0x50, 0x7b, 0xe9, 0x58, 0x03, 0x67, 0x9a, 0xe4, 0x58, 0x83, 0x36, 0xe8, + 0x36, 0x9c, 0xea, 0xb8, 0x0e, 0xab, 0x9c, 0x4b, 0x2a, 0x9e, 0x14, 0x55, 0x7c, 0xb5, 0x64, 0x12, + 0x7c, 0x50, 0x5b, 0xb5, 0x8c, 0x65, 0xe2, 0xe8, 0x32, 0x16, 0xf4, 0x0b, 0x72, 0x1b, 0x41, 0xbc, + 0x52, 0x8e, 0x4d, 0xe2, 0xcb, 0x69, 0x7d, 0xca, 0x04, 0xb3, 0x1e, 0xaa, 0x54, 0x45, 0x08, 0xc5, + 0x52, 0xbc, 0xfe, 0x66, 0x0e, 0xe6, 0xe3, 0xbe, 0xf1, 0xf8, 0x2b, 0x6a, 0x7e, 0x59, 0x83, 0xf9, + 0xe0, 0xbb, 0x72, 0x99, 0x24, 0xd8, 0x1f, 0x6f, 0xa4, 0xa4, 0x4e, 0xdc, 0xcb, 0xcb, 0xc2, 0xc4, + 0xad, 0x98, 0x34, 0x3c, 0x20, 0x1f, 0xbd, 0x0a, 0x45, 0xb9, 0x8d, 0x7c, 0xa4, 0xf2, 0x1a, 0x56, + 0xb8, 0x5b, 0x09, 0x59, 0xe0, 0x28, 0x3f, 0xf4, 0xa6, 0x06, 0xd0, 0x08, 0x0c, 0x70, 0xf0, 0xdd, + 0x6f, 0xa5, 0xf5, 0xdd, 0xa5, 0x69, 0x0f, 0xc3, 0x38, 0x09, 0xf2, 0x70, 0x44, 0x30, 0xfa, 0x15, + 0xb6, 0x81, 0x94, 0x71, 0x87, 0x57, 0x9a, 0x64, 0x3d, 0xf9, 0x74, 0xda, 0x1a, 0x18, 0x1e, 0x2b, + 0x4a, 0x27, 0x1f, 0x41, 0x79, 0x58, 0xe9, 0x84, 0xfe, 0x1c, 0xc8, 0x34, 0x2f, 0x5d, 0x50, 0x2c, + 0xd1, 0x5b, 0x33, 0xfc, 0x5d, 0xa1, 0x82, 0x72, 0x41, 0x5d, 0x0d, 0x10, 0x38, 0xa4, 0xd1, 0xff, + 0x4c, 0x83, 0xc5, 0x35, 0xcf, 0x37, 0x9d, 0xcb, 0xc4, 0xf3, 0xe9, 0x1a, 0xa3, 0xee, 0xb8, 0x6b, + 0x91, 0x21, 0x02, 0x9a, 0xcb, 0x30, 0x2f, 0xce, 0x7a, 0xba, 0xdb, 0x1e, 0xf1, 0x23, 0x41, 0x8d, + 0x54, 0x9d, 0xd5, 0x18, 0x1e, 0x0f, 0xb4, 0xa0, 0x5c, 0xc4, 0xa1, 0x4f, 0xc8, 0x25, 0xab, 0x72, + 0xa9, 0xc7, 0xf0, 0x78, 0xa0, 0x85, 0xfe, 0x8d, 0x0c, 0x9c, 0x60, 0xc3, 0x88, 0x15, 0x04, 0xff, + 0x92, 0x06, 0xb3, 0x7b, 0xa6, 0xeb, 0xb3, 0x22, 0xe7, 0xf0, 0xf4, 0x6a, 0x6c, 0xed, 0x61, 0xb2, + 0x5e, 0x54, 0x18, 0x87, 0x6e, 0x5c, 0x85, 0xe3, 0x58, 0x07, 0x68, 0x9f, 0xe6, 0x9a, 0xea, 0x6c, + 0xa7, 0xb3, 0xe3, 0x4c, 0xfa, 0x8e, 0x3c, 0x47, 0x11, 0x03, 0xe2, 0xb8, 0x7c, 0xfd, 0x65, 0x31, + 0x7d, 0x6a, 0xd7, 0x87, 0x50, 0x02, 0x1d, 0x26, 0x5d, 0xa7, 0x4b, 0x5d, 0x1a, 0x75, 0xac, 0x85, + 0x2a, 0xb0, 0xb8, 0x80, 0x41, 0xb0, 0xc0, 0xe8, 0x7f, 0xa3, 0x41, 0x61, 0xdd, 0xd9, 0x16, 0x7b, + 0xbc, 0x9f, 0x4d, 0x61, 0xbf, 0x25, 0xcd, 0xb2, 0x3c, 0x48, 0x08, 0x3d, 0x7d, 0x4b, 0xd9, 0x6d, + 0x5d, 0x19, 0x6f, 0x4a, 0xc5, 0x05, 0x85, 0xc4, 0x7d, 0xfb, 0xef, 0xe4, 0x60, 0xe6, 0x05, 0x63, + 0x9f, 0xd8, 0xbe, 0x21, 0x86, 0xf6, 0x11, 0x98, 0x32, 0x9a, 0xcd, 0xa4, 0xf2, 0xf3, 0x0a, 0x07, + 0xe3, 0x00, 0xcf, 0x76, 0x3a, 0x1d, 0x96, 0x3b, 0x8e, 0xf8, 0xe4, 0x70, 0xa7, 0x13, 0xa2, 0x70, + 0x94, 0x2e, 0x5c, 0x73, 0xab, 0x8e, 0xbd, 0x63, 0xb6, 0x92, 0x56, 0xcb, 0x6a, 0x0c, 0x8f, 0x07, + 0x5a, 0xa0, 0x75, 0x40, 0xa2, 0xb4, 0xac, 0xd2, 0x68, 0x38, 0x5d, 0x9b, 0xaf, 0x3a, 0xbe, 0x09, + 0x92, 0xc1, 0xe1, 0xe6, 0x00, 0x05, 0x4e, 0x68, 0x85, 0x5e, 0x81, 0x52, 0x83, 0x71, 0x16, 0xa1, + 0x42, 0x94, 0x23, 0x0f, 0x17, 0x65, 0xdd, 0xc6, 0xea, 0x01, 0x74, 0xf8, 0x40, 0x0e, 0xb4, 0xa7, + 0x9e, 0xef, 0xb8, 0x46, 0x8b, 0x44, 0xf9, 0x4e, 0xaa, 0x3d, 0xad, 0x0f, 0x50, 0xe0, 0x84, 0x56, + 0xe8, 0x8b, 0x50, 0xf0, 0x77, 0x5d, 0xe2, 0xed, 0x3a, 0x56, 0x53, 0x1c, 0x41, 0x8e, 0xb9, 0x33, + 0x16, 0x5f, 0x7f, 0x2b, 0xe0, 0x1a, 0x09, 0x5e, 0x02, 0x10, 0x0e, 0x65, 0x22, 0x17, 0x26, 0x3d, + 0xba, 0x2d, 0xf3, 0x4a, 0xf9, 0x34, 0xc2, 0x3f, 0x21, 0x9d, 0xed, 0xf4, 0x22, 0x7b, 0x72, 0x26, + 0x01, 0x0b, 0x49, 0xfa, 0x9f, 0x67, 0x60, 0x3a, 0x4a, 0x38, 0xc4, 0x92, 0xfe, 0xb2, 0x06, 0xd3, + 0x0d, 0xc7, 0xf6, 0x5d, 0xc7, 0xe2, 0xfb, 0x4d, 0xbe, 0x92, 0xc6, 0x2c, 0xe1, 0x66, 0xac, 0x2e, + 0x13, 0xdf, 0x30, 0xad, 0xc8, 0xd6, 0x35, 0x22, 0x06, 0x2b, 0x42, 0xd1, 0x57, 0x35, 0x98, 0x0b, + 0x73, 0x33, 0xe1, 0xc6, 0x37, 0xd5, 0x8e, 0xc8, 0xf2, 0xa6, 0x2b, 0xaa, 0x24, 0x1c, 0x17, 0xad, + 0x6f, 0xc3, 0x7c, 0xfc, 0x6b, 0xd3, 0xa9, 0xec, 0x18, 0x62, 0xad, 0x67, 0xc3, 0xa9, 0xac, 0x19, + 0x9e, 0x87, 0x19, 0x06, 0x7d, 0x14, 0xf2, 0x6d, 0xc3, 0x6d, 0x99, 0xb6, 0x61, 0xb1, 0x59, 0xcc, + 0x46, 0x2c, 0x97, 0x80, 0x63, 0x49, 0xa1, 0x7f, 0x7f, 0x02, 0x8a, 0x9b, 0xc4, 0xf0, 0xba, 0x2e, + 0x61, 0x27, 0x53, 0xc7, 0x1e, 0x4b, 0x2a, 0x35, 0xd1, 0xd9, 0xf4, 0x6a, 0xa2, 0xd1, 0x4b, 0x00, + 0x3b, 0xe2, 0xa6, 0xce, 0x23, 0x85, 0x83, 0x2c, 0x4b, 0x77, 0x55, 0x72, 0xc0, 0x11, 0x6e, 0xe1, + 0x75, 0x8b, 0xdc, 0x21, 0xd7, 0x2d, 0xde, 0xd4, 0x22, 0x5e, 0x86, 0x47, 0x69, 0x77, 0xc6, 0x2d, + 0xd2, 0x95, 0x1f, 0x66, 0x39, 0xf0, 0x3a, 0x57, 0x6c, 0xdf, 0xdd, 0x3f, 0xd4, 0x19, 0x6d, 0x41, + 0xde, 0x25, 0x5e, 0xb7, 0x4d, 0xa3, 0xe2, 0xa9, 0x91, 0xa7, 0x81, 0x25, 0x32, 0xb0, 0x68, 0x8f, + 0x25, 0xa7, 0xd3, 0xcf, 0xc1, 0x8c, 0xd2, 0x05, 0x34, 0x0f, 0xd9, 0x7b, 0x64, 0x9f, 0xeb, 0x09, + 0xa6, 0x7f, 0xa2, 0x45, 0xa5, 0xdc, 0x52, 0x4c, 0xcb, 0x27, 0x33, 0x97, 0x34, 0xfd, 0x87, 0x93, + 0x30, 0x29, 0xfc, 0xd5, 0xd1, 0xb6, 0x20, 0x7a, 0x20, 0x9b, 0x79, 0x84, 0x03, 0xd9, 0x75, 0x98, + 0x36, 0x6d, 0xd3, 0x37, 0x0d, 0x8b, 0x55, 0xdb, 0x08, 0x5f, 0x75, 0x2e, 0x58, 0xff, 0x6b, 0x11, + 0x5c, 0x02, 0x1f, 0xa5, 0x2d, 0xba, 0x05, 0x39, 0x66, 0xcc, 0x85, 0x3e, 0x8d, 0x9e, 0x9b, 0x62, + 0x79, 0x67, 0x5e, 0xbf, 0xc5, 0x39, 0xb1, 0xe0, 0xb3, 0xdb, 0x68, 0x10, 0xcf, 0x93, 0x11, 0xbf, + 0x50, 0xab, 0x30, 0xf8, 0x8c, 0xe1, 0xf1, 0x40, 0x0b, 0xca, 0x65, 0xc7, 0x30, 0xad, 0xae, 0x4b, + 0x42, 0x2e, 0x93, 0x2a, 0x97, 0xab, 0x31, 0x3c, 0x1e, 0x68, 0x81, 0x76, 0x60, 0x5a, 0xc0, 0xc2, + 0xcb, 0x84, 0x8f, 0x32, 0x4a, 0x96, 0x82, 0xba, 0x1a, 0xe1, 0x84, 0x15, 0xbe, 0xa8, 0x0b, 0x0b, + 0xa6, 0xdd, 0x70, 0xec, 0x86, 0xd5, 0xf5, 0xcc, 0x3d, 0x12, 0x16, 0x4f, 0x3d, 0x8a, 0xb0, 0x93, + 0xfd, 0x5e, 0x79, 0x61, 0x2d, 0xce, 0x0e, 0x0f, 0x4a, 0x40, 0x6f, 0x68, 0x70, 0xb2, 0xe1, 0xd8, + 0x1e, 0x2b, 0x1f, 0xde, 0x23, 0x57, 0x5c, 0xd7, 0x71, 0xb9, 0xec, 0xc2, 0x23, 0xca, 0x66, 0xc5, + 0x41, 0xab, 0x49, 0x2c, 0x71, 0xb2, 0x24, 0xf4, 0x1a, 0xe4, 0x3b, 0xae, 0xb3, 0x67, 0x36, 0x89, + 0x2b, 0xd2, 0x5c, 0x1b, 0x69, 0x54, 0xee, 0xd7, 0x04, 0xcf, 0xd0, 0x12, 0x04, 0x10, 0x2c, 0xe5, + 0xe9, 0x5f, 0x9f, 0x84, 0x59, 0x95, 0x1c, 0x7d, 0x01, 0xa0, 0xe3, 0x3a, 0x6d, 0xe2, 0xef, 0x12, + 0x59, 0x64, 0x73, 0x63, 0xdc, 0xaa, 0xf9, 0x80, 0x9f, 0xb8, 0x54, 0xc0, 0x2c, 0x69, 0x08, 0xc5, + 0x11, 0x89, 0xc8, 0x85, 0xa9, 0x7b, 0xdc, 0xa7, 0x09, 0x17, 0xff, 0x42, 0x2a, 0x01, 0x89, 0x90, + 0x5c, 0xa4, 0x2e, 0x47, 0x80, 0x70, 0x20, 0x08, 0x6d, 0x43, 0xf6, 0x3e, 0xd9, 0x4e, 0xa7, 0xbe, + 0xfb, 0x0e, 0x11, 0x7b, 0x8a, 0xea, 0x54, 0xbf, 0x57, 0xce, 0xde, 0x21, 0xdb, 0x98, 0x32, 0xa7, + 0xe3, 0x6a, 0xf2, 0xb4, 0x92, 0x30, 0x15, 0x63, 0x8e, 0x4b, 0xc9, 0x51, 0xf1, 0x71, 0x09, 0x10, + 0x0e, 0x04, 0xa1, 0xd7, 0xa0, 0x70, 0xdf, 0xd8, 0x23, 0x3b, 0xae, 0x63, 0xfb, 0x22, 0x49, 0x3f, + 0x66, 0xf1, 0xc8, 0x9d, 0x80, 0x9d, 0x90, 0xcb, 0xbc, 0xad, 0x04, 0xe2, 0x50, 0x1c, 0xda, 0x83, + 0xbc, 0x4d, 0xee, 0x63, 0x62, 0x99, 0x0d, 0x91, 0xb7, 0x1f, 0x53, 0xad, 0x6f, 0x08, 0x6e, 0x42, + 0x32, 0x73, 0x43, 0x01, 0x0c, 0x4b, 0x59, 0xf4, 0x5b, 0xde, 0x75, 0xb6, 0x85, 0xa1, 0xba, 0x36, + 0xf6, 0x46, 0x2b, 0xfa, 0x2d, 0xd7, 0x9d, 0x6d, 0x4c, 0x99, 0xeb, 0xdf, 0x98, 0x80, 0xe9, 0xe8, + 0xbd, 0xae, 0x21, 0x7c, 0x96, 0x0c, 0x9b, 0x32, 0xa3, 0x84, 0x4d, 0x34, 0xea, 0x6d, 0x87, 0x3e, + 0x3e, 0x38, 0x53, 0x5b, 0x4b, 0x2d, 0x6a, 0x08, 0xa3, 0xde, 0x08, 0xd0, 0xc3, 0x8a, 0xd0, 0x11, + 0x72, 0x52, 0x34, 0x0e, 0xe2, 0xee, 0x90, 0x17, 0x04, 0xcb, 0x38, 0x48, 0x71, 0x70, 0x17, 0x00, + 0x84, 0xbb, 0xda, 0xe9, 0x5a, 0x4c, 0x39, 0x72, 0xe1, 0x29, 0x57, 0x5d, 0x62, 0x70, 0x84, 0x0a, + 0x9d, 0x83, 0x49, 0xea, 0x30, 0x48, 0x53, 0x54, 0xea, 0xca, 0xad, 0xc5, 0x55, 0x06, 0xc5, 0x02, + 0x8b, 0x2e, 0x51, 0xdf, 0x1e, 0x9a, 0x79, 0x51, 0x80, 0xbb, 0x18, 0xfa, 0xf6, 0x10, 0x87, 0x15, + 0x4a, 0xda, 0x75, 0x42, 0xad, 0x32, 0x33, 0xfd, 0x91, 0xae, 0x33, 0x53, 0x8d, 0x39, 0x8e, 0x6d, + 0x75, 0x63, 0x56, 0x9c, 0x19, 0xed, 0x5c, 0x64, 0xab, 0x1b, 0xc3, 0xe3, 0x81, 0x16, 0xfa, 0x67, + 0x60, 0x56, 0xd5, 0x66, 0x3a, 0xc5, 0x1d, 0xd7, 0xd9, 0x31, 0x2d, 0x12, 0xdf, 0xa4, 0xd7, 0x38, + 0x18, 0x07, 0xf8, 0xe1, 0xd2, 0xc9, 0x7f, 0x91, 0x85, 0x13, 0x37, 0x5a, 0xa6, 0xfd, 0x20, 0x76, + 0xf4, 0x94, 0x74, 0xe5, 0x5b, 0x1b, 0xf5, 0xca, 0x77, 0x58, 0x3f, 0x25, 0x2e, 0xb0, 0x27, 0xd7, + 0x4f, 0x05, 0xb7, 0xdb, 0x55, 0x5a, 0xf4, 0x3d, 0x0d, 0x9e, 0x32, 0x9a, 0x3c, 0xbe, 0x30, 0x2c, + 0x01, 0x0d, 0x85, 0x06, 0x3a, 0xee, 0x8d, 0x69, 0x2d, 0x06, 0x07, 0xbf, 0x5c, 0x39, 0x44, 0x2a, + 0x8f, 0x9a, 0x3f, 0x2c, 0x46, 0xf0, 0xd4, 0x61, 0xa4, 0xf8, 0xd0, 0xee, 0x9f, 0xbe, 0x09, 0x1f, + 0x3a, 0x52, 0xd0, 0x48, 0xb1, 0xf1, 0xef, 0x6a, 0x30, 0xcb, 0x0a, 0x13, 0xc3, 0xb0, 0xec, 0x59, + 0x99, 0xfc, 0xe2, 0x1f, 0xef, 0x8c, 0x9a, 0xfc, 0x7a, 0xc8, 0xde, 0xa8, 0xe8, 0x7a, 0x24, 0x96, + 0x0b, 0x7b, 0x59, 0x6c, 0xad, 0x58, 0x8a, 0x2e, 0x33, 0x72, 0xe4, 0x2f, 0x0f, 0x12, 0xea, 0x01, + 0x13, 0x1c, 0xf2, 0xd3, 0xbf, 0x9e, 0x85, 0x13, 0x09, 0x15, 0x36, 0x74, 0xd7, 0x33, 0x69, 0x19, + 0xdb, 0xc4, 0x0a, 0x12, 0x4c, 0xaf, 0xa6, 0x5e, 0xc5, 0xc3, 0x1f, 0xa1, 0x10, 0xdf, 0x50, 0x5a, + 0x06, 0x0e, 0xc4, 0x42, 0x38, 0xfa, 0x35, 0x0d, 0x8a, 0x46, 0x44, 0xcd, 0x78, 0xce, 0x6d, 0x3b, + 0xfd, 0xce, 0x0c, 0x68, 0x55, 0xa4, 0x56, 0x20, 0x54, 0xa2, 0x68, 0x5f, 0x4e, 0xff, 0x34, 0x14, + 0x23, 0x43, 0x18, 0x45, 0x3b, 0x4e, 0x3f, 0x0f, 0xf3, 0x63, 0x69, 0xd7, 0xa7, 0x61, 0xd4, 0x0b, + 0x8a, 0xd4, 0x16, 0xdf, 0x8f, 0xd6, 0xeb, 0xca, 0x19, 0x17, 0x05, 0xbb, 0x02, 0xab, 0x6f, 0xc3, + 0x7c, 0x3c, 0xf4, 0x1b, 0xe5, 0x34, 0x72, 0x28, 0x43, 0xf7, 0x71, 0x18, 0xf1, 0x4a, 0xa1, 0xfe, + 0x97, 0x19, 0x98, 0x12, 0x65, 0x7a, 0x8f, 0xa1, 0xcc, 0xe6, 0x9e, 0x72, 0xf0, 0xbb, 0x96, 0x4a, + 0x75, 0xe1, 0x81, 0x35, 0x36, 0x5e, 0xac, 0xc6, 0xe6, 0x85, 0x74, 0xc4, 0x1d, 0x5e, 0x60, 0xf3, + 0x76, 0x06, 0xe6, 0x62, 0x65, 0x8f, 0xe8, 0xe7, 0xb5, 0xc1, 0xbc, 0xf2, 0xed, 0x54, 0x2b, 0x2b, + 0x65, 0x11, 0xd7, 0xe1, 0x29, 0x66, 0x4f, 0xb9, 0xa4, 0x7c, 0x2b, 0xb5, 0x07, 0x1f, 0x0e, 0xbd, + 0xaf, 0xfc, 0x4f, 0x1a, 0x7c, 0xf0, 0xc0, 0x42, 0x50, 0x76, 0x19, 0xc4, 0x55, 0xb1, 0x42, 0xf7, + 0x52, 0x2e, 0xec, 0x96, 0xe7, 0x88, 0xf1, 0xfb, 0x01, 0x71, 0xf1, 0xe8, 0x22, 0x4c, 0x33, 0x3b, + 0x4e, 0x97, 0x8f, 0x4f, 0x3a, 0xe2, 0xdd, 0x19, 0xb6, 0x67, 0xaf, 0x47, 0xe0, 0x58, 0xa1, 0xd2, + 0x7f, 0x5b, 0x83, 0xd2, 0x41, 0x57, 0x0f, 0x86, 0x88, 0x88, 0x7f, 0x2a, 0x56, 0xf2, 0x52, 0x1e, + 0x28, 0x79, 0x89, 0xc5, 0xc4, 0x41, 0x75, 0x4b, 0x24, 0x1c, 0xcd, 0x1e, 0x51, 0xd1, 0xf1, 0x35, + 0x0d, 0x4e, 0x1d, 0xa0, 0x38, 0x03, 0xa5, 0x4f, 0xda, 0x23, 0x97, 0x3e, 0x65, 0x86, 0x2d, 0x7d, + 0xd2, 0xff, 0x3a, 0x0b, 0xf3, 0xa2, 0x3f, 0xa1, 0x33, 0xbf, 0xa4, 0x14, 0x0e, 0x7d, 0x38, 0x56, + 0x38, 0xb4, 0x18, 0xa7, 0xff, 0xbf, 0xaa, 0xa1, 0x1f, 0xaf, 0xaa, 0xa1, 0x1f, 0x65, 0xe0, 0x64, + 0xe2, 0xb5, 0x0e, 0xf4, 0x56, 0x82, 0x15, 0xbc, 0x93, 0xf2, 0xfd, 0x91, 0x21, 0xed, 0xe0, 0xb8, + 0xa5, 0x36, 0xbf, 0x1a, 0x2d, 0x71, 0xe1, 0x01, 0xfa, 0xce, 0x31, 0xdc, 0x84, 0x19, 0xb5, 0xda, + 0xe5, 0x17, 0xb3, 0x70, 0x7e, 0x58, 0x46, 0x3f, 0xa6, 0xd5, 0x90, 0x9e, 0x52, 0x0d, 0xf9, 0x78, + 0x3c, 0xd4, 0xf1, 0x14, 0x46, 0x7e, 0x25, 0x2b, 0xdd, 0xde, 0xa0, 0x7e, 0x0e, 0x75, 0xac, 0x3f, + 0x45, 0xa3, 0x98, 0xe0, 0xd1, 0x81, 0xd0, 0x14, 0x4e, 0xd5, 0x39, 0xf8, 0x61, 0xaf, 0xbc, 0x20, + 0xee, 0x36, 0xd7, 0x89, 0x2f, 0x80, 0x38, 0x68, 0x84, 0xce, 0x43, 0xde, 0xe5, 0xd8, 0xa0, 0xfe, + 0x4b, 0xa4, 0x2a, 0x38, 0x0c, 0x4b, 0x2c, 0xfa, 0x62, 0x24, 0xec, 0x9b, 0x38, 0xae, 0x9b, 0x05, + 0x87, 0x65, 0x60, 0xa2, 0xaf, 0xed, 0xe5, 0x52, 0x7f, 0x6d, 0x4f, 0xff, 0xad, 0x2c, 0x14, 0xc5, + 0x97, 0x58, 0xb3, 0x77, 0x9c, 0xc7, 0x10, 0xe6, 0x9e, 0x8b, 0x79, 0xa2, 0x03, 0x82, 0xc5, 0x11, + 0x7c, 0x37, 0x55, 0x18, 0xb3, 0xe1, 0xd8, 0xe2, 0xc8, 0x49, 0x2a, 0xcc, 0x5a, 0xc3, 0xb1, 0x31, + 0xc3, 0xa0, 0x8f, 0x42, 0xde, 0x13, 0xf7, 0xc1, 0x84, 0x39, 0x97, 0x73, 0x1e, 0xdc, 0x13, 0xc3, + 0x92, 0x82, 0xf2, 0xf3, 0x68, 0x70, 0x33, 0xa9, 0xf2, 0x63, 0x81, 0x0d, 0xc3, 0xa0, 0x95, 0xe8, + 0x55, 0xc4, 0x29, 0xb5, 0x4e, 0x29, 0xf1, 0x3a, 0xe2, 0x25, 0x98, 0x36, 0x1a, 0x7e, 0xd7, 0xb0, + 0x44, 0x9b, 0xbc, 0x6a, 0x2f, 0x2a, 0x11, 0x1c, 0x56, 0x28, 0xf5, 0xf7, 0x34, 0xf9, 0x85, 0x1e, + 0x43, 0x9d, 0xe9, 0x5d, 0xb5, 0xce, 0xf4, 0x4a, 0x2a, 0x96, 0xfb, 0x80, 0x22, 0xd3, 0xbb, 0x30, + 0x1d, 0xbd, 0x57, 0x89, 0x5e, 0x8a, 0x78, 0x1e, 0x6d, 0x9c, 0xfb, 0x5b, 0x81, 0x6f, 0x0a, 0xbd, + 0x92, 0xfe, 0xed, 0x9c, 0x9c, 0x45, 0x56, 0xcd, 0x1a, 0xb5, 0x00, 0xda, 0xa1, 0x16, 0x20, 0xba, + 0x00, 0x33, 0xe9, 0x3f, 0x77, 0x19, 0x7d, 0xb2, 0x32, 0x9b, 0xce, 0x93, 0x95, 0x15, 0x98, 0x6b, + 0x9b, 0x36, 0x26, 0x46, 0x53, 0xbe, 0x59, 0x30, 0xc1, 0x9f, 0x83, 0x08, 0xc2, 0xfc, 0x4d, 0x15, + 0x8d, 0xe3, 0xf4, 0xe8, 0x73, 0xb1, 0xf5, 0x92, 0xd6, 0x8e, 0x23, 0x58, 0x6c, 0x87, 0x2e, 0xbf, + 0x0d, 0x58, 0x74, 0xc5, 0xb3, 0x06, 0xd7, 0x4d, 0xcf, 0x77, 0xdc, 0x7d, 0x9e, 0x68, 0xe3, 0xc7, + 0xbf, 0xec, 0xd5, 0x01, 0x9c, 0x80, 0xc7, 0x89, 0xad, 0xa8, 0xbd, 0x61, 0x97, 0x74, 0xf9, 0x71, + 0x70, 0x3e, 0xb4, 0x37, 0x4c, 0xe9, 0x9a, 0x58, 0x60, 0x0f, 0x2b, 0x11, 0xce, 0x8f, 0x51, 0x22, + 0x7c, 0x07, 0x0a, 0x2e, 0x61, 0x9b, 0xa1, 0x4a, 0x90, 0x2a, 0x1c, 0xb9, 0x46, 0x01, 0x07, 0x0c, + 0x70, 0xc8, 0x4b, 0xff, 0xc3, 0x69, 0x98, 0x51, 0xb6, 0xdd, 0xe8, 0x69, 0xc8, 0x19, 0xdb, 0x8e, + 0xcb, 0xcf, 0x5a, 0xf2, 0xe1, 0xa2, 0xab, 0x50, 0x20, 0xe6, 0x38, 0xf4, 0xb6, 0x06, 0x73, 0x1d, + 0xe5, 0x88, 0x30, 0x58, 0xeb, 0x63, 0x26, 0x5d, 0xd4, 0x73, 0xc7, 0xc8, 0xcb, 0x3b, 0xaa, 0x30, + 0x1c, 0x97, 0x4e, 0xd5, 0x55, 0x54, 0xce, 0x58, 0xc4, 0x65, 0xd4, 0x22, 0x26, 0x92, 0x2c, 0x56, + 0x55, 0x34, 0x8e, 0xd3, 0xd3, 0x49, 0x66, 0xa3, 0x1b, 0xe7, 0x71, 0xbc, 0x4a, 0xc0, 0x00, 0x87, + 0xbc, 0xd0, 0xf3, 0x30, 0x2b, 0xae, 0xa5, 0xd7, 0x9c, 0xe6, 0x75, 0xc3, 0xdb, 0x15, 0xde, 0x43, + 0x6e, 0x5e, 0x56, 0x15, 0x2c, 0x8e, 0x51, 0xb3, 0xb1, 0x85, 0x77, 0xff, 0x19, 0x83, 0x49, 0xf5, + 0x61, 0xa2, 0x55, 0x15, 0x8d, 0xe3, 0xf4, 0xd4, 0x75, 0x49, 0x4b, 0x25, 0x1e, 0xe8, 0x0d, 0xd6, + 0x4e, 0x82, 0xb5, 0xaa, 0xc0, 0x5c, 0x97, 0xed, 0x9d, 0x9a, 0x01, 0x52, 0x68, 0xaf, 0x14, 0x78, + 0x5b, 0x45, 0xe3, 0x38, 0x3d, 0x7a, 0x0e, 0x66, 0x5c, 0x6a, 0x0b, 0x24, 0x03, 0x9e, 0xe5, 0x90, + 0x47, 0xf6, 0x38, 0x8a, 0xc4, 0x2a, 0x2d, 0xba, 0x06, 0x0b, 0xe1, 0x05, 0xdd, 0x80, 0x01, 0x4f, + 0x7b, 0xc8, 0xbb, 0xff, 0x95, 0x38, 0x01, 0x1e, 0x6c, 0x83, 0x7e, 0x06, 0xe6, 0x23, 0x33, 0xb1, + 0x66, 0x37, 0xc9, 0x03, 0xf6, 0x46, 0x47, 0xae, 0xba, 0xc8, 0x52, 0x27, 0x31, 0x1c, 0x1e, 0xa0, + 0x46, 0x9f, 0x84, 0xd9, 0x86, 0x63, 0x59, 0xcc, 0x22, 0xf0, 0x47, 0x71, 0xa6, 0x79, 0xfe, 0x88, + 0x7d, 0x37, 0x05, 0x83, 0x63, 0x94, 0x68, 0x1d, 0x90, 0xb3, 0xed, 0x11, 0x77, 0x8f, 0x34, 0xaf, + 0xf1, 0x77, 0x9f, 0xa9, 0x53, 0x9a, 0x51, 0xeb, 0xf6, 0x6e, 0x0e, 0x50, 0xe0, 0x84, 0x56, 0xe8, + 0x4b, 0x6a, 0xf5, 0xf7, 0x6c, 0x1a, 0x4f, 0x00, 0xc6, 0x77, 0xfa, 0x47, 0x96, 0x7e, 0xbb, 0x30, + 0xc9, 0xcb, 0x28, 0x4b, 0x73, 0x69, 0x5c, 0x1a, 0x8e, 0xbe, 0xbf, 0x11, 0x5a, 0x54, 0x0e, 0xc5, + 0x42, 0x12, 0xfa, 0x02, 0x14, 0xb6, 0x83, 0xc7, 0x92, 0x4a, 0xf3, 0x69, 0x78, 0x91, 0xd8, 0xbb, + 0x5f, 0x61, 0xcc, 0x25, 0x11, 0x38, 0x14, 0x89, 0xce, 0x41, 0xf1, 0x7a, 0xad, 0x22, 0xb5, 0x70, + 0x81, 0x7d, 0xfd, 0x09, 0xda, 0x04, 0x47, 0x11, 0x2c, 0x38, 0x0c, 0x3c, 0x3c, 0x8a, 0x05, 0x87, + 0x83, 0x0e, 0x9b, 0x85, 0x92, 0x4c, 0x55, 0xeb, 0xa5, 0x13, 0xf1, 0x50, 0x92, 0xc3, 0xb1, 0xa4, + 0x40, 0xaf, 0x42, 0x51, 0x98, 0x6c, 0x66, 0x9b, 0x16, 0x1f, 0xed, 0x66, 0x01, 0x0e, 0x59, 0xe0, + 0x28, 0x3f, 0xf4, 0x2c, 0x14, 0x3b, 0xec, 0x0d, 0x19, 0x72, 0xb5, 0x6b, 0x59, 0xa5, 0x93, 0xcc, + 0x6e, 0xca, 0x24, 0x42, 0x2d, 0x44, 0xe1, 0x28, 0x9d, 0xfe, 0x46, 0x78, 0x10, 0x2b, 0x9f, 0x49, + 0xf8, 0x7c, 0xf4, 0x6b, 0x69, 0x69, 0xbc, 0xf0, 0x3b, 0xf0, 0x52, 0x16, 0x37, 0xb4, 0x89, 0xdf, + 0xaa, 0x23, 0xf5, 0x33, 0x95, 0x5b, 0xa6, 0xea, 0x13, 0x10, 0xbc, 0xaa, 0x5b, 0xd5, 0x4e, 0xfd, + 0xbd, 0xac, 0x3c, 0x8c, 0x89, 0x65, 0x3e, 0x5d, 0xc8, 0x99, 0x9e, 0x6f, 0x3a, 0x29, 0x96, 0xda, + 0xc7, 0xde, 0x4e, 0x60, 0x95, 0x5c, 0x0c, 0x81, 0xb9, 0x28, 0x2a, 0xd3, 0x6e, 0x99, 0xf6, 0x03, + 0x31, 0xfc, 0x5b, 0xa9, 0xa7, 0x34, 0xb9, 0x4c, 0x86, 0xc0, 0x5c, 0x14, 0xba, 0x0b, 0x59, 0xc3, + 0xda, 0x4e, 0xe9, 0x35, 0xe7, 0xf8, 0x5b, 0xe6, 0xbc, 0x0e, 0xa2, 0xb2, 0x51, 0xc5, 0x54, 0x08, + 0x95, 0xe5, 0xb5, 0x4d, 0xe1, 0x9b, 0xc7, 0x94, 0x55, 0xdf, 0x5c, 0x4b, 0x92, 0x55, 0xdf, 0x5c, + 0xc3, 0x54, 0x88, 0xfe, 0x8e, 0x06, 0x0b, 0x03, 0x34, 0xf1, 0x97, 0xcf, 0xb5, 0xe1, 0x5f, 0x3e, + 0x17, 0x8f, 0x5a, 0xd4, 0x3b, 0x96, 0x99, 0x78, 0x4b, 0x64, 0x2b, 0x86, 0xc7, 0x03, 0x2d, 0xf4, + 0x6f, 0x6a, 0x50, 0x8c, 0x14, 0xee, 0xd2, 0x50, 0x8d, 0x15, 0x38, 0x8b, 0x6e, 0x84, 0xef, 0x79, + 0xb0, 0x63, 0x1f, 0x8e, 0xe3, 0x27, 0x90, 0xad, 0xf0, 0x1c, 0x2e, 0x72, 0x02, 0x49, 0xa1, 0x58, + 0x60, 0xe5, 0x76, 0x35, 0xab, 0xd6, 0xf1, 0x46, 0xb6, 0xab, 0x54, 0x1c, 0xb5, 0x19, 0x62, 0x87, + 0x1c, 0x79, 0x3e, 0xc4, 0xa0, 0x91, 0x21, 0xc3, 0xa1, 0x33, 0x90, 0x25, 0x76, 0x53, 0x04, 0x38, + 0x45, 0x41, 0x92, 0xbd, 0x62, 0x37, 0x31, 0x85, 0xeb, 0x37, 0x61, 0xba, 0x4e, 0x1a, 0x2e, 0xf1, + 0x5f, 0x20, 0xfb, 0xc3, 0x9d, 0x91, 0x9d, 0xe1, 0xb9, 0xc5, 0x8c, 0xca, 0x90, 0x36, 0xa7, 0x70, + 0xfd, 0xf7, 0x35, 0x88, 0xbd, 0xe6, 0x82, 0xf4, 0x58, 0xba, 0x10, 0x06, 0x53, 0x85, 0xca, 0xce, + 0x2d, 0x73, 0xe8, 0xce, 0x6d, 0x1d, 0x50, 0xdb, 0xf0, 0x1b, 0xbb, 0xe2, 0xfb, 0x88, 0x9d, 0x37, + 0x8f, 0x2d, 0xc3, 0x6b, 0x02, 0x03, 0x14, 0x38, 0xa1, 0x95, 0xfe, 0xed, 0x0c, 0x4c, 0x2b, 0x8f, + 0xe8, 0x1e, 0x3d, 0xfc, 0xe1, 0x3b, 0x9a, 0xb0, 0x61, 0xcb, 0x8e, 0xb8, 0x61, 0x3b, 0xe6, 0x7f, + 0xca, 0x10, 0xdd, 0xa5, 0xe6, 0x52, 0xd9, 0xa5, 0xea, 0xdf, 0x9a, 0x80, 0x59, 0xf5, 0x6a, 0xde, + 0x10, 0x73, 0xfa, 0xd1, 0x81, 0x39, 0x1d, 0x31, 0x18, 0xce, 0x8e, 0x1b, 0x0c, 0x4f, 0x8c, 0x1b, + 0x0c, 0xe7, 0x1e, 0x21, 0x18, 0x1e, 0x0c, 0x65, 0x27, 0x87, 0x0e, 0x65, 0x3f, 0x25, 0xcf, 0xdb, + 0xa6, 0x94, 0xa3, 0xd2, 0x30, 0xf3, 0x83, 0xd4, 0xcf, 0xb0, 0xea, 0x34, 0x13, 0x33, 0x68, 0xf9, + 0x23, 0x4e, 0xe1, 0xdc, 0xc4, 0x44, 0xcd, 0xe8, 0x5b, 0xde, 0x0f, 0x0c, 0x9f, 0xa4, 0xd1, 0x5f, + 0xcf, 0x40, 0xf8, 0x2e, 0x2e, 0x7b, 0x20, 0xc7, 0x8b, 0xd8, 0x28, 0xe1, 0xc0, 0xd7, 0xc7, 0x7d, + 0x85, 0x2a, 0xe4, 0x28, 0x32, 0x9d, 0x11, 0x08, 0x56, 0x24, 0xfe, 0x37, 0xbc, 0x87, 0x6b, 0xc0, + 0x5c, 0xac, 0xd4, 0x32, 0xf5, 0xca, 0x89, 0x6f, 0x66, 0xa0, 0x20, 0x8b, 0x55, 0xa9, 0x59, 0xef, + 0xba, 0xc1, 0xfb, 0x26, 0xd2, 0xac, 0xdf, 0xc6, 0x1b, 0x98, 0xc2, 0xd1, 0x03, 0x98, 0xda, 0x25, + 0x46, 0x93, 0xb8, 0xc1, 0xb9, 0xc2, 0x66, 0x4a, 0x55, 0xb2, 0xd7, 0x19, 0xd7, 0x70, 0x2c, 0xfc, + 0xb7, 0x87, 0x03, 0x71, 0x74, 0xb3, 0xee, 0x9b, 0x6d, 0x42, 0x83, 0x5a, 0xe5, 0x1f, 0xe3, 0xc8, + 0xcd, 0xfa, 0x96, 0x82, 0xc5, 0x31, 0x6a, 0x6a, 0x5c, 0xee, 0x7a, 0x8e, 0xcd, 0xee, 0x9e, 0x4e, + 0xa8, 0x91, 0xfd, 0x7a, 0xfd, 0xe6, 0x0d, 0x76, 0xf5, 0x54, 0x52, 0x50, 0x6a, 0x93, 0x15, 0xeb, + 0xb9, 0x44, 0xe4, 0x42, 0xe6, 0xc3, 0xab, 0x05, 0x1c, 0x8e, 0x25, 0x85, 0x7e, 0x1b, 0xe6, 0x62, + 0x03, 0x09, 0xdc, 0xa3, 0x96, 0xec, 0x1e, 0x87, 0xfa, 0xb7, 0x1c, 0xd5, 0xe5, 0x77, 0xdf, 0x5f, + 0x7a, 0xe2, 0x3b, 0xef, 0x2f, 0x3d, 0xf1, 0xdd, 0xf7, 0x97, 0x9e, 0x78, 0xbd, 0xbf, 0xa4, 0xbd, + 0xdb, 0x5f, 0xd2, 0xbe, 0xd3, 0x5f, 0xd2, 0xbe, 0xdb, 0x5f, 0xd2, 0xfe, 0xb1, 0xbf, 0xa4, 0xbd, + 0xf3, 0xfd, 0xa5, 0x27, 0x5e, 0xca, 0x07, 0x93, 0xf9, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6c, + 0xdb, 0xb0, 0x09, 0x68, 0x6a, 0x00, 0x00, +} + +func (m *JobSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JobSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TTLSecondsAfterFinished != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished)) + i-- + dAtA[i] = 0x40 + } + if m.BackoffLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit)) + i-- + dAtA[i] = 0x38 + } + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if m.ManualSelector != nil { + i-- + if *m.ManualSelector { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ActiveDeadlineSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds)) + i-- + dAtA[i] = 0x18 + } + if m.Completions != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Completions)) + i-- + dAtA[i] = 0x10 + } + if m.Parallelism != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *ALBTrafficRouting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ALBTrafficRouting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ALBTrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.AnnotationPrefix) + copy(dAtA[i:], m.AnnotationPrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.AnnotationPrefix))) + i-- + dAtA[i] = 0x22 + i -= len(m.RootService) + copy(dAtA[i:], m.RootService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RootService))) + i-- + dAtA[i] = 0x1a + i = encodeVarintGenerated(dAtA, i, uint64(m.ServicePort)) + i-- + dAtA[i] = 0x10 + i -= len(m.Ingress) + copy(dAtA[i:], m.Ingress) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Ingress))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisRun) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRun) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRun) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisRunArgument) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunArgument) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunArgument) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ValueFrom != nil { + { + size, err := m.ValueFrom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisRunList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisRunSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.Terminate { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Args[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Metrics) > 0 { + for iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *AnalysisRunStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.StartedAt != nil { + { + size, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.MetricResults) > 0 { + for iNdEx := len(m.MetricResults) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MetricResults[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisTemplate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisTemplate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisTemplateList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisTemplateList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisTemplateSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisTemplateSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisTemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Args[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Metrics) > 0 { + for iNdEx := len(m.Metrics) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Metrics[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *AntiAffinity) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AntiAffinity) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AntiAffinity) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RequiredDuringSchedulingIgnoredDuringExecution != nil { + { + size, err := m.RequiredDuringSchedulingIgnoredDuringExecution.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PreferredDuringSchedulingIgnoredDuringExecution != nil { + { + size, err := m.PreferredDuringSchedulingIgnoredDuringExecution.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Argument) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Argument) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Argument) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ValueFrom != nil { + { + size, err := m.ValueFrom.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Value != nil { + i -= len(*m.Value) + copy(dAtA[i:], *m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ArgumentValueFrom) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ArgumentValueFrom) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ArgumentValueFrom) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.FieldRef != nil { + { + size, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.PodTemplateHashValue != nil { + i -= len(*m.PodTemplateHashValue) + copy(dAtA[i:], *m.PodTemplateHashValue) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.PodTemplateHashValue))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BlueGreenStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BlueGreenStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BlueGreenStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PostPromotionAnalysisRunStatus != nil { + { + size, err := m.PostPromotionAnalysisRunStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.PrePromotionAnalysisRunStatus != nil { + { + size, err := m.PrePromotionAnalysisRunStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i-- + if m.ScaleUpPreviewCheckPoint { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + i -= len(m.ActiveSelector) + copy(dAtA[i:], m.ActiveSelector) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ActiveSelector))) + i-- + dAtA[i] = 0x12 + i -= len(m.PreviewSelector) + copy(dAtA[i:], m.PreviewSelector) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.PreviewSelector))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BlueGreenStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BlueGreenStrategy) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BlueGreenStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ActiveMetadata != nil { + { + size, err := m.ActiveMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + if m.PreviewMetadata != nil { + { + size, err := m.PreviewMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.PostPromotionAnalysis != nil { + { + size, err := m.PostPromotionAnalysis.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + if m.AntiAffinity != nil { + { + size, err := m.AntiAffinity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + if m.PrePromotionAnalysis != nil { + { + size, err := m.PrePromotionAnalysis.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.ScaleDownDelayRevisionLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ScaleDownDelayRevisionLimit)) + i-- + dAtA[i] = 0x40 + } + if m.ScaleDownDelaySeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ScaleDownDelaySeconds)) + i-- + dAtA[i] = 0x38 + } + if m.MaxUnavailable != nil { + { + size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.AutoPromotionSeconds)) + i-- + dAtA[i] = 0x28 + if m.AutoPromotionEnabled != nil { + i-- + if *m.AutoPromotionEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + if m.PreviewReplicaCount != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.PreviewReplicaCount)) + i-- + dAtA[i] = 0x18 + } + i -= len(m.PreviewService) + copy(dAtA[i:], m.PreviewService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.PreviewService))) + i-- + dAtA[i] = 0x12 + i -= len(m.ActiveService) + copy(dAtA[i:], m.ActiveService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ActiveService))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CanaryStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CanaryStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CanaryStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.CurrentExperiment) + copy(dAtA[i:], m.CurrentExperiment) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentExperiment))) + i-- + dAtA[i] = 0x1a + if m.CurrentBackgroundAnalysisRunStatus != nil { + { + size, err := m.CurrentBackgroundAnalysisRunStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.CurrentStepAnalysisRunStatus != nil { + { + size, err := m.CurrentStepAnalysisRunStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CanaryStep) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CanaryStep) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CanaryStep) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SetCanaryScale != nil { + { + size, err := m.SetCanaryScale.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Analysis != nil { + { + size, err := m.Analysis.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Experiment != nil { + { + size, err := m.Experiment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Pause != nil { + { + size, err := m.Pause.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.SetWeight != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.SetWeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *CanaryStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CanaryStrategy) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CanaryStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.StableMetadata != nil { + { + size, err := m.StableMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + if m.CanaryMetadata != nil { + { + size, err := m.CanaryMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.AntiAffinity != nil { + { + size, err := m.AntiAffinity.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.Analysis != nil { + { + size, err := m.Analysis.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.MaxUnavailable != nil { + { + size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.TrafficRouting != nil { + { + size, err := m.TrafficRouting.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.Steps) > 0 { + for iNdEx := len(m.Steps) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Steps[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.StableService) + copy(dAtA[i:], m.StableService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StableService))) + i-- + dAtA[i] = 0x12 + i -= len(m.CanaryService) + copy(dAtA[i:], m.CanaryService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CanaryService))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ClusterAnalysisTemplate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterAnalysisTemplate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterAnalysisTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ClusterAnalysisTemplateList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterAnalysisTemplateList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterAnalysisTemplateList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *DatadogMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DatadogMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DatadogMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Query) + copy(dAtA[i:], m.Query) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Query))) + i-- + dAtA[i] = 0x12 + i -= len(m.Interval) + copy(dAtA[i:], m.Interval) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Interval))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Experiment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Experiment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Experiment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExperimentAnalysisRunStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentAnalysisRunStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentAnalysisRunStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x22 + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0x1a + i -= len(m.AnalysisRun) + copy(dAtA[i:], m.AnalysisRun) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.AnalysisRun))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExperimentAnalysisTemplateRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentAnalysisTemplateRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentAnalysisTemplateRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.RequiredForCompletion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Args[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + i-- + if m.ClusterScope { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + i -= len(m.TemplateName) + copy(dAtA[i:], m.TemplateName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TemplateName))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExperimentCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentCondition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x32 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x2a + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExperimentList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExperimentSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Analyses) > 0 { + for iNdEx := len(m.Analyses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Analyses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + i-- + if m.Terminate { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + if m.ProgressDeadlineSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds)) + i-- + dAtA[i] = 0x18 + } + i -= len(m.Duration) + copy(dAtA[i:], m.Duration) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Duration))) + i-- + dAtA[i] = 0x12 + if len(m.Templates) > 0 { + for iNdEx := len(m.Templates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Templates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ExperimentStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AnalysisRuns) > 0 { + for iNdEx := len(m.AnalysisRuns) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AnalysisRuns[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.AvailableAt != nil { + { + size, err := m.AvailableAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.TemplateStatuses) > 0 { + for iNdEx := len(m.TemplateStatuses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.TemplateStatuses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *FieldRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *FieldRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *FieldRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.FieldPath) + copy(dAtA[i:], m.FieldPath) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FieldPath))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *IstioDestinationRule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioDestinationRule) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IstioDestinationRule) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.StableSubsetName) + copy(dAtA[i:], m.StableSubsetName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StableSubsetName))) + i-- + dAtA[i] = 0x1a + i -= len(m.CanarySubsetName) + copy(dAtA[i:], m.CanarySubsetName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CanarySubsetName))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *IstioTrafficRouting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioTrafficRouting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IstioTrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.DestinationRule != nil { + { + size, err := m.DestinationRule.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.VirtualService.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *IstioVirtualService) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IstioVirtualService) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IstioVirtualService) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Routes) > 0 { + for iNdEx := len(m.Routes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Routes[iNdEx]) + copy(dAtA[i:], m.Routes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Routes[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *JobMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JobMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KayentaMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KayentaMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KayentaMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Scopes) > 0 { + for iNdEx := len(m.Scopes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Scopes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + } + { + size, err := m.Threshold.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + i -= len(m.StorageAccountName) + copy(dAtA[i:], m.StorageAccountName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageAccountName))) + i-- + dAtA[i] = 0x32 + i -= len(m.ConfigurationAccountName) + copy(dAtA[i:], m.ConfigurationAccountName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ConfigurationAccountName))) + i-- + dAtA[i] = 0x2a + i -= len(m.MetricsAccountName) + copy(dAtA[i:], m.MetricsAccountName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.MetricsAccountName))) + i-- + dAtA[i] = 0x22 + i -= len(m.CanaryConfigName) + copy(dAtA[i:], m.CanaryConfigName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CanaryConfigName))) + i-- + dAtA[i] = 0x1a + i -= len(m.Application) + copy(dAtA[i:], m.Application) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Application))) + i-- + dAtA[i] = 0x12 + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KayentaScope) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KayentaScope) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KayentaScope) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.ExperimentScope.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.ControlScope.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KayentaThreshold) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KayentaThreshold) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KayentaThreshold) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Marginal)) + i-- + dAtA[i] = 0x10 + i = encodeVarintGenerated(dAtA, i, uint64(m.Pass)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *Measurement) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Measurement) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Measurement) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ResumeAt != nil { + { + size, err := m.ResumeAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if len(m.Metadata) > 0 { + keysForMetadata := make([]string, 0, len(m.Metadata)) + for k := range m.Metadata { + keysForMetadata = append(keysForMetadata, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetadata) + for iNdEx := len(keysForMetadata) - 1; iNdEx >= 0; iNdEx-- { + v := m.Metadata[string(keysForMetadata[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForMetadata[iNdEx]) + copy(dAtA[i:], keysForMetadata[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForMetadata[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x32 + } + } + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x2a + if m.FinishedAt != nil { + { + size, err := m.FinishedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.StartedAt != nil { + { + size, err := m.StartedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x12 + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Metric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Metric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Metric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + if m.ConsecutiveErrorLimit != nil { + { + size, err := m.ConsecutiveErrorLimit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.InconclusiveLimit != nil { + { + size, err := m.InconclusiveLimit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.FailureLimit != nil { + { + size, err := m.FailureLimit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + i -= len(m.FailureCondition) + copy(dAtA[i:], m.FailureCondition) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.FailureCondition))) + i-- + dAtA[i] = 0x32 + i -= len(m.SuccessCondition) + copy(dAtA[i:], m.SuccessCondition) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SuccessCondition))) + i-- + dAtA[i] = 0x2a + if m.Count != nil { + { + size, err := m.Count.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i -= len(m.InitialDelay) + copy(dAtA[i:], m.InitialDelay) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.InitialDelay))) + i-- + dAtA[i] = 0x1a + i -= len(m.Interval) + copy(dAtA[i:], m.Interval) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Interval))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MetricProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MetricProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Job != nil { + { + size, err := m.Job.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.NewRelic != nil { + { + size, err := m.NewRelic.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.Wavefront != nil { + { + size, err := m.Wavefront.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Datadog != nil { + { + size, err := m.Datadog.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.Web != nil { + { + size, err := m.Web.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Kayenta != nil { + { + size, err := m.Kayenta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Prometheus != nil { + { + size, err := m.Prometheus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MetricResult) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MetricResult) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MetricResult) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.ConsecutiveError)) + i-- + dAtA[i] = 0x50 + i = encodeVarintGenerated(dAtA, i, uint64(m.Error)) + i-- + dAtA[i] = 0x48 + i = encodeVarintGenerated(dAtA, i, uint64(m.Inconclusive)) + i-- + dAtA[i] = 0x40 + i = encodeVarintGenerated(dAtA, i, uint64(m.Failed)) + i-- + dAtA[i] = 0x38 + i = encodeVarintGenerated(dAtA, i, uint64(m.Successful)) + i-- + dAtA[i] = 0x30 + i = encodeVarintGenerated(dAtA, i, uint64(m.Count)) + i-- + dAtA[i] = 0x28 + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x22 + if len(m.Measurements) > 0 { + for iNdEx := len(m.Measurements) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Measurements[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NewRelicMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NewRelicMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NewRelicMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Query) + copy(dAtA[i:], m.Query) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Query))) + i-- + dAtA[i] = 0x12 + i -= len(m.Profile) + copy(dAtA[i:], m.Profile) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Profile))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NginxTrafficRouting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NginxTrafficRouting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NginxTrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AdditionalIngressAnnotations) > 0 { + keysForAdditionalIngressAnnotations := make([]string, 0, len(m.AdditionalIngressAnnotations)) + for k := range m.AdditionalIngressAnnotations { + keysForAdditionalIngressAnnotations = append(keysForAdditionalIngressAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAdditionalIngressAnnotations) + for iNdEx := len(keysForAdditionalIngressAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.AdditionalIngressAnnotations[string(keysForAdditionalIngressAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForAdditionalIngressAnnotations[iNdEx]) + copy(dAtA[i:], keysForAdditionalIngressAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAdditionalIngressAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.StableIngress) + copy(dAtA[i:], m.StableIngress) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StableIngress))) + i-- + dAtA[i] = 0x12 + i -= len(m.AnnotationPrefix) + copy(dAtA[i:], m.AnnotationPrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.AnnotationPrefix))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PauseCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PauseCondition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PauseCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.StartTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PodTemplateMetadata) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodTemplateMetadata) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodTemplateMetadata) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Annotations) > 0 { + keysForAnnotations := make([]string, 0, len(m.Annotations)) + for k := range m.Annotations { + keysForAnnotations = append(keysForAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.Annotations[string(keysForAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForAnnotations[iNdEx]) + copy(dAtA[i:], keysForAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Labels) > 0 { + keysForLabels := make([]string, 0, len(m.Labels)) + for k := range m.Labels { + keysForLabels = append(keysForLabels, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { + v := m.Labels[string(keysForLabels[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForLabels[iNdEx]) + copy(dAtA[i:], keysForLabels[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *PreferredDuringSchedulingIgnoredDuringExecution) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PreferredDuringSchedulingIgnoredDuringExecution) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PreferredDuringSchedulingIgnoredDuringExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Weight)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *PrometheusMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PrometheusMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PrometheusMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Query) + copy(dAtA[i:], m.Query) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Query))) + i-- + dAtA[i] = 0x12 + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *Rollout) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Rollout) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Rollout) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutAnalysis) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutAnalysis) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutAnalysis) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Args[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Templates) > 0 { + for iNdEx := len(m.Templates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Templates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *RolloutAnalysisBackground) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutAnalysisBackground) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutAnalysisBackground) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.StartingStep != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.StartingStep)) + i-- + dAtA[i] = 0x10 + } + { + size, err := m.RolloutAnalysis.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutAnalysisRunStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutAnalysisRunStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutAnalysisRunStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutAnalysisTemplate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutAnalysisTemplate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutAnalysisTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.ClusterScope { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i -= len(m.TemplateName) + copy(dAtA[i:], m.TemplateName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TemplateName))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutCondition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x32 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x2a + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutExperimentStep) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutExperimentStep) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutExperimentStep) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Analyses) > 0 { + for iNdEx := len(m.Analyses) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Analyses[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Duration) + copy(dAtA[i:], m.Duration) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Duration))) + i-- + dAtA[i] = 0x12 + if len(m.Templates) > 0 { + for iNdEx := len(m.Templates) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Templates[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *RolloutExperimentStepAnalysisTemplateRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutExperimentStepAnalysisTemplateRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutExperimentStepAnalysisTemplateRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.RequiredForCompletion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + if len(m.Args) > 0 { + for iNdEx := len(m.Args) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Args[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + i-- + if m.ClusterScope { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + i -= len(m.TemplateName) + copy(dAtA[i:], m.TemplateName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TemplateName))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutExperimentTemplate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutExperimentTemplate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutExperimentTemplate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + { + size, err := m.Metadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Replicas != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + i-- + dAtA[i] = 0x18 + } + i -= len(m.SpecRef) + copy(dAtA[i:], m.SpecRef) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SpecRef))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.ActualWeight) + copy(dAtA[i:], m.ActualWeight) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ActualWeight))) + i-- + dAtA[i] = 0x42 + i -= len(m.SetWeight) + copy(dAtA[i:], m.SetWeight) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SetWeight))) + i-- + dAtA[i] = 0x3a + i -= len(m.Step) + copy(dAtA[i:], m.Step) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Step))) + i-- + dAtA[i] = 0x32 + i -= len(m.Strategy) + copy(dAtA[i:], m.Strategy) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Strategy))) + i-- + dAtA[i] = 0x2a + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x22 + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RolloutPause) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutPause) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutPause) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Duration != nil { + { + size, err := m.Duration.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RolloutSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.RestartAt != nil { + { + size, err := m.RestartAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.ProgressDeadlineSeconds != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds)) + i-- + dAtA[i] = 0x40 + } + i-- + if m.Paused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + if m.RevisionHistoryLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) + i-- + dAtA[i] = 0x30 + } + { + size, err := m.Strategy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + i-- + dAtA[i] = 0x20 + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Replicas != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *RolloutStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.PromoteFull { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa8 + if m.RestartedAt != nil { + { + size, err := m.RestartedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + i -= len(m.StableRS) + copy(dAtA[i:], m.StableRS) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.StableRS))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + i -= len(m.Selector) + copy(dAtA[i:], m.Selector) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Selector))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + i = encodeVarintGenerated(dAtA, i, uint64(m.HPAReplicas)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + { + size, err := m.BlueGreen.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + { + size, err := m.Canary.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + } + i -= len(m.ObservedGeneration) + copy(dAtA[i:], m.ObservedGeneration) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ObservedGeneration))) + i-- + dAtA[i] = 0x6a + if m.CollisionCount != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + i-- + dAtA[i] = 0x60 + } + if m.CurrentStepIndex != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.CurrentStepIndex)) + i-- + dAtA[i] = 0x58 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + i-- + dAtA[i] = 0x50 + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + i-- + dAtA[i] = 0x48 + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + i-- + dAtA[i] = 0x40 + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + i-- + dAtA[i] = 0x38 + i -= len(m.CurrentStepHash) + copy(dAtA[i:], m.CurrentStepHash) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentStepHash))) + i-- + dAtA[i] = 0x32 + i -= len(m.CurrentPodHash) + copy(dAtA[i:], m.CurrentPodHash) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentPodHash))) + i-- + dAtA[i] = 0x2a + if m.AbortedAt != nil { + { + size, err := m.AbortedAt.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i-- + if m.ControllerPause { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + if len(m.PauseConditions) > 0 { + for iNdEx := len(m.PauseConditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.PauseConditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i-- + if m.Abort { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *RolloutStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutStrategy) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutStrategy) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Canary != nil { + { + size, err := m.Canary.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.BlueGreen != nil { + { + size, err := m.BlueGreen.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RolloutTrafficRouting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutTrafficRouting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutTrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SMI != nil { + { + size, err := m.SMI.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ALB != nil { + { + size, err := m.ALB.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Nginx != nil { + { + size, err := m.Nginx.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Istio != nil { + { + size, err := m.Istio.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SMITrafficRouting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SMITrafficRouting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SMITrafficRouting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.TrafficSplitName) + copy(dAtA[i:], m.TrafficSplitName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TrafficSplitName))) + i-- + dAtA[i] = 0x12 + i -= len(m.RootService) + copy(dAtA[i:], m.RootService) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RootService))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ScopeDetail) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScopeDetail) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ScopeDetail) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.End) + copy(dAtA[i:], m.End) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.End))) + i-- + dAtA[i] = 0x2a + i -= len(m.Start) + copy(dAtA[i:], m.Start) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Start))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.Step)) + i-- + dAtA[i] = 0x18 + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Scope) + copy(dAtA[i:], m.Scope) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Scope))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SecretKeyRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SecretKeyRef) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SecretKeyRef) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SetCanaryScale) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SetCanaryScale) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SetCanaryScale) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.MatchTrafficWeight { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + if m.Replicas != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + i-- + dAtA[i] = 0x10 + } + if m.Weight != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Weight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *TemplateSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TemplateSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TemplateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.Selector != nil { + { + size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + i-- + dAtA[i] = 0x18 + if m.Replicas != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + i-- + dAtA[i] = 0x10 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *TemplateStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TemplateStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TemplateStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastTransitionTime != nil { + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x42 + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x3a + if m.CollisionCount != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + i-- + dAtA[i] = 0x30 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + i-- + dAtA[i] = 0x28 + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + i-- + dAtA[i] = 0x20 + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + i-- + dAtA[i] = 0x18 + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + i-- + dAtA[i] = 0x10 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ValueFrom) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ValueFrom) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ValueFrom) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.FieldRef != nil { + { + size, err := m.FieldRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.SecretKeyRef != nil { + { + size, err := m.SecretKeyRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *WavefrontMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WavefrontMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WavefrontMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Query) + copy(dAtA[i:], m.Query) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Query))) + i-- + dAtA[i] = 0x12 + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *WebMetric) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebMetric) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WebMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.Insecure { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + i -= len(m.JSONPath) + copy(dAtA[i:], m.JSONPath) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.JSONPath))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.TimeoutSeconds)) + i-- + dAtA[i] = 0x18 + if len(m.Headers) > 0 { + for iNdEx := len(m.Headers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Headers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.URL) + copy(dAtA[i:], m.URL) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.URL))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *WebMetricHeader) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WebMetricHeader) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WebMetricHeader) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *JobSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Parallelism != nil { + n += 1 + sovGenerated(uint64(*m.Parallelism)) + } + if m.Completions != nil { + n += 1 + sovGenerated(uint64(*m.Completions)) + } + if m.ActiveDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ManualSelector != nil { + n += 2 + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.BackoffLimit != nil { + n += 1 + sovGenerated(uint64(*m.BackoffLimit)) + } + if m.TTLSecondsAfterFinished != nil { + n += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished)) + } + return n +} + +func (m *ALBTrafficRouting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Ingress) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.ServicePort)) + l = len(m.RootService) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.AnnotationPrefix) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *AnalysisRun) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *AnalysisRunArgument) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Value) + n += 1 + l + sovGenerated(uint64(l)) + if m.ValueFrom != nil { + l = m.ValueFrom.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AnalysisRunList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AnalysisRunSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Metrics) > 0 { + for _, e := range m.Metrics { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Args) > 0 { + for _, e := range m.Args { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + return n +} + +func (m *AnalysisRunStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.MetricResults) > 0 { + for _, e := range m.MetricResults { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.StartedAt != nil { + l = m.StartedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AnalysisTemplate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *AnalysisTemplateList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AnalysisTemplateSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Metrics) > 0 { + for _, e := range m.Metrics { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Args) > 0 { + for _, e := range m.Args { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AntiAffinity) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PreferredDuringSchedulingIgnoredDuringExecution != nil { + l = m.PreferredDuringSchedulingIgnoredDuringExecution.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.RequiredDuringSchedulingIgnoredDuringExecution != nil { + l = m.RequiredDuringSchedulingIgnoredDuringExecution.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Argument) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Value != nil { + l = len(*m.Value) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ValueFrom != nil { + l = m.ValueFrom.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ArgumentValueFrom) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.PodTemplateHashValue != nil { + l = len(*m.PodTemplateHashValue) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.FieldRef != nil { + l = m.FieldRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BlueGreenStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.PreviewSelector) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ActiveSelector) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.PrePromotionAnalysisRunStatus != nil { + l = m.PrePromotionAnalysisRunStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.PostPromotionAnalysisRunStatus != nil { + l = m.PostPromotionAnalysisRunStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BlueGreenStrategy) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ActiveService) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.PreviewService) + n += 1 + l + sovGenerated(uint64(l)) + if m.PreviewReplicaCount != nil { + n += 1 + sovGenerated(uint64(*m.PreviewReplicaCount)) + } + if m.AutoPromotionEnabled != nil { + n += 2 + } + n += 1 + sovGenerated(uint64(m.AutoPromotionSeconds)) + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownDelaySeconds != nil { + n += 1 + sovGenerated(uint64(*m.ScaleDownDelaySeconds)) + } + if m.ScaleDownDelayRevisionLimit != nil { + n += 1 + sovGenerated(uint64(*m.ScaleDownDelayRevisionLimit)) + } + if m.PrePromotionAnalysis != nil { + l = m.PrePromotionAnalysis.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AntiAffinity != nil { + l = m.AntiAffinity.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.PostPromotionAnalysis != nil { + l = m.PostPromotionAnalysis.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.PreviewMetadata != nil { + l = m.PreviewMetadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ActiveMetadata != nil { + l = m.ActiveMetadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *CanaryStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CurrentStepAnalysisRunStatus != nil { + l = m.CurrentStepAnalysisRunStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CurrentBackgroundAnalysisRunStatus != nil { + l = m.CurrentBackgroundAnalysisRunStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.CurrentExperiment) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CanaryStep) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SetWeight != nil { + n += 1 + sovGenerated(uint64(*m.SetWeight)) + } + if m.Pause != nil { + l = m.Pause.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Experiment != nil { + l = m.Experiment.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Analysis != nil { + l = m.Analysis.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SetCanaryScale != nil { + l = m.SetCanaryScale.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *CanaryStrategy) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.CanaryService) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StableService) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Steps) > 0 { + for _, e := range m.Steps { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.TrafficRouting != nil { + l = m.TrafficRouting.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Analysis != nil { + l = m.Analysis.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.AntiAffinity != nil { + l = m.AntiAffinity.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CanaryMetadata != nil { + l = m.CanaryMetadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.StableMetadata != nil { + l = m.StableMetadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ClusterAnalysisTemplate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ClusterAnalysisTemplateList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DatadogMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Interval) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Query) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Experiment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExperimentAnalysisRunStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.AnalysisRun) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExperimentAnalysisTemplateRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.TemplateName) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if len(m.Args) > 0 { + for _, e := range m.Args { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + return n +} + +func (m *ExperimentCondition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExperimentList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ExperimentSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Templates) > 0 { + for _, e := range m.Templates { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.Duration) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProgressDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds)) + } + n += 2 + if len(m.Analyses) > 0 { + for _, e := range m.Analyses { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ExperimentStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.TemplateStatuses) > 0 { + for _, e := range m.TemplateStatuses { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.AvailableAt != nil { + l = m.AvailableAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.AnalysisRuns) > 0 { + for _, e := range m.AnalysisRuns { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *FieldRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.FieldPath) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *IstioDestinationRule) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.CanarySubsetName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StableSubsetName) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *IstioTrafficRouting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.VirtualService.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.DestinationRule != nil { + l = m.DestinationRule.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *IstioVirtualService) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Routes) > 0 { + for _, s := range m.Routes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *JobMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Metadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KayentaMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Application) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.CanaryConfigName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.MetricsAccountName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ConfigurationAccountName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StorageAccountName) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Threshold.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Scopes) > 0 { + for _, e := range m.Scopes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *KayentaScope) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.ControlScope.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.ExperimentScope.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KayentaThreshold) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Pass)) + n += 1 + sovGenerated(uint64(m.Marginal)) + return n +} + +func (m *Measurement) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + if m.StartedAt != nil { + l = m.StartedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.FinishedAt != nil { + l = m.FinishedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Value) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Metadata) > 0 { + for k, v := range m.Metadata { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.ResumeAt != nil { + l = m.ResumeAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Metric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Interval) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.InitialDelay) + n += 1 + l + sovGenerated(uint64(l)) + if m.Count != nil { + l = m.Count.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.SuccessCondition) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.FailureCondition) + n += 1 + l + sovGenerated(uint64(l)) + if m.FailureLimit != nil { + l = m.FailureLimit.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.InconclusiveLimit != nil { + l = m.InconclusiveLimit.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ConsecutiveErrorLimit != nil { + l = m.ConsecutiveErrorLimit.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *MetricProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Prometheus != nil { + l = m.Prometheus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Kayenta != nil { + l = m.Kayenta.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Web != nil { + l = m.Web.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Datadog != nil { + l = m.Datadog.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Wavefront != nil { + l = m.Wavefront.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NewRelic != nil { + l = m.NewRelic.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Job != nil { + l = m.Job.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MetricResult) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Measurements) > 0 { + for _, e := range m.Measurements { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Count)) + n += 1 + sovGenerated(uint64(m.Successful)) + n += 1 + sovGenerated(uint64(m.Failed)) + n += 1 + sovGenerated(uint64(m.Inconclusive)) + n += 1 + sovGenerated(uint64(m.Error)) + n += 1 + sovGenerated(uint64(m.ConsecutiveError)) + return n +} + +func (m *NewRelicMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Profile) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Query) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *NginxTrafficRouting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.AnnotationPrefix) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.StableIngress) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.AdditionalIngressAnnotations) > 0 { + for k, v := range m.AdditionalIngressAnnotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *PauseCondition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = m.StartTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PodTemplateMetadata) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if len(m.Annotations) > 0 { + for k, v := range m.Annotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *PreferredDuringSchedulingIgnoredDuringExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Weight)) + return n +} + +func (m *PrometheusMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Query) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *Rollout) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RolloutAnalysis) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Templates) > 0 { + for _, e := range m.Templates { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Args) > 0 { + for _, e := range m.Args { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RolloutAnalysisBackground) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.RolloutAnalysis.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.StartingStep != nil { + n += 1 + sovGenerated(uint64(*m.StartingStep)) + } + return n +} + +func (m *RolloutAnalysisRunStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RolloutAnalysisTemplate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.TemplateName) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + return n +} + +func (m *RolloutCondition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RolloutExperimentStep) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Templates) > 0 { + for _, e := range m.Templates { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.Duration) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Analyses) > 0 { + for _, e := range m.Analyses { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RolloutExperimentStepAnalysisTemplateRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.TemplateName) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if len(m.Args) > 0 { + for _, e := range m.Args { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + return n +} + +func (m *RolloutExperimentTemplate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.SpecRef) + n += 1 + l + sovGenerated(uint64(l)) + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + l = m.Metadata.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RolloutInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Icon) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Strategy) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Step) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.SetWeight) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ActualWeight) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RolloutList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RolloutPause) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Duration != nil { + l = m.Duration.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RolloutSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + l = m.Strategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + n += 2 + if m.ProgressDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds)) + } + if m.RestartAt != nil { + l = m.RestartAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RolloutStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + if len(m.PauseConditions) > 0 { + for _, e := range m.PauseConditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 2 + if m.AbortedAt != nil { + l = m.AbortedAt.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.CurrentPodHash) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.CurrentStepHash) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + if m.CurrentStepIndex != nil { + n += 1 + sovGenerated(uint64(*m.CurrentStepIndex)) + } + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + l = len(m.ObservedGeneration) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.Canary.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.BlueGreen.Size() + n += 2 + l + sovGenerated(uint64(l)) + n += 2 + sovGenerated(uint64(m.HPAReplicas)) + l = len(m.Selector) + n += 2 + l + sovGenerated(uint64(l)) + l = len(m.StableRS) + n += 2 + l + sovGenerated(uint64(l)) + if m.RestartedAt != nil { + l = m.RestartedAt.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + n += 3 + return n +} + +func (m *RolloutStrategy) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.BlueGreen != nil { + l = m.BlueGreen.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Canary != nil { + l = m.Canary.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RolloutTrafficRouting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Istio != nil { + l = m.Istio.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Nginx != nil { + l = m.Nginx.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ALB != nil { + l = m.ALB.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SMI != nil { + l = m.SMI.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SMITrafficRouting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.RootService) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.TrafficSplitName) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ScopeDetail) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Scope) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Step)) + l = len(m.Start) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.End) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SecretKeyRef) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SetCanaryScale) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Weight != nil { + n += 1 + sovGenerated(uint64(*m.Weight)) + } + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + n += 2 + return n +} + +func (m *TemplateSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *TemplateStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + if m.LastTransitionTime != nil { + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ValueFrom) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.SecretKeyRef != nil { + l = m.SecretKeyRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.FieldRef != nil { + l = m.FieldRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *WavefrontMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Query) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *WebMetric) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.URL) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Headers) > 0 { + for _, e := range m.Headers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.TimeoutSeconds)) + l = len(m.JSONPath) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + return n +} + +func (m *WebMetricHeader) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Value) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *JobSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobSpec{`, + `Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`, + `Completions:` + valueToStringGenerated(this.Completions) + `,`, + `ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`, + `TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`, + `}`, + }, "") + return s +} +func (this *ALBTrafficRouting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ALBTrafficRouting{`, + `Ingress:` + fmt.Sprintf("%v", this.Ingress) + `,`, + `ServicePort:` + fmt.Sprintf("%v", this.ServicePort) + `,`, + `RootService:` + fmt.Sprintf("%v", this.RootService) + `,`, + `AnnotationPrefix:` + fmt.Sprintf("%v", this.AnnotationPrefix) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisRun) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AnalysisRun{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "AnalysisRunSpec", "AnalysisRunSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "AnalysisRunStatus", "AnalysisRunStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisRunArgument) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AnalysisRunArgument{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `ValueFrom:` + strings.Replace(this.ValueFrom.String(), "ArgumentValueFrom", "ArgumentValueFrom", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisRunList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]AnalysisRun{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "AnalysisRun", "AnalysisRun", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&AnalysisRunList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisRunSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMetrics := "[]Metric{" + for _, f := range this.Metrics { + repeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), "Metric", "Metric", 1), `&`, ``, 1) + "," + } + repeatedStringForMetrics += "}" + repeatedStringForArgs := "[]Argument{" + for _, f := range this.Args { + repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "Argument", "Argument", 1), `&`, ``, 1) + "," + } + repeatedStringForArgs += "}" + s := strings.Join([]string{`&AnalysisRunSpec{`, + `Metrics:` + repeatedStringForMetrics + `,`, + `Args:` + repeatedStringForArgs + `,`, + `Terminate:` + fmt.Sprintf("%v", this.Terminate) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisRunStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForMetricResults := "[]MetricResult{" + for _, f := range this.MetricResults { + repeatedStringForMetricResults += strings.Replace(strings.Replace(f.String(), "MetricResult", "MetricResult", 1), `&`, ``, 1) + "," + } + repeatedStringForMetricResults += "}" + s := strings.Join([]string{`&AnalysisRunStatus{`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `MetricResults:` + repeatedStringForMetricResults + `,`, + `StartedAt:` + strings.Replace(fmt.Sprintf("%v", this.StartedAt), "Time", "v1.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisTemplate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AnalysisTemplate{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "AnalysisTemplateSpec", "AnalysisTemplateSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisTemplateList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]AnalysisTemplate{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "AnalysisTemplate", "AnalysisTemplate", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&AnalysisTemplateList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *AnalysisTemplateSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMetrics := "[]Metric{" + for _, f := range this.Metrics { + repeatedStringForMetrics += strings.Replace(strings.Replace(f.String(), "Metric", "Metric", 1), `&`, ``, 1) + "," + } + repeatedStringForMetrics += "}" + repeatedStringForArgs := "[]Argument{" + for _, f := range this.Args { + repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "Argument", "Argument", 1), `&`, ``, 1) + "," + } + repeatedStringForArgs += "}" + s := strings.Join([]string{`&AnalysisTemplateSpec{`, + `Metrics:` + repeatedStringForMetrics + `,`, + `Args:` + repeatedStringForArgs + `,`, + `}`, + }, "") + return s +} +func (this *AntiAffinity) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AntiAffinity{`, + `PreferredDuringSchedulingIgnoredDuringExecution:` + strings.Replace(this.PreferredDuringSchedulingIgnoredDuringExecution.String(), "PreferredDuringSchedulingIgnoredDuringExecution", "PreferredDuringSchedulingIgnoredDuringExecution", 1) + `,`, + `RequiredDuringSchedulingIgnoredDuringExecution:` + strings.Replace(this.RequiredDuringSchedulingIgnoredDuringExecution.String(), "RequiredDuringSchedulingIgnoredDuringExecution", "RequiredDuringSchedulingIgnoredDuringExecution", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Argument) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Argument{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Value:` + valueToStringGenerated(this.Value) + `,`, + `ValueFrom:` + strings.Replace(this.ValueFrom.String(), "ValueFrom", "ValueFrom", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ArgumentValueFrom) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ArgumentValueFrom{`, + `PodTemplateHashValue:` + valueToStringGenerated(this.PodTemplateHashValue) + `,`, + `FieldRef:` + strings.Replace(this.FieldRef.String(), "FieldRef", "FieldRef", 1) + `,`, + `}`, + }, "") + return s +} +func (this *BlueGreenStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BlueGreenStatus{`, + `PreviewSelector:` + fmt.Sprintf("%v", this.PreviewSelector) + `,`, + `ActiveSelector:` + fmt.Sprintf("%v", this.ActiveSelector) + `,`, + `ScaleUpPreviewCheckPoint:` + fmt.Sprintf("%v", this.ScaleUpPreviewCheckPoint) + `,`, + `PrePromotionAnalysisRunStatus:` + strings.Replace(this.PrePromotionAnalysisRunStatus.String(), "RolloutAnalysisRunStatus", "RolloutAnalysisRunStatus", 1) + `,`, + `PostPromotionAnalysisRunStatus:` + strings.Replace(this.PostPromotionAnalysisRunStatus.String(), "RolloutAnalysisRunStatus", "RolloutAnalysisRunStatus", 1) + `,`, + `}`, + }, "") + return s +} +func (this *BlueGreenStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BlueGreenStrategy{`, + `ActiveService:` + fmt.Sprintf("%v", this.ActiveService) + `,`, + `PreviewService:` + fmt.Sprintf("%v", this.PreviewService) + `,`, + `PreviewReplicaCount:` + valueToStringGenerated(this.PreviewReplicaCount) + `,`, + `AutoPromotionEnabled:` + valueToStringGenerated(this.AutoPromotionEnabled) + `,`, + `AutoPromotionSeconds:` + fmt.Sprintf("%v", this.AutoPromotionSeconds) + `,`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `ScaleDownDelaySeconds:` + valueToStringGenerated(this.ScaleDownDelaySeconds) + `,`, + `ScaleDownDelayRevisionLimit:` + valueToStringGenerated(this.ScaleDownDelayRevisionLimit) + `,`, + `PrePromotionAnalysis:` + strings.Replace(this.PrePromotionAnalysis.String(), "RolloutAnalysis", "RolloutAnalysis", 1) + `,`, + `AntiAffinity:` + strings.Replace(this.AntiAffinity.String(), "AntiAffinity", "AntiAffinity", 1) + `,`, + `PostPromotionAnalysis:` + strings.Replace(this.PostPromotionAnalysis.String(), "RolloutAnalysis", "RolloutAnalysis", 1) + `,`, + `PreviewMetadata:` + strings.Replace(this.PreviewMetadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1) + `,`, + `ActiveMetadata:` + strings.Replace(this.ActiveMetadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1) + `,`, + `}`, + }, "") + return s +} +func (this *CanaryStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CanaryStatus{`, + `CurrentStepAnalysisRunStatus:` + strings.Replace(this.CurrentStepAnalysisRunStatus.String(), "RolloutAnalysisRunStatus", "RolloutAnalysisRunStatus", 1) + `,`, + `CurrentBackgroundAnalysisRunStatus:` + strings.Replace(this.CurrentBackgroundAnalysisRunStatus.String(), "RolloutAnalysisRunStatus", "RolloutAnalysisRunStatus", 1) + `,`, + `CurrentExperiment:` + fmt.Sprintf("%v", this.CurrentExperiment) + `,`, + `}`, + }, "") + return s +} +func (this *CanaryStep) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CanaryStep{`, + `SetWeight:` + valueToStringGenerated(this.SetWeight) + `,`, + `Pause:` + strings.Replace(this.Pause.String(), "RolloutPause", "RolloutPause", 1) + `,`, + `Experiment:` + strings.Replace(this.Experiment.String(), "RolloutExperimentStep", "RolloutExperimentStep", 1) + `,`, + `Analysis:` + strings.Replace(this.Analysis.String(), "RolloutAnalysis", "RolloutAnalysis", 1) + `,`, + `SetCanaryScale:` + strings.Replace(this.SetCanaryScale.String(), "SetCanaryScale", "SetCanaryScale", 1) + `,`, + `}`, + }, "") + return s +} +func (this *CanaryStrategy) String() string { + if this == nil { + return "nil" + } + repeatedStringForSteps := "[]CanaryStep{" + for _, f := range this.Steps { + repeatedStringForSteps += strings.Replace(strings.Replace(f.String(), "CanaryStep", "CanaryStep", 1), `&`, ``, 1) + "," + } + repeatedStringForSteps += "}" + s := strings.Join([]string{`&CanaryStrategy{`, + `CanaryService:` + fmt.Sprintf("%v", this.CanaryService) + `,`, + `StableService:` + fmt.Sprintf("%v", this.StableService) + `,`, + `Steps:` + repeatedStringForSteps + `,`, + `TrafficRouting:` + strings.Replace(this.TrafficRouting.String(), "RolloutTrafficRouting", "RolloutTrafficRouting", 1) + `,`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, + `Analysis:` + strings.Replace(this.Analysis.String(), "RolloutAnalysisBackground", "RolloutAnalysisBackground", 1) + `,`, + `AntiAffinity:` + strings.Replace(this.AntiAffinity.String(), "AntiAffinity", "AntiAffinity", 1) + `,`, + `CanaryMetadata:` + strings.Replace(this.CanaryMetadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1) + `,`, + `StableMetadata:` + strings.Replace(this.StableMetadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterAnalysisTemplate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterAnalysisTemplate{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "AnalysisTemplateSpec", "AnalysisTemplateSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterAnalysisTemplateList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ClusterAnalysisTemplate{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ClusterAnalysisTemplate", "ClusterAnalysisTemplate", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ClusterAnalysisTemplateList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *DatadogMetric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DatadogMetric{`, + `Interval:` + fmt.Sprintf("%v", this.Interval) + `,`, + `Query:` + fmt.Sprintf("%v", this.Query) + `,`, + `}`, + }, "") + return s +} +func (this *Experiment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Experiment{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ExperimentSpec", "ExperimentSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ExperimentStatus", "ExperimentStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentAnalysisRunStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExperimentAnalysisRunStatus{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `AnalysisRun:` + fmt.Sprintf("%v", this.AnalysisRun) + `,`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentAnalysisTemplateRef) String() string { + if this == nil { + return "nil" + } + repeatedStringForArgs := "[]Argument{" + for _, f := range this.Args { + repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "Argument", "Argument", 1), `&`, ``, 1) + "," + } + repeatedStringForArgs += "}" + s := strings.Join([]string{`&ExperimentAnalysisTemplateRef{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `TemplateName:` + fmt.Sprintf("%v", this.TemplateName) + `,`, + `ClusterScope:` + fmt.Sprintf("%v", this.ClusterScope) + `,`, + `Args:` + repeatedStringForArgs + `,`, + `RequiredForCompletion:` + fmt.Sprintf("%v", this.RequiredForCompletion) + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExperimentCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Experiment{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Experiment", "Experiment", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ExperimentList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForTemplates := "[]TemplateSpec{" + for _, f := range this.Templates { + repeatedStringForTemplates += strings.Replace(strings.Replace(f.String(), "TemplateSpec", "TemplateSpec", 1), `&`, ``, 1) + "," + } + repeatedStringForTemplates += "}" + repeatedStringForAnalyses := "[]ExperimentAnalysisTemplateRef{" + for _, f := range this.Analyses { + repeatedStringForAnalyses += strings.Replace(strings.Replace(f.String(), "ExperimentAnalysisTemplateRef", "ExperimentAnalysisTemplateRef", 1), `&`, ``, 1) + "," + } + repeatedStringForAnalyses += "}" + s := strings.Join([]string{`&ExperimentSpec{`, + `Templates:` + repeatedStringForTemplates + `,`, + `Duration:` + fmt.Sprintf("%v", this.Duration) + `,`, + `ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`, + `Terminate:` + fmt.Sprintf("%v", this.Terminate) + `,`, + `Analyses:` + repeatedStringForAnalyses + `,`, + `}`, + }, "") + return s +} +func (this *ExperimentStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForTemplateStatuses := "[]TemplateStatus{" + for _, f := range this.TemplateStatuses { + repeatedStringForTemplateStatuses += strings.Replace(strings.Replace(f.String(), "TemplateStatus", "TemplateStatus", 1), `&`, ``, 1) + "," + } + repeatedStringForTemplateStatuses += "}" + repeatedStringForConditions := "[]ExperimentCondition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "ExperimentCondition", "ExperimentCondition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + repeatedStringForAnalysisRuns := "[]ExperimentAnalysisRunStatus{" + for _, f := range this.AnalysisRuns { + repeatedStringForAnalysisRuns += strings.Replace(strings.Replace(f.String(), "ExperimentAnalysisRunStatus", "ExperimentAnalysisRunStatus", 1), `&`, ``, 1) + "," + } + repeatedStringForAnalysisRuns += "}" + s := strings.Join([]string{`&ExperimentStatus{`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `TemplateStatuses:` + repeatedStringForTemplateStatuses + `,`, + `AvailableAt:` + strings.Replace(fmt.Sprintf("%v", this.AvailableAt), "Time", "v1.Time", 1) + `,`, + `Conditions:` + repeatedStringForConditions + `,`, + `AnalysisRuns:` + repeatedStringForAnalysisRuns + `,`, + `}`, + }, "") + return s +} +func (this *FieldRef) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&FieldRef{`, + `FieldPath:` + fmt.Sprintf("%v", this.FieldPath) + `,`, + `}`, + }, "") + return s +} +func (this *IstioDestinationRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IstioDestinationRule{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `CanarySubsetName:` + fmt.Sprintf("%v", this.CanarySubsetName) + `,`, + `StableSubsetName:` + fmt.Sprintf("%v", this.StableSubsetName) + `,`, + `}`, + }, "") + return s +} +func (this *IstioTrafficRouting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IstioTrafficRouting{`, + `VirtualService:` + strings.Replace(strings.Replace(this.VirtualService.String(), "IstioVirtualService", "IstioVirtualService", 1), `&`, ``, 1) + `,`, + `DestinationRule:` + strings.Replace(this.DestinationRule.String(), "IstioDestinationRule", "IstioDestinationRule", 1) + `,`, + `}`, + }, "") + return s +} +func (this *IstioVirtualService) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&IstioVirtualService{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Routes:` + fmt.Sprintf("%v", this.Routes) + `,`, + `}`, + }, "") + return s +} +func (this *JobMetric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobMetric{`, + `Metadata:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Metadata), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "JobSpec", "JobSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KayentaMetric) String() string { + if this == nil { + return "nil" + } + repeatedStringForScopes := "[]KayentaScope{" + for _, f := range this.Scopes { + repeatedStringForScopes += strings.Replace(strings.Replace(f.String(), "KayentaScope", "KayentaScope", 1), `&`, ``, 1) + "," + } + repeatedStringForScopes += "}" + s := strings.Join([]string{`&KayentaMetric{`, + `Address:` + fmt.Sprintf("%v", this.Address) + `,`, + `Application:` + fmt.Sprintf("%v", this.Application) + `,`, + `CanaryConfigName:` + fmt.Sprintf("%v", this.CanaryConfigName) + `,`, + `MetricsAccountName:` + fmt.Sprintf("%v", this.MetricsAccountName) + `,`, + `ConfigurationAccountName:` + fmt.Sprintf("%v", this.ConfigurationAccountName) + `,`, + `StorageAccountName:` + fmt.Sprintf("%v", this.StorageAccountName) + `,`, + `Threshold:` + strings.Replace(strings.Replace(this.Threshold.String(), "KayentaThreshold", "KayentaThreshold", 1), `&`, ``, 1) + `,`, + `Scopes:` + repeatedStringForScopes + `,`, + `}`, + }, "") + return s +} +func (this *KayentaScope) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KayentaScope{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ControlScope:` + strings.Replace(strings.Replace(this.ControlScope.String(), "ScopeDetail", "ScopeDetail", 1), `&`, ``, 1) + `,`, + `ExperimentScope:` + strings.Replace(strings.Replace(this.ExperimentScope.String(), "ScopeDetail", "ScopeDetail", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KayentaThreshold) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KayentaThreshold{`, + `Pass:` + fmt.Sprintf("%v", this.Pass) + `,`, + `Marginal:` + fmt.Sprintf("%v", this.Marginal) + `,`, + `}`, + }, "") + return s +} +func (this *Measurement) String() string { + if this == nil { + return "nil" + } + keysForMetadata := make([]string, 0, len(this.Metadata)) + for k := range this.Metadata { + keysForMetadata = append(keysForMetadata, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetadata) + mapStringForMetadata := "map[string]string{" + for _, k := range keysForMetadata { + mapStringForMetadata += fmt.Sprintf("%v: %v,", k, this.Metadata[k]) + } + mapStringForMetadata += "}" + s := strings.Join([]string{`&Measurement{`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `StartedAt:` + strings.Replace(fmt.Sprintf("%v", this.StartedAt), "Time", "v1.Time", 1) + `,`, + `FinishedAt:` + strings.Replace(fmt.Sprintf("%v", this.FinishedAt), "Time", "v1.Time", 1) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `Metadata:` + mapStringForMetadata + `,`, + `ResumeAt:` + strings.Replace(fmt.Sprintf("%v", this.ResumeAt), "Time", "v1.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Metric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Metric{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Interval:` + fmt.Sprintf("%v", this.Interval) + `,`, + `InitialDelay:` + fmt.Sprintf("%v", this.InitialDelay) + `,`, + `Count:` + strings.Replace(fmt.Sprintf("%v", this.Count), "IntOrString", "intstr.IntOrString", 1) + `,`, + `SuccessCondition:` + fmt.Sprintf("%v", this.SuccessCondition) + `,`, + `FailureCondition:` + fmt.Sprintf("%v", this.FailureCondition) + `,`, + `FailureLimit:` + strings.Replace(fmt.Sprintf("%v", this.FailureLimit), "IntOrString", "intstr.IntOrString", 1) + `,`, + `InconclusiveLimit:` + strings.Replace(fmt.Sprintf("%v", this.InconclusiveLimit), "IntOrString", "intstr.IntOrString", 1) + `,`, + `ConsecutiveErrorLimit:` + strings.Replace(fmt.Sprintf("%v", this.ConsecutiveErrorLimit), "IntOrString", "intstr.IntOrString", 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "MetricProvider", "MetricProvider", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MetricProvider{`, + `Prometheus:` + strings.Replace(this.Prometheus.String(), "PrometheusMetric", "PrometheusMetric", 1) + `,`, + `Kayenta:` + strings.Replace(this.Kayenta.String(), "KayentaMetric", "KayentaMetric", 1) + `,`, + `Web:` + strings.Replace(this.Web.String(), "WebMetric", "WebMetric", 1) + `,`, + `Datadog:` + strings.Replace(this.Datadog.String(), "DatadogMetric", "DatadogMetric", 1) + `,`, + `Wavefront:` + strings.Replace(this.Wavefront.String(), "WavefrontMetric", "WavefrontMetric", 1) + `,`, + `NewRelic:` + strings.Replace(this.NewRelic.String(), "NewRelicMetric", "NewRelicMetric", 1) + `,`, + `Job:` + strings.Replace(this.Job.String(), "JobMetric", "JobMetric", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MetricResult) String() string { + if this == nil { + return "nil" + } + repeatedStringForMeasurements := "[]Measurement{" + for _, f := range this.Measurements { + repeatedStringForMeasurements += strings.Replace(strings.Replace(f.String(), "Measurement", "Measurement", 1), `&`, ``, 1) + "," + } + repeatedStringForMeasurements += "}" + s := strings.Join([]string{`&MetricResult{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `Measurements:` + repeatedStringForMeasurements + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `Count:` + fmt.Sprintf("%v", this.Count) + `,`, + `Successful:` + fmt.Sprintf("%v", this.Successful) + `,`, + `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, + `Inconclusive:` + fmt.Sprintf("%v", this.Inconclusive) + `,`, + `Error:` + fmt.Sprintf("%v", this.Error) + `,`, + `ConsecutiveError:` + fmt.Sprintf("%v", this.ConsecutiveError) + `,`, + `}`, + }, "") + return s +} +func (this *NewRelicMetric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NewRelicMetric{`, + `Profile:` + fmt.Sprintf("%v", this.Profile) + `,`, + `Query:` + fmt.Sprintf("%v", this.Query) + `,`, + `}`, + }, "") + return s +} +func (this *NginxTrafficRouting) String() string { + if this == nil { + return "nil" + } + keysForAdditionalIngressAnnotations := make([]string, 0, len(this.AdditionalIngressAnnotations)) + for k := range this.AdditionalIngressAnnotations { + keysForAdditionalIngressAnnotations = append(keysForAdditionalIngressAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAdditionalIngressAnnotations) + mapStringForAdditionalIngressAnnotations := "map[string]string{" + for _, k := range keysForAdditionalIngressAnnotations { + mapStringForAdditionalIngressAnnotations += fmt.Sprintf("%v: %v,", k, this.AdditionalIngressAnnotations[k]) + } + mapStringForAdditionalIngressAnnotations += "}" + s := strings.Join([]string{`&NginxTrafficRouting{`, + `AnnotationPrefix:` + fmt.Sprintf("%v", this.AnnotationPrefix) + `,`, + `StableIngress:` + fmt.Sprintf("%v", this.StableIngress) + `,`, + `AdditionalIngressAnnotations:` + mapStringForAdditionalIngressAnnotations + `,`, + `}`, + }, "") + return s +} +func (this *PauseCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PauseCondition{`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `StartTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StartTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PodTemplateMetadata) String() string { + if this == nil { + return "nil" + } + keysForLabels := make([]string, 0, len(this.Labels)) + for k := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" + keysForAnnotations := make([]string, 0, len(this.Annotations)) + for k := range this.Annotations { + keysForAnnotations = append(keysForAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + mapStringForAnnotations := "map[string]string{" + for _, k := range keysForAnnotations { + mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) + } + mapStringForAnnotations += "}" + s := strings.Join([]string{`&PodTemplateMetadata{`, + `Labels:` + mapStringForLabels + `,`, + `Annotations:` + mapStringForAnnotations + `,`, + `}`, + }, "") + return s +} +func (this *PreferredDuringSchedulingIgnoredDuringExecution) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PreferredDuringSchedulingIgnoredDuringExecution{`, + `Weight:` + fmt.Sprintf("%v", this.Weight) + `,`, + `}`, + }, "") + return s +} +func (this *PrometheusMetric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PrometheusMetric{`, + `Address:` + fmt.Sprintf("%v", this.Address) + `,`, + `Query:` + fmt.Sprintf("%v", this.Query) + `,`, + `}`, + }, "") + return s +} +func (this *RequiredDuringSchedulingIgnoredDuringExecution) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RequiredDuringSchedulingIgnoredDuringExecution{`, + `}`, + }, "") + return s +} +func (this *Rollout) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Rollout{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "RolloutSpec", "RolloutSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "RolloutStatus", "RolloutStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutAnalysis) String() string { + if this == nil { + return "nil" + } + repeatedStringForTemplates := "[]RolloutAnalysisTemplate{" + for _, f := range this.Templates { + repeatedStringForTemplates += strings.Replace(strings.Replace(f.String(), "RolloutAnalysisTemplate", "RolloutAnalysisTemplate", 1), `&`, ``, 1) + "," + } + repeatedStringForTemplates += "}" + repeatedStringForArgs := "[]AnalysisRunArgument{" + for _, f := range this.Args { + repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "AnalysisRunArgument", "AnalysisRunArgument", 1), `&`, ``, 1) + "," + } + repeatedStringForArgs += "}" + s := strings.Join([]string{`&RolloutAnalysis{`, + `Templates:` + repeatedStringForTemplates + `,`, + `Args:` + repeatedStringForArgs + `,`, + `}`, + }, "") + return s +} +func (this *RolloutAnalysisBackground) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutAnalysisBackground{`, + `RolloutAnalysis:` + strings.Replace(strings.Replace(this.RolloutAnalysis.String(), "RolloutAnalysis", "RolloutAnalysis", 1), `&`, ``, 1) + `,`, + `StartingStep:` + valueToStringGenerated(this.StartingStep) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutAnalysisRunStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutAnalysisRunStatus{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutAnalysisTemplate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutAnalysisTemplate{`, + `TemplateName:` + fmt.Sprintf("%v", this.TemplateName) + `,`, + `ClusterScope:` + fmt.Sprintf("%v", this.ClusterScope) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutExperimentStep) String() string { + if this == nil { + return "nil" + } + repeatedStringForTemplates := "[]RolloutExperimentTemplate{" + for _, f := range this.Templates { + repeatedStringForTemplates += strings.Replace(strings.Replace(f.String(), "RolloutExperimentTemplate", "RolloutExperimentTemplate", 1), `&`, ``, 1) + "," + } + repeatedStringForTemplates += "}" + repeatedStringForAnalyses := "[]RolloutExperimentStepAnalysisTemplateRef{" + for _, f := range this.Analyses { + repeatedStringForAnalyses += strings.Replace(strings.Replace(f.String(), "RolloutExperimentStepAnalysisTemplateRef", "RolloutExperimentStepAnalysisTemplateRef", 1), `&`, ``, 1) + "," + } + repeatedStringForAnalyses += "}" + s := strings.Join([]string{`&RolloutExperimentStep{`, + `Templates:` + repeatedStringForTemplates + `,`, + `Duration:` + fmt.Sprintf("%v", this.Duration) + `,`, + `Analyses:` + repeatedStringForAnalyses + `,`, + `}`, + }, "") + return s +} +func (this *RolloutExperimentStepAnalysisTemplateRef) String() string { + if this == nil { + return "nil" + } + repeatedStringForArgs := "[]AnalysisRunArgument{" + for _, f := range this.Args { + repeatedStringForArgs += strings.Replace(strings.Replace(f.String(), "AnalysisRunArgument", "AnalysisRunArgument", 1), `&`, ``, 1) + "," + } + repeatedStringForArgs += "}" + s := strings.Join([]string{`&RolloutExperimentStepAnalysisTemplateRef{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `TemplateName:` + fmt.Sprintf("%v", this.TemplateName) + `,`, + `ClusterScope:` + fmt.Sprintf("%v", this.ClusterScope) + `,`, + `Args:` + repeatedStringForArgs + `,`, + `RequiredForCompletion:` + fmt.Sprintf("%v", this.RequiredForCompletion) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutExperimentTemplate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutExperimentTemplate{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `SpecRef:` + fmt.Sprintf("%v", this.SpecRef) + `,`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Metadata:` + strings.Replace(strings.Replace(this.Metadata.String(), "PodTemplateMetadata", "PodTemplateMetadata", 1), `&`, ``, 1) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `Strategy:` + fmt.Sprintf("%v", this.Strategy) + `,`, + `Step:` + fmt.Sprintf("%v", this.Step) + `,`, + `SetWeight:` + fmt.Sprintf("%v", this.SetWeight) + `,`, + `ActualWeight:` + fmt.Sprintf("%v", this.ActualWeight) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Rollout{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Rollout", "Rollout", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&RolloutList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *RolloutPause) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutPause{`, + `Duration:` + strings.Replace(fmt.Sprintf("%v", this.Duration), "IntOrString", "intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "RolloutStrategy", "RolloutStrategy", 1), `&`, ``, 1) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, + `ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`, + `RestartAt:` + strings.Replace(fmt.Sprintf("%v", this.RestartAt), "Time", "v1.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForPauseConditions := "[]PauseCondition{" + for _, f := range this.PauseConditions { + repeatedStringForPauseConditions += strings.Replace(strings.Replace(f.String(), "PauseCondition", "PauseCondition", 1), `&`, ``, 1) + "," + } + repeatedStringForPauseConditions += "}" + repeatedStringForConditions := "[]RolloutCondition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "RolloutCondition", "RolloutCondition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&RolloutStatus{`, + `Abort:` + fmt.Sprintf("%v", this.Abort) + `,`, + `PauseConditions:` + repeatedStringForPauseConditions + `,`, + `ControllerPause:` + fmt.Sprintf("%v", this.ControllerPause) + `,`, + `AbortedAt:` + strings.Replace(fmt.Sprintf("%v", this.AbortedAt), "Time", "v1.Time", 1) + `,`, + `CurrentPodHash:` + fmt.Sprintf("%v", this.CurrentPodHash) + `,`, + `CurrentStepHash:` + fmt.Sprintf("%v", this.CurrentStepHash) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `CurrentStepIndex:` + valueToStringGenerated(this.CurrentStepIndex) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Conditions:` + repeatedStringForConditions + `,`, + `Canary:` + strings.Replace(strings.Replace(this.Canary.String(), "CanaryStatus", "CanaryStatus", 1), `&`, ``, 1) + `,`, + `BlueGreen:` + strings.Replace(strings.Replace(this.BlueGreen.String(), "BlueGreenStatus", "BlueGreenStatus", 1), `&`, ``, 1) + `,`, + `HPAReplicas:` + fmt.Sprintf("%v", this.HPAReplicas) + `,`, + `Selector:` + fmt.Sprintf("%v", this.Selector) + `,`, + `StableRS:` + fmt.Sprintf("%v", this.StableRS) + `,`, + `RestartedAt:` + strings.Replace(fmt.Sprintf("%v", this.RestartedAt), "Time", "v1.Time", 1) + `,`, + `PromoteFull:` + fmt.Sprintf("%v", this.PromoteFull) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutStrategy{`, + `BlueGreen:` + strings.Replace(this.BlueGreen.String(), "BlueGreenStrategy", "BlueGreenStrategy", 1) + `,`, + `Canary:` + strings.Replace(this.Canary.String(), "CanaryStrategy", "CanaryStrategy", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RolloutTrafficRouting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RolloutTrafficRouting{`, + `Istio:` + strings.Replace(this.Istio.String(), "IstioTrafficRouting", "IstioTrafficRouting", 1) + `,`, + `Nginx:` + strings.Replace(this.Nginx.String(), "NginxTrafficRouting", "NginxTrafficRouting", 1) + `,`, + `ALB:` + strings.Replace(this.ALB.String(), "ALBTrafficRouting", "ALBTrafficRouting", 1) + `,`, + `SMI:` + strings.Replace(this.SMI.String(), "SMITrafficRouting", "SMITrafficRouting", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SMITrafficRouting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SMITrafficRouting{`, + `RootService:` + fmt.Sprintf("%v", this.RootService) + `,`, + `TrafficSplitName:` + fmt.Sprintf("%v", this.TrafficSplitName) + `,`, + `}`, + }, "") + return s +} +func (this *ScopeDetail) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScopeDetail{`, + `Scope:` + fmt.Sprintf("%v", this.Scope) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `Step:` + fmt.Sprintf("%v", this.Step) + `,`, + `Start:` + fmt.Sprintf("%v", this.Start) + `,`, + `End:` + fmt.Sprintf("%v", this.End) + `,`, + `}`, + }, "") + return s +} +func (this *SecretKeyRef) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SecretKeyRef{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `}`, + }, "") + return s +} +func (this *SetCanaryScale) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SetCanaryScale{`, + `Weight:` + valueToStringGenerated(this.Weight) + `,`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `MatchTrafficWeight:` + fmt.Sprintf("%v", this.MatchTrafficWeight) + `,`, + `}`, + }, "") + return s +} +func (this *TemplateSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TemplateSpec{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *TemplateStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&TemplateStatus{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `LastTransitionTime:` + strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v1.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ValueFrom) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ValueFrom{`, + `SecretKeyRef:` + strings.Replace(this.SecretKeyRef.String(), "SecretKeyRef", "SecretKeyRef", 1) + `,`, + `FieldRef:` + strings.Replace(this.FieldRef.String(), "FieldRef", "FieldRef", 1) + `,`, + `}`, + }, "") + return s +} +func (this *WavefrontMetric) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WavefrontMetric{`, + `Address:` + fmt.Sprintf("%v", this.Address) + `,`, + `Query:` + fmt.Sprintf("%v", this.Query) + `,`, + `}`, + }, "") + return s +} +func (this *WebMetric) String() string { + if this == nil { + return "nil" + } + repeatedStringForHeaders := "[]WebMetricHeader{" + for _, f := range this.Headers { + repeatedStringForHeaders += strings.Replace(strings.Replace(f.String(), "WebMetricHeader", "WebMetricHeader", 1), `&`, ``, 1) + "," + } + repeatedStringForHeaders += "}" + s := strings.Join([]string{`&WebMetric{`, + `URL:` + fmt.Sprintf("%v", this.URL) + `,`, + `Headers:` + repeatedStringForHeaders + `,`, + `TimeoutSeconds:` + fmt.Sprintf("%v", this.TimeoutSeconds) + `,`, + `JSONPath:` + fmt.Sprintf("%v", this.JSONPath) + `,`, + `Insecure:` + fmt.Sprintf("%v", this.Insecure) + `,`, + `}`, + }, "") + return s +} +func (this *WebMetricHeader) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WebMetricHeader{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + fmt.Sprintf("%v", this.Value) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *JobSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Parallelism", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Parallelism = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Completions", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Completions = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveDeadlineSeconds", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ActiveDeadlineSeconds = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ManualSelector", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.ManualSelector = &b + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field BackoffLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.BackoffLimit = &v + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TTLSecondsAfterFinished", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.TTLSecondsAfterFinished = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ALBTrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ALBTrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ALBTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ingress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ingress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ServicePort", wireType) + } + m.ServicePort = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ServicePort |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RootService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RootService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationPrefix = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRun) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRun: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRun: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRunArgument: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunArgument: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValueFrom == nil { + m.ValueFrom = &ArgumentValueFrom{} + } + if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRunList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, AnalysisRun{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRunSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metrics = append(m.Metrics, Metric{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Terminate = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisRunStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricResults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricResults = append(m.MetricResults, MetricResult{}) + if err := m.MetricResults[len(m.MetricResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartedAt == nil { + m.StartedAt = &v1.Time{} + } + if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisTemplate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisTemplateList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, AnalysisTemplate{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AnalysisTemplateSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AnalysisTemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Metrics = append(m.Metrics, Metric{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AntiAffinity) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AntiAffinity: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AntiAffinity: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PreferredDuringSchedulingIgnoredDuringExecution == nil { + m.PreferredDuringSchedulingIgnoredDuringExecution = &PreferredDuringSchedulingIgnoredDuringExecution{} + } + if err := m.PreferredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RequiredDuringSchedulingIgnoredDuringExecution == nil { + m.RequiredDuringSchedulingIgnoredDuringExecution = &RequiredDuringSchedulingIgnoredDuringExecution{} + } + if err := m.RequiredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Argument) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Argument: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Argument: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Value = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ValueFrom == nil { + m.ValueFrom = &ValueFrom{} + } + if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ArgumentValueFrom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ArgumentValueFrom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PodTemplateHashValue", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ValueFromPodTemplateHash(dAtA[iNdEx:postIndex]) + m.PodTemplateHashValue = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FieldRef == nil { + m.FieldRef = &FieldRef{} + } + if err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BlueGreenStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BlueGreenStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PreviewSelector", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PreviewSelector = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveSelector", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActiveSelector = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleUpPreviewCheckPoint", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ScaleUpPreviewCheckPoint = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysisRunStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PrePromotionAnalysisRunStatus == nil { + m.PrePromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} + } + if err := m.PrePromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysisRunStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PostPromotionAnalysisRunStatus == nil { + m.PostPromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} + } + if err := m.PostPromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BlueGreenStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BlueGreenStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActiveService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PreviewService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PreviewService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PreviewReplicaCount", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PreviewReplicaCount = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AutoPromotionEnabled = &b + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionSeconds", wireType) + } + m.AutoPromotionSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AutoPromotionSeconds |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelaySeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ScaleDownDelaySeconds = &v + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayRevisionLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ScaleDownDelayRevisionLimit = &v + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysis", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PrePromotionAnalysis == nil { + m.PrePromotionAnalysis = &RolloutAnalysis{} + } + if err := m.PrePromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AntiAffinity == nil { + m.AntiAffinity = &AntiAffinity{} + } + if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysis", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PostPromotionAnalysis == nil { + m.PostPromotionAnalysis = &RolloutAnalysis{} + } + if err := m.PostPromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PreviewMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PreviewMetadata == nil { + m.PreviewMetadata = &PodTemplateMetadata{} + } + if err := m.PreviewMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ActiveMetadata == nil { + m.ActiveMetadata = &PodTemplateMetadata{} + } + if err := m.ActiveMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CanaryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CanaryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CanaryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentStepAnalysisRunStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentStepAnalysisRunStatus == nil { + m.CurrentStepAnalysisRunStatus = &RolloutAnalysisRunStatus{} + } + if err := m.CurrentStepAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentBackgroundAnalysisRunStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CurrentBackgroundAnalysisRunStatus == nil { + m.CurrentBackgroundAnalysisRunStatus = &RolloutAnalysisRunStatus{} + } + if err := m.CurrentBackgroundAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentExperiment", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentExperiment = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CanaryStep) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CanaryStep: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CanaryStep: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SetWeight", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SetWeight = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pause", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pause == nil { + m.Pause = &RolloutPause{} + } + if err := m.Pause.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Experiment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Experiment == nil { + m.Experiment = &RolloutExperimentStep{} + } + if err := m.Experiment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Analysis == nil { + m.Analysis = &RolloutAnalysis{} + } + if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SetCanaryScale", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SetCanaryScale == nil { + m.SetCanaryScale = &SetCanaryScale{} + } + if err := m.SetCanaryScale.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CanaryStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CanaryStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanaryService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CanaryService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StableService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Steps", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Steps = append(m.Steps, CanaryStep{}) + if err := m.Steps[len(m.Steps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficRouting", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TrafficRouting == nil { + m.TrafficRouting = &RolloutTrafficRouting{} + } + if err := m.TrafficRouting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Analysis == nil { + m.Analysis = &RolloutAnalysisBackground{} + } + if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AntiAffinity == nil { + m.AntiAffinity = &AntiAffinity{} + } + if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanaryMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CanaryMetadata == nil { + m.CanaryMetadata = &PodTemplateMetadata{} + } + if err := m.CanaryMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StableMetadata == nil { + m.StableMetadata = &PodTemplateMetadata{} + } + if err := m.StableMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterAnalysisTemplate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterAnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterAnalysisTemplateList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterAnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ClusterAnalysisTemplate{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DatadogMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DatadogMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DatadogMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Interval = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Experiment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Experiment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Experiment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentAnalysisRunStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentAnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRun", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnalysisRun = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterScope", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ClusterScope = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredForCompletion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RequiredForCompletion = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = ExperimentConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Experiment{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Templates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Templates = append(m.Templates, TemplateSpec{}) + if err := m.Templates[len(m.Templates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Duration = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProgressDeadlineSeconds = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Terminate = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Analyses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Analyses = append(m.Analyses, ExperimentAnalysisTemplateRef{}) + if err := m.Analyses[len(m.Analyses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateStatuses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateStatuses = append(m.TemplateStatuses, TemplateStatus{}) + if err := m.TemplateStatuses[len(m.TemplateStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AvailableAt == nil { + m.AvailableAt = &v1.Time{} + } + if err := m.AvailableAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, ExperimentCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnalysisRuns = append(m.AnalysisRuns, ExperimentAnalysisRunStatus{}) + if err := m.AnalysisRuns[len(m.AnalysisRuns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *FieldRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: FieldRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: FieldRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FieldPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioDestinationRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioDestinationRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanarySubsetName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CanarySubsetName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableSubsetName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StableSubsetName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioTrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VirtualService", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.VirtualService.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationRule", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DestinationRule == nil { + m.DestinationRule = &IstioDestinationRule{} + } + if err := m.DestinationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioVirtualService: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioVirtualService: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Routes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Routes = append(m.Routes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KayentaMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KayentaMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KayentaMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Application", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Application = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanaryConfigName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CanaryConfigName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricsAccountName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetricsAccountName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigurationAccountName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ConfigurationAccountName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageAccountName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StorageAccountName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Threshold", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Threshold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Scopes = append(m.Scopes, KayentaScope{}) + if err := m.Scopes[len(m.Scopes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KayentaScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KayentaScope: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KayentaScope: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ControlScope", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ControlScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExperimentScope", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ExperimentScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KayentaThreshold: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KayentaThreshold: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Pass", wireType) + } + m.Pass = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Pass |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Marginal", wireType) + } + m.Marginal = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Marginal |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Measurement) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Measurement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Measurement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartedAt == nil { + m.StartedAt = &v1.Time{} + } + if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FinishedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FinishedAt == nil { + m.FinishedAt = &v1.Time{} + } + if err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Metadata[mapkey] = mapvalue + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResumeAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ResumeAt == nil { + m.ResumeAt = &v1.Time{} + } + if err := m.ResumeAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Metric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Metric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Metric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Interval = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialDelay", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InitialDelay = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Count == nil { + m.Count = &intstr.IntOrString{} + } + if err := m.Count.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SuccessCondition", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SuccessCondition = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailureCondition", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailureCondition = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailureLimit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FailureLimit == nil { + m.FailureLimit = &intstr.IntOrString{} + } + if err := m.FailureLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InconclusiveLimit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InconclusiveLimit == nil { + m.InconclusiveLimit = &intstr.IntOrString{} + } + if err := m.InconclusiveLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveErrorLimit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsecutiveErrorLimit == nil { + m.ConsecutiveErrorLimit = &intstr.IntOrString{} + } + if err := m.ConsecutiveErrorLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Prometheus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Prometheus == nil { + m.Prometheus = &PrometheusMetric{} + } + if err := m.Prometheus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kayenta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kayenta == nil { + m.Kayenta = &KayentaMetric{} + } + if err := m.Kayenta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Web", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Web == nil { + m.Web = &WebMetric{} + } + if err := m.Web.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Datadog", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Datadog == nil { + m.Datadog = &DatadogMetric{} + } + if err := m.Datadog.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Wavefront", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Wavefront == nil { + m.Wavefront = &WavefrontMetric{} + } + if err := m.Wavefront.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewRelic", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NewRelic == nil { + m.NewRelic = &NewRelicMetric{} + } + if err := m.NewRelic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Job", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Job == nil { + m.Job = &JobMetric{} + } + if err := m.Job.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetricResult) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MetricResult: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetricResult: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Measurements", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Measurements = append(m.Measurements, Measurement{}) + if err := m.Measurements[len(m.Measurements)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Successful", wireType) + } + m.Successful = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Successful |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + } + m.Failed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Failed |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Inconclusive", wireType) + } + m.Inconclusive = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Inconclusive |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + m.Error = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Error |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveError", wireType) + } + m.ConsecutiveError = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConsecutiveError |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NewRelicMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NewRelicMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Profile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Profile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NginxTrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NginxTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationPrefix = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableIngress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StableIngress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdditionalIngressAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdditionalIngressAnnotations == nil { + m.AdditionalIngressAnnotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AdditionalIngressAnnotations[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PauseCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PauseCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PauseCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = PauseReason(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodTemplateMetadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodTemplateMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Annotations[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) + } + m.Weight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Weight |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PrometheusMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PrometheusMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RequiredDuringSchedulingIgnoredDuringExecution: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RequiredDuringSchedulingIgnoredDuringExecution: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Rollout) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Rollout: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Rollout: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutAnalysis) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutAnalysis: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutAnalysis: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Templates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Templates = append(m.Templates, RolloutAnalysisTemplate{}) + if err := m.Templates[len(m.Templates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Args = append(m.Args, AnalysisRunArgument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutAnalysisBackground) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutAnalysisBackground: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutAnalysisBackground: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RolloutAnalysis", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RolloutAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field StartingStep", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.StartingStep = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutAnalysisRunStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutAnalysisRunStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutAnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutAnalysisTemplate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutAnalysisTemplate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutAnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterScope", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ClusterScope = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = RolloutConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutExperimentStep) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutExperimentStep: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutExperimentStep: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Templates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Templates = append(m.Templates, RolloutExperimentTemplate{}) + if err := m.Templates[len(m.Templates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Duration = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Analyses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Analyses = append(m.Analyses, RolloutExperimentStepAnalysisTemplateRef{}) + if err := m.Analyses[len(m.Analyses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutExperimentStepAnalysisTemplateRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutExperimentStepAnalysisTemplateRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutExperimentStepAnalysisTemplateRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TemplateName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterScope", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ClusterScope = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Args = append(m.Args, AnalysisRunArgument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredForCompletion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RequiredForCompletion = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutExperimentTemplate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutExperimentTemplate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutExperimentTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SpecRef", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SpecRef = ReplicaSetSpecRef(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Icon = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Strategy = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Step", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Step = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SetWeight", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SetWeight = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActualWeight", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActualWeight = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Rollout{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutPause) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutPause: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutPause: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Duration == nil { + m.Duration = &intstr.IntOrString{} + } + if err := m.Duration.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Paused = bool(v != 0) + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProgressDeadlineSeconds = &v + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RestartAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RestartAt == nil { + m.RestartAt = &v1.Time{} + } + if err := m.RestartAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Abort", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Abort = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PauseConditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PauseConditions = append(m.PauseConditions, PauseCondition{}) + if err := m.PauseConditions[len(m.PauseConditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ControllerPause", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ControllerPause = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AbortedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AbortedAt == nil { + m.AbortedAt = &v1.Time{} + } + if err := m.AbortedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentPodHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentPodHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentStepHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentStepHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) + } + m.UpdatedReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentStepIndex", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CurrentStepIndex = &v + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ObservedGeneration = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, RolloutCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Canary", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Canary.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlueGreen", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.BlueGreen.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field HPAReplicas", wireType) + } + m.HPAReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.HPAReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Selector = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableRS", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StableRS = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RestartedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RestartedAt == nil { + m.RestartedAt = &v1.Time{} + } + if err := m.RestartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 21: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PromoteFull", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PromoteFull = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlueGreen", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.BlueGreen == nil { + m.BlueGreen = &BlueGreenStrategy{} + } + if err := m.BlueGreen.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Canary", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Canary == nil { + m.Canary = &CanaryStrategy{} + } + if err := m.Canary.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutTrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutTrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Istio", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Istio == nil { + m.Istio = &IstioTrafficRouting{} + } + if err := m.Istio.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nginx", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Nginx == nil { + m.Nginx = &NginxTrafficRouting{} + } + if err := m.Nginx.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ALB", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ALB == nil { + m.ALB = &ALBTrafficRouting{} + } + if err := m.ALB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SMI", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SMI == nil { + m.SMI = &SMITrafficRouting{} + } + if err := m.SMI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SMITrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SMITrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SMITrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RootService", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RootService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TrafficSplitName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TrafficSplitName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ScopeDetail) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ScopeDetail: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScopeDetail: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Scope = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Step", wireType) + } + m.Step = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Step |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Start = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.End = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SecretKeyRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SecretKeyRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SecretKeyRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SetCanaryScale) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetCanaryScale: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetCanaryScale: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Weight = &v + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MatchTrafficWeight", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MatchTrafficWeight = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TemplateSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TemplateSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TemplateStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TemplateStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TemplateStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) + } + m.UpdatedReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = TemplateStatusCode(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastTransitionTime == nil { + m.LastTransitionTime = &v1.Time{} + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ValueFrom) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ValueFrom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ValueFrom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretKeyRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SecretKeyRef == nil { + m.SecretKeyRef = &SecretKeyRef{} + } + if err := m.SecretKeyRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FieldRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FieldRef == nil { + m.FieldRef = &FieldRef{} + } + if err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WavefrontMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WavefrontMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WavefrontMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.URL = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Headers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Headers = append(m.Headers, WebMetricHeader{}) + if err := m.Headers[len(m.Headers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeoutSeconds", wireType) + } + m.TimeoutSeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TimeoutSeconds |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field JSONPath", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.JSONPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Insecure", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Insecure = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WebMetricHeader) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WebMetricHeader: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WebMetricHeader: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto new file mode 100644 index 0000000000..5b2bd32c92 --- /dev/null +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -0,0 +1,1306 @@ +/* +Copyright 2021 The Kubernetes sample-controller Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1alpha1"; + +message JobSpec { + // Specifies the maximum desired number of pods the job should + // run at any given time. The actual number of pods running in steady state will + // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), + // i.e. when the work left to do is less than max parallelism. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ + // +optional + optional int32 parallelism = 1; + + // Specifies the desired number of successfully finished pods the + // job should be run with. Setting to nil means that the success of any + // pod signals the success of all pods, and allows parallelism to have any positive + // value. Setting to 1 means that parallelism is limited to 1 and the success of that + // pod signals the success of the job. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ + // +optional + optional int32 completions = 2; + + // Specifies the duration in seconds relative to the startTime that the job may be active + // before the system tries to terminate it; value must be positive integer + // +optional + optional int64 activeDeadlineSeconds = 3; + + // Specifies the number of retries before marking this job failed. + // Defaults to 6 + // +optional + optional int32 backoffLimit = 7; + + // A label query over pods that should match the pod count. + // Normally, the system sets this field for you. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // manualSelector controls generation of pod labels and pod selectors. + // Leave `manualSelector` unset unless you are certain what you are doing. + // When false or unset, the system pick labels unique to this job + // and appends those labels to the pod template. When true, + // the user is responsible for picking unique labels and specifying + // the selector. Failure to pick a unique label may cause this + // and other jobs to not function correctly. However, You may see + // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` + // API. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector + // +optional + optional bool manualSelector = 5; + + // Describes the pod that will be created when executing a job. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ + optional k8s.io.api.core.v1.PodTemplateSpec template = 6; + + // ttlSecondsAfterFinished limits the lifetime of a Job that has finished + // execution (either Complete or Failed). If this field is set, + // ttlSecondsAfterFinished after the Job finishes, it is eligible to be + // automatically deleted. When the Job is being deleted, its lifecycle + // guarantees (e.g. finalizers) will be honored. If this field is unset, + // the Job won't be automatically deleted. If this field is set to zero, + // the Job becomes eligible to be deleted immediately after it finishes. + // This field is alpha-level and is only honored by servers that enable the + // TTLAfterFinished feature. + // +optional + optional int32 ttlSecondsAfterFinished = 8; +} + +// ALBTrafficRouting configuration for ALB ingress controller to control traffic routing +message ALBTrafficRouting { + // Ingress refers to the name of an `Ingress` resource in the same namespace as the `Rollout` + optional string ingress = 1; + + // ServicePort refers to the port that the Ingress action should route traffic to + optional int32 servicePort = 2; + + // RootService references the service in the ingress to the controller should add the action to + optional string rootService = 3; + + // AnnotationPrefix has to match the configured annotation prefix on the alb ingress controller + // +optional + optional string annotationPrefix = 4; +} + +// AnalysisRun is an instantiation of an AnalysisTemplate +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:path=analysisruns, shortName=ar +// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="AnalysisRun status" +message AnalysisRun { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional AnalysisRunSpec spec = 2; + + optional AnalysisRunStatus status = 3; +} + +// AnalysisRunArgument argument to add to analysisRun +message AnalysisRunArgument { + // Name argument name + optional string name = 1; + + // Value a hardcoded value for the argument. This field is a one of field with valueFrom + optional string value = 2; + + // ValueFrom A reference to where the value is stored. This field is a one of field with valueFrom + optional ArgumentValueFrom valueFrom = 3; +} + +// AnalysisRunList is a list of AnalysisTemplate resources +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +message AnalysisRunList { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated AnalysisRun items = 2; +} + +// AnalysisRunSpec is the spec for a AnalysisRun resource +message AnalysisRunSpec { + // Metrics contains the list of metrics to query as part of an analysis run + // +patchMergeKey=name + // +patchStrategy=merge + repeated Metric metrics = 1; + + // Args are the list of arguments used in this run + // +optional + // +patchMergeKey=name + // +patchStrategy=merge + repeated Argument args = 2; + + // Terminate is used to prematurely stop the run (e.g. rollout completed and analysis is no longer desired) + optional bool terminate = 3; +} + +// AnalysisRunStatus is the status for a AnalysisRun resource +message AnalysisRunStatus { + // Phase is the status of the analysis run + optional string phase = 1; + + // Message is a message explaining current status + optional string message = 2; + + // MetricResults contains the metrics collected during the run + repeated MetricResult metricResults = 3; + + // StartedAt indicates when the analysisRun first started + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 4; +} + +// AnalysisTemplate holds the template for performing canary analysis +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:path=analysistemplates,shortName=at +message AnalysisTemplate { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional AnalysisTemplateSpec spec = 2; +} + +// AnalysisTemplateList is a list of AnalysisTemplate resources +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +message AnalysisTemplateList { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated AnalysisTemplate items = 2; +} + +// AnalysisTemplateSpec is the specification for a AnalysisTemplate resource +message AnalysisTemplateSpec { + // Metrics contains the list of metrics to query as part of an analysis run + // +patchMergeKey=name + // +patchStrategy=merge + repeated Metric metrics = 1; + + // Args are the list of arguments to the template + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated Argument args = 2; +} + +// AntiAffinity defines which inter-pod scheduling rule to use for anti-affinity injection +message AntiAffinity { + // +optional + optional PreferredDuringSchedulingIgnoredDuringExecution preferredDuringSchedulingIgnoredDuringExecution = 1; + + // +optional + optional RequiredDuringSchedulingIgnoredDuringExecution requiredDuringSchedulingIgnoredDuringExecution = 2; +} + +// Argument is an argument to an AnalysisRun +message Argument { + // Name is the name of the argument + optional string name = 1; + + // Value is the value of the argument + // +optional + optional string value = 2; + + // ValueFrom is a reference to where a secret is stored. This field is one of the fields with valueFrom + // +optional + optional ValueFrom valueFrom = 3; +} + +// ArgumentValueFrom defines references to fields within resources to grab for the value (i.e. Pod Template Hash) +message ArgumentValueFrom { + // PodTemplateHashValue gets the value from one of the children ReplicaSet's Pod Template Hash + optional string podTemplateHashValue = 1; + + // FieldRef + optional FieldRef fieldRef = 2; +} + +// BlueGreenStatus status fields that only pertain to the blueGreen rollout +message BlueGreenStatus { + // PreviewSelector indicates which replicas set the preview service is serving traffic to + // +optional + optional string previewSelector = 1; + + // ActiveSelector indicates which replicas set the active service is serving traffic to + // +optional + optional string activeSelector = 2; + + // ScaleUpPreviewCheckPoint indicates that the Replicaset receiving traffic from the preview service is ready to be scaled up after the rollout is unpaused + // +optional + optional bool scaleUpPreviewCheckPoint = 3; + + // PrePromotionAnalysisRunStatus indicates the status of the current prepromotion analysis run + optional RolloutAnalysisRunStatus prePromotionAnalysisRunStatus = 4; + + // PostPromotionAnalysisRunStatus indicates the status of the current post promotion analysis run + optional RolloutAnalysisRunStatus postPromotionAnalysisRunStatus = 5; +} + +// BlueGreenStrategy defines parameters for Blue Green deployment +message BlueGreenStrategy { + // Name of the service that the rollout modifies as the active service. + optional string activeService = 1; + + // Name of the service that the rollout modifies as the preview service. + // +optional + optional string previewService = 2; + + // PreviewReplicaCount is the number of replicas to run for the preview stack before the + // switchover. Once the rollout is resumed the desired replicaset will be full scaled up before the switch occurs + // +optional + optional int32 previewReplicaCount = 3; + + // AutoPromotionEnabled indicates if the rollout should automatically promote the new ReplicaSet + // to the active service or enter a paused state. If not specified, the default value is true. + // +optional + optional bool autoPromotionEnabled = 4; + + // AutoPromotionSeconds is a duration in seconds in which to delay auto-promotion (default: 0). + // The countdown begins after the preview ReplicaSet have reached full availability. + // This option is ignored if autoPromotionEnabled is set to false. + // +optional + optional int32 autoPromotionSeconds = 5; + + // MaxUnavailable The maximum number of pods that can be unavailable during a restart operation. + // Defaults to 25% of total replicas. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 6; + + // ScaleDownDelaySeconds adds a delay before scaling down the previous replicaset. + // If omitted, the Rollout waits 30 seconds before scaling down the previous ReplicaSet. + // A minimum of 30 seconds is recommended to ensure IP table propagation across the nodes in + // a cluster. See https://github.com/argoproj/argo-rollouts/issues/19#issuecomment-476329960 for + // more information + // +optional + optional int32 scaleDownDelaySeconds = 7; + + // ScaleDownDelayRevisionLimit limits the number of old RS that can run at one time before getting scaled down + // +optional + optional int32 scaleDownDelayRevisionLimit = 8; + + // PrePromotionAnalysis configuration to run analysis before a selector switch + optional RolloutAnalysis prePromotionAnalysis = 9; + + // AntiAffinity enables anti-affinity rules for Blue Green deployment + // +optional + optional AntiAffinity antiAffinity = 10; + + // PostPromotionAnalysis configuration to run analysis after a selector switch + optional RolloutAnalysis postPromotionAnalysis = 11; + + // PreviewMetadata specify labels and annotations which will be attached to the preview pods for + // the duration which they act as a preview pod, and will be removed after + optional PodTemplateMetadata previewMetadata = 12; + + // ActiveMetadata specify labels and annotations which will be attached to the active pods for + // the duration which they act as a active pod, and will be removed after + optional PodTemplateMetadata activeMetadata = 13; +} + +// CanaryStatus status fields that only pertain to the canary rollout +message CanaryStatus { + // CurrentStepAnalysisRunStatus indicates the status of the current step analysis run + optional RolloutAnalysisRunStatus currentStepAnalysisRunStatus = 1; + + // CurrentBackgroundAnalysisRunStatus indicates the status of the current background analysis run + optional RolloutAnalysisRunStatus currentBackgroundAnalysisRunStatus = 2; + + // CurrentExperiment indicates the running experiment + optional string currentExperiment = 3; +} + +// CanaryStep defines a step of a canary deployment. +message CanaryStep { + // SetWeight sets what percentage of the newRS should receive + optional int32 setWeight = 1; + + // Pause freezes the rollout by setting spec.Paused to true. + // A Rollout will resume when spec.Paused is reset to false. + // +optional + optional RolloutPause pause = 2; + + // Experiment defines the experiment object that should be created + optional RolloutExperimentStep experiment = 3; + + // Analysis defines the AnalysisRun that will run for a step + optional RolloutAnalysis analysis = 4; + + // SetCanaryScale defines how to scale the newRS without changing traffic weight + // +optional + optional SetCanaryScale setCanaryScale = 5; +} + +// CanaryStrategy defines parameters for a Replica Based Canary +message CanaryStrategy { + // CanaryService holds the name of a service which selects pods with canary version and don't select any pods with stable version. + // +optional + optional string canaryService = 1; + + // StableService holds the name of a service which selects pods with stable version and don't select any pods with canary version. + // +optional + optional string stableService = 2; + + // Steps define the order of phases to execute the canary deployment + // +optional + repeated CanaryStep steps = 3; + + // TrafficRouting hosts all the supported service meshes supported to enable more fine-grained traffic routing + optional RolloutTrafficRouting trafficRouting = 4; + + // MaxUnavailable The maximum number of pods that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). + // Absolute number is calculated from percentage by rounding down. + // This can not be 0 if MaxSurge is 0. + // By default, a fixed value of 25% is used. + // Example: when this is set to 30%, the old RC can be scaled down by 30% + // immediately when the rolling update starts. Once new pods are ready, old RC + // can be scaled down further, followed by scaling up the new RC, ensuring + // that at least 70% of original number of pods are available at all times + // during the update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 5; + + // MaxSurge The maximum number of pods that can be scheduled above the original number of + // pods. + // Value can be an absolute number (ex: 5) or a percentage of total pods at + // the start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up. + // By default, a value of 25% is used. + // Example: when this is set to 30%, the new RC can be scaled up by 30% + // immediately when the rolling update starts. Once old pods have been killed, + // new RC can be scaled up further, ensuring that total number of pods running + // at any time during the update is at most 130% of original pods. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 6; + + // Analysis runs a separate analysisRun while all the steps execute. This is intended to be a continuous validation of the new ReplicaSet + optional RolloutAnalysisBackground analysis = 7; + + // AntiAffinity enables anti-affinity rules for Canary deployment + // +optional + optional AntiAffinity antiAffinity = 8; + + // CanaryMetadata specify labels and annotations which will be attached to the canary pods for + // the duration which they act as a canary, and will be removed after + optional PodTemplateMetadata canaryMetadata = 9; + + // StableMetadata specify labels and annotations which will be attached to the stable pods for + // the duration which they act as a canary, and will be removed after + optional PodTemplateMetadata stableMetadata = 10; +} + +// ClusterAnalysisTemplate holds the template for performing canary analysis +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:path=clusteranalysistemplates,shortName=cat +message ClusterAnalysisTemplate { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional AnalysisTemplateSpec spec = 2; +} + +// AnalysisTemplateList is a list of AnalysisTemplate resources +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +message ClusterAnalysisTemplateList { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated ClusterAnalysisTemplate items = 2; +} + +message DatadogMetric { + optional string interval = 1; + + optional string query = 2; +} + +// Experiment is a specification for an Experiment resource +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// +kubebuilder:resource:path=experiments,shortName=exp +// +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="Experiment status" +message Experiment { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional ExperimentSpec spec = 2; + + optional ExperimentStatus status = 3; +} + +message ExperimentAnalysisRunStatus { + // Name is the name of the analysis + optional string name = 1; + + // AnalysisRun is the name of the AnalysisRun + optional string analysisRun = 2; + + // Phase is the status of the AnalysisRun + optional string phase = 3; + + // Message is a message explaining the current status + optional string message = 4; +} + +message ExperimentAnalysisTemplateRef { + // Name is the name of the analysis + optional string name = 1; + + // TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run + optional string templateName = 2; + + // Whether to look for the templateName at cluster scope or namespace scope + // +optional + optional bool clusterScope = 3; + + // Args are the arguments that will be added to the AnalysisRuns + // +optional + // +patchMergeKey=name + // +patchStrategy=merge + repeated Argument args = 4; + + // RequiredForCompletion blocks the Experiment from completing until the analysis has completed + optional bool requiredForCompletion = 5; +} + +// ExperimentCondition describes the state of a experiment at a certain point. +message ExperimentCondition { + // Type of deployment condition. + optional string type = 1; + + // Phase of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time this condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 3; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4; + + // The reason for the condition's last transition. + optional string reason = 5; + + // A human readable message indicating details about the transition. + optional string message = 6; +} + +// ExperimentList is a list of Experiment resources +message ExperimentList { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated Experiment items = 2; +} + +// ExperimentSpec is the spec for a Experiment resource +message ExperimentSpec { + // Templates are a list of PodSpecs that define the ReplicaSets that should be run during an experiment. + // +patchMergeKey=name + // +patchStrategy=merge + repeated TemplateSpec templates = 1; + + // Duration the amount of time for the experiment to run as a duration string (e.g. 30s, 5m, 1h). + // If omitted, the experiment will run indefinitely, stopped either via termination, or a failed analysis run. + // +optional + optional string duration = 2; + + // ProgressDeadlineSeconds The maximum time in seconds for a experiment to + // make progress before it is considered to be failed. Argo Rollouts will + // continue to process failed experiments and a condition with a + // ProgressDeadlineExceeded reason will be surfaced in the experiment status. + // Defaults to 600s. + // +optional + optional int32 progressDeadlineSeconds = 3; + + // Terminate is used to prematurely stop the experiment + optional bool terminate = 4; + + // Analyses references AnalysisTemplates to run during the experiment + // +patchMergeKey=name + // +patchStrategy=merge + repeated ExperimentAnalysisTemplateRef analyses = 5; +} + +// ExperimentStatus is the status for a Experiment resource +message ExperimentStatus { + // Phase is the status of the experiment. Takes into consideration ReplicaSet degradations and + // AnalysisRun statuses + optional string phase = 1; + + // Message is an explanation for the current status + // +optional + optional string message = 2; + + // TemplateStatuses holds the ReplicaSet related statuses for individual templates + // +optional + repeated TemplateStatus templateStatuses = 3; + + // AvailableAt the time when all the templates become healthy and the experiment should start tracking the time to + // run for the duration of specificed in the spec. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time availableAt = 4; + + // Conditions a list of conditions a experiment can have. + // +optional + repeated ExperimentCondition conditions = 5; + + // AnalysisRuns tracks the status of AnalysisRuns associated with this Experiment + // +optional + repeated ExperimentAnalysisRunStatus analysisRuns = 6; +} + +message FieldRef { + // Required: Path of the field to select in the specified API version + optional string fieldPath = 1; +} + +// IstioDestinationRule is a reference to an Istio DestinationRule to modify and shape traffic +message IstioDestinationRule { + // Name holds the name of the DestinationRule + optional string name = 1; + + // CanarySubsetName is the subset name to modify labels with canary ReplicaSet pod template hash value + optional string canarySubsetName = 2; + + // StableSubsetName is the subset name to modify labels with stable ReplicaSet pod template hash value + optional string stableSubsetName = 3; +} + +// IstioTrafficRouting configuration for Istio service mesh to enable fine grain configuration +message IstioTrafficRouting { + // VirtualService references an Istio VirtualService to modify to shape traffic + optional IstioVirtualService virtualService = 1; + + // DestinationRule references an Istio DestinationRule to modify to shape traffic + optional IstioDestinationRule destinationRule = 2; +} + +// IstioVirtualService holds information on the virtual service the rollout needs to modify +message IstioVirtualService { + // Name holds the name of the VirtualService + optional string name = 1; + + // Routes list of routes within VirtualService to edit + repeated string routes = 2; +} + +// JobMetric defines a job to run which acts as a metric +message JobMetric { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional JobSpec spec = 2; +} + +message KayentaMetric { + optional string address = 1; + + optional string application = 2; + + optional string canaryConfigName = 3; + + optional string metricsAccountName = 4; + + optional string configurationAccountName = 5; + + optional string storageAccountName = 6; + + optional KayentaThreshold threshold = 7; + + repeated KayentaScope scopes = 8; +} + +message KayentaScope { + optional string name = 1; + + optional ScopeDetail controlScope = 2; + + optional ScopeDetail experimentScope = 3; +} + +message KayentaThreshold { + optional int64 pass = 1; + + optional int64 marginal = 2; +} + +// Measurement is a point in time result value of a single metric, and the time it was measured +message Measurement { + // Phase is the status of this single measurement + optional string phase = 1; + + // Message contains a message describing current condition (e.g. error messages) + optional string message = 2; + + // StartedAt is the timestamp in which this measurement started to be measured + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 3; + + // FinishedAt is the timestamp in which this measurement completed and value was collected + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 4; + + // Value is the measured value of the metric + optional string value = 5; + + // Metadata stores additional metadata about this metric result, used by the different providers + // (e.g. kayenta run ID, job name) + map metadata = 6; + + // ResumeAt is the timestamp when the analysisRun should try to resume the measurement + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time resumeAt = 7; +} + +// Metric defines a metric in which to perform analysis +message Metric { + // Name is the name of the metric + optional string name = 1; + + // Interval defines an interval string (e.g. 30s, 5m, 1h) between each measurement. + // If omitted, will perform a single measurement + optional string interval = 2; + + // InitialDelay how long the AnalysisRun should wait before starting this metric + optional string initialDelay = 3; + + // Count is the number of times to run the measurement. If both interval and count are omitted, + // the effective count is 1. If only interval is specified, metric runs indefinitely. + // If count > 1, interval must be specified. + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString count = 4; + + // SuccessCondition is an expression which determines if a measurement is considered successful + // Expression is a goevaluate expression. The keyword `result` is a variable reference to the + // value of measurement. Results can be both structured data or primitive. + // Examples: + // result > 10 + // (result.requests_made * result.requests_succeeded / 100) >= 90 + optional string successCondition = 5; + + // FailureCondition is an expression which determines if a measurement is considered failed + // If both success and failure conditions are specified, and the measurement does not fall into + // either condition, the measurement is considered Inconclusive + optional string failureCondition = 6; + + // FailureLimit is the maximum number of times the measurement is allowed to fail, before the + // entire metric is considered Failed (default: 0) + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString failureLimit = 7; + + // InconclusiveLimit is the maximum number of times the measurement is allowed to measure + // Inconclusive, before the entire metric is considered Inconclusive (default: 0) + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString inconclusiveLimit = 8; + + // ConsecutiveErrorLimit is the maximum number of times the measurement is allowed to error in + // succession, before the metric is considered error (default: 4) + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString consecutiveErrorLimit = 9; + + // Provider configuration to the external system to use to verify the analysis + optional MetricProvider provider = 10; +} + +// MetricProvider which external system to use to verify the analysis +// Only one of the fields in this struct should be non-nil +message MetricProvider { + // Prometheus specifies the prometheus metric to query + optional PrometheusMetric prometheus = 1; + + // Kayenta specifies a Kayenta metric + optional KayentaMetric kayenta = 2; + + // Web specifies a generic HTTP web metric + optional WebMetric web = 3; + + // Datadog specifies a datadog metric to query + optional DatadogMetric datadog = 4; + + // Wavefront specifies the wavefront metric to query + optional WavefrontMetric wavefront = 5; + + // NewRelic specifies the newrelic metric to query + optional NewRelicMetric newRelic = 6; + + // Job specifies the job metric run + optional JobMetric job = 7; +} + +// MetricResult contain a list of the most recent measurements for a single metric along with +// counters on how often the measurement +message MetricResult { + // Name is the name of the metric + optional string name = 1; + + // Phase is the overall aggregate status of the metric + optional string phase = 2; + + // Measurements holds the most recent measurements collected for the metric + repeated Measurement measurements = 3; + + // Message contains a message describing current condition (e.g. error messages) + optional string message = 4; + + // Count is the number of times the metric was measured without Error + // This is equal to the sum of Successful, Failed, Inconclusive + optional int32 count = 5; + + // Successful is the number of times the metric was measured Successful + optional int32 successful = 6; + + // Failed is the number of times the metric was measured Failed + optional int32 failed = 7; + + // Inconclusive is the number of times the metric was measured Inconclusive + optional int32 inconclusive = 8; + + // Error is the number of times an error was encountered during measurement + optional int32 error = 9; + + // ConsecutiveError is the number of times an error was encountered during measurement in succession + // Resets to zero when non-errors are encountered + optional int32 consecutiveError = 10; +} + +// NewRelicMetric defines the newrelic query to perform canary analysis +message NewRelicMetric { + // Profile is the name of the secret holding NR account configuration + optional string profile = 1; + + // Query is a raw newrelic NRQL query to perform + optional string query = 2; +} + +// NginxTrafficRouting configuration for Nginx ingress controller to control traffic routing +message NginxTrafficRouting { + // AnnotationPrefix has to match the configured annotation prefix on the nginx ingress controller + // +optional + optional string annotationPrefix = 1; + + // StableIngress refers to the name of an `Ingress` resource in the same namespace as the `Rollout` + optional string stableIngress = 2; + + // +optional + map additionalIngressAnnotations = 3; +} + +// PauseCondition the reason for a pause and when it started +message PauseCondition { + optional string reason = 1; + + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2; +} + +// PodTemplateMetadata extra labels to add to the template +message PodTemplateMetadata { + // Labels Additional labels to add to the experiment + // +optional + map labels = 1; + + // Annotations additional annotations to add to the experiment + // +optional + map annotations = 2; +} + +// PreferredDuringSchedulingIgnoredDuringExecution defines the weight of the anti-affinity injection +message PreferredDuringSchedulingIgnoredDuringExecution { + // Weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + optional int32 weight = 1; +} + +// PrometheusMetric defines the prometheus query to perform canary analysis +message PrometheusMetric { + // Address is the HTTP address and port of the prometheus server + optional string address = 1; + + // Query is a raw prometheus query to perform + optional string query = 2; +} + +// RequiredDuringSchedulingIgnoredDuringExecution defines inter-pod scheduling rule to be RequiredDuringSchedulingIgnoredDuringExecution +message RequiredDuringSchedulingIgnoredDuringExecution { +} + +// Rollout is a specification for a Rollout resource +message Rollout { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional RolloutSpec spec = 2; + + optional RolloutStatus status = 3; +} + +// RolloutAnalysis defines a template that is used to create a analysisRun +message RolloutAnalysis { + // Templates reference to a list of analysis templates to combine for an AnalysisRun + repeated RolloutAnalysisTemplate templates = 1; + + // Args the arguments that will be added to the AnalysisRuns + // +patchMergeKey=name + // +patchStrategy=merge + repeated AnalysisRunArgument args = 2; +} + +// RolloutAnalysisBackground defines a template that is used to create a background analysisRun +message RolloutAnalysisBackground { + optional RolloutAnalysis rolloutAnalysis = 1; + + // StartingStep indicates which step the background analysis should start on + // If not listed, controller defaults to 0 + optional int32 startingStep = 2; +} + +message RolloutAnalysisRunStatus { + optional string name = 1; + + optional string status = 2; + + optional string message = 3; +} + +message RolloutAnalysisTemplate { + // TemplateName name of template to use in AnalysisRun + // +optional + optional string templateName = 1; + + // Whether to look for the templateName at cluster scope or namespace scope + // +optional + optional bool clusterScope = 2; +} + +// RolloutCondition describes the state of a rollout at a certain point. +message RolloutCondition { + // Type of deployment condition. + optional string type = 1; + + // Phase of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time this condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 3; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4; + + // The reason for the condition's last transition. + optional string reason = 5; + + // A human readable message indicating details about the transition. + optional string message = 6; +} + +// RolloutExperimentStep defines a template that is used to create a experiment for a step +message RolloutExperimentStep { + // Templates what templates that should be added to the experiment. Should be non-nil + // +patchMergeKey=name + // +patchStrategy=merge + repeated RolloutExperimentTemplate templates = 1; + + // Duration is a duration string (e.g. 30s, 5m, 1h) that the experiment should run for + // +optional + optional string duration = 2; + + // Analyses reference which analysis templates to run with the experiment + // +patchMergeKey=name + // +patchStrategy=merge + repeated RolloutExperimentStepAnalysisTemplateRef analyses = 3; +} + +message RolloutExperimentStepAnalysisTemplateRef { + // Name is a name for this analysis template invocation + optional string name = 1; + + // TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run + optional string templateName = 2; + + // Whether to look for the templateName at cluster scope or namespace scope + // +optional + optional bool clusterScope = 3; + + // Args the arguments that will be added to the AnalysisRuns + // +patchMergeKey=name + // +patchStrategy=merge + repeated AnalysisRunArgument args = 4; + + // RequiredForCompletion blocks the Experiment from completing until the analysis has completed + optional bool requiredForCompletion = 5; +} + +// RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step +message RolloutExperimentTemplate { + // Name description of template that passed to the template + optional string name = 1; + + // SpecRef indicates where the rollout should get the RS template from + optional string specRef = 2; + + // Replicas replica count for the template + // +optional + optional int32 replicas = 3; + + // Metadata sets labels and annotations to use for the RS created from the template + // +optional + optional PodTemplateMetadata metadata = 4; + + // Selector overrides the selector to be used for the template's ReplicaSet. If omitted, will + // use the same selector as the Rollout + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 5; +} + +// RolloutInfo is information about a rollout +message RolloutInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + optional string status = 2; + + optional string message = 3; + + optional string icon = 4; + + optional string strategy = 5; + + optional string step = 6; + + optional string setWeight = 7; + + optional string actualWeight = 8; +} + +// RolloutList is a list of Rollout resources +message RolloutList { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated Rollout items = 2; +} + +// RolloutPause defines a pause stage for a rollout +message RolloutPause { + // Duration the amount of time to wait before moving to the next step. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString duration = 1; +} + +// RolloutSpec is the spec for a Rollout resource +message RolloutSpec { + // Number of desired pods. This is a pointer to distinguish between explicit + // zero and not specified. Defaults to 1. + // +optional + optional int32 replicas = 1; + + // Label selector for pods. Existing ReplicaSets whose pods are + // selected by this will be the ones affected by this rollout. + // It must match the pod template's labels. + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // Template describes the pods that will be created. + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; + + // Minimum number of seconds for which a newly created pod should be ready + // without any of its container crashing, for it to be considered available. + // Defaults to 0 (pod will be considered available as soon as it is ready) + // +optional + optional int32 minReadySeconds = 4; + + // The deployment strategy to use to replace existing pods with new ones. + // +optional + optional RolloutStrategy strategy = 5; + + // The number of old ReplicaSets to retain. If unspecified, will retain 10 old ReplicaSets + optional int32 revisionHistoryLimit = 6; + + // Paused pauses the rollout at its current step. + optional bool paused = 7; + + // ProgressDeadlineSeconds The maximum time in seconds for a rollout to + // make progress before it is considered to be failed. Argo Rollouts will + // continue to process failed rollouts and a condition with a + // ProgressDeadlineExceeded reason will be surfaced in the rollout status. + // Note that progress will not be estimated during the time a rollout is paused. + // Defaults to 600s. + optional int32 progressDeadlineSeconds = 8; + + // RestartAt indicates when all the pods of a Rollout should be restarted + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time restartAt = 9; +} + +// RolloutStatus is the status for a Rollout resource +message RolloutStatus { + // Abort cancel the current rollout progression + optional bool abort = 1; + + // PauseConditions indicates why the rollout is currently paused + repeated PauseCondition pauseConditions = 2; + + // ControllerPause indicates the controller has paused the rollout. It is set to true when + // the controller adds a pause condition. This field helps to discern the scenario where a + // rollout was resumed after being paused by the controller (e.g. via the plugin). In that + // situation, the pauseConditions would have been cleared , but controllerPause would still be + // set to true. + optional bool controllerPause = 3; + + // AbortedAt indicates the controller reconciled an aborted rollout. The controller uses this to understand if + // the controller needs to do some specific work when a Rollout is aborted. For example, the reconcileAbort is used + // to indicate if the Rollout should enter an aborted state when the latest AnalysisRun is a failure, or the controller + // has already put the Rollout into an aborted and should create a new AnalysisRun. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time abortedAt = 4; + + // CurrentPodHash the hash of the current pod template + // +optional + optional string currentPodHash = 5; + + // CurrentStepHash the hash of the current list of steps for the current strategy. This is used to detect when the + // list of current steps change + // +optional + optional string currentStepHash = 6; + + // Total number of non-terminated pods targeted by this rollout (their labels match the selector). + // +optional + optional int32 replicas = 7; + + // Total number of non-terminated pods targeted by this rollout that have the desired template spec. + // +optional + optional int32 updatedReplicas = 8; + + // Total number of ready pods targeted by this rollout. + // +optional + optional int32 readyReplicas = 9; + + // Total number of available pods (ready for at least minReadySeconds) targeted by this rollout. + // +optional + optional int32 availableReplicas = 10; + + // CurrentStepIndex defines the current step of the rollout is on. If the current step index is null, the + // controller will execute the rollout. + // +optional + optional int32 currentStepIndex = 11; + + // Count of hash collisions for the Rollout. The Rollout controller uses this + // field as a collision avoidance mechanism when it needs to create the name for the + // newest ReplicaSet. + // +optional + optional int32 collisionCount = 12; + + // The generation observed by the rollout controller by taking a hash of the spec. + // +optional + optional string observedGeneration = 13; + + // Conditions a list of conditions a rollout can have. + // +optional + repeated RolloutCondition conditions = 14; + + // Canary describes the state of the canary rollout + // +optional + optional CanaryStatus canary = 15; + + // BlueGreen describes the state of the bluegreen rollout + // +optional + optional BlueGreenStatus blueGreen = 16; + + // HPAReplicas the number of non-terminated replicas that are receiving active traffic + // +optional + optional int32 HPAReplicas = 17; + + // Selector that identifies the pods that are receiving active traffic + // +optional + optional string selector = 18; + + // StableRS indicates the replicaset that has successfully rolled out + // +optional + optional string stableRS = 19; + + // RestartedAt indicates last time a Rollout was restarted + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time restartedAt = 20; + + // PromoteFull indicates if the rollout should perform a full promotion, skipping analysis and pauses. + optional bool promoteFull = 21; +} + +// RolloutStrategy defines strategy to apply during next rollout +message RolloutStrategy { + // +optional + optional BlueGreenStrategy blueGreen = 1; + + // +optional + optional CanaryStrategy canary = 2; +} + +// RolloutTrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing +message RolloutTrafficRouting { + // Istio holds Istio specific configuration to route traffic + optional IstioTrafficRouting istio = 1; + + // Nginx holds Nginx Ingress specific configuration to route traffic + optional NginxTrafficRouting nginx = 2; + + // Nginx holds ALB Ingress specific configuration to route traffic + optional ALBTrafficRouting alb = 3; + + // SMI holds TrafficSplit specific configuration to route traffic + optional SMITrafficRouting smi = 4; +} + +// SMITrafficRouting configuration for TrafficSplit Custom Resource to control traffic routing +message SMITrafficRouting { + // RootService holds the name of that clients use to communicate. + // +optional + optional string rootService = 1; + + // TrafficSplitName holds the name of the TrafficSplit. + // +optional + optional string trafficSplitName = 2; +} + +message ScopeDetail { + optional string scope = 1; + + optional string region = 2; + + optional int64 step = 3; + + optional string start = 4; + + optional string end = 5; +} + +message SecretKeyRef { + // Name is the name of the secret + optional string name = 1; + + // Key is the key of the secret to select from. + optional string key = 2; +} + +// SetCanaryScale defines how to scale the newRS without changing traffic weight +message SetCanaryScale { + // Weight sets the percentage of replicas the newRS should have + // +optional + optional int32 weight = 1; + + // Replicas sets the number of replicas the newRS should have + // +optional + optional int32 replicas = 2; + + // MatchTrafficWeight cancels out previously set Replicas or Weight, effectively activating SetWeight + // +optional + optional bool matchTrafficWeight = 3; +} + +message TemplateSpec { + // Name of the template used to identity replicaset running for this experiment + optional string name = 1; + + // Number of desired pods. This is a pointer to distinguish between explicit + // zero and not specified. Defaults to 1. + // +optional + optional int32 replicas = 2; + + // Minimum number of seconds for which a newly created pod should be ready + // without any of its container crashing, for it to be considered available. + // Defaults to 0 (pod will be considered available as soon as it is ready) + // +optional + optional int32 minReadySeconds = 3; + + // Label selector for pods. Existing ReplicaSets whose pods are + // selected by this will be the ones affected by this experiment. + // It must match the pod template's labels. Each selector must be unique to the other selectors in the other templates + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; + + // Template describes the pods that will be created. + optional k8s.io.api.core.v1.PodTemplateSpec template = 5; +} + +// TemplateStatus is the status of a specific template of an Experiment +message TemplateStatus { + // Name of the template used to identity which hash to compare to the hash + optional string name = 1; + + // Total number of non-terminated pods targeted by this experiment (their labels match the selector). + optional int32 replicas = 2; + + // Total number of non-terminated pods targeted by this experiment that have the desired template spec. + optional int32 updatedReplicas = 3; + + // Total number of ready pods targeted by this experiment. + optional int32 readyReplicas = 4; + + // Total number of available pods (ready for at least minReadySeconds) targeted by this experiment. + optional int32 availableReplicas = 5; + + // CollisionCount count of hash collisions for the Experiment. The Experiment controller uses this + // field as a collision avoidance mechanism when it needs to create the name for the + // newest ReplicaSet. + // +optional + optional int32 collisionCount = 6; + + // Phase is the status of the ReplicaSet associated with the template + optional string status = 7; + + // Message is a message explaining the current status + optional string message = 8; + + // LastTransitionTime is the last time the replicaset transitioned, which resets the countdown + // on the ProgressDeadlineSeconds check. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 9; +} + +message ValueFrom { + // Secret is a reference to where a secret is stored. This field is one of the fields with valueFrom + // +optional + optional SecretKeyRef secretKeyRef = 1; + + // FieldRef is a reference to the fields in metadata which we are referencing. This field is one of the fields with + // valueFrom + // +optional + optional FieldRef fieldRef = 2; +} + +// WavefrontMetric defines the wavefront query to perform canary analysis +message WavefrontMetric { + // Address is the HTTP address and port of the wavefront server + optional string address = 1; + + // Query is a raw wavefront query to perform + optional string query = 2; +} + +message WebMetric { + // URL is the address of the web metric + optional string url = 1; + + // +patchMergeKey=key + // +patchStrategy=merge + // Headers are optional HTTP headers to use in the request + repeated WebMetricHeader headers = 2; + + // TimeoutSeconds is the timeout for the request in seconds (default: 10) + optional int64 timeoutSeconds = 3; + + // JSONPath is a JSON Path to use as the result variable (default: "{$}") + optional string jsonPath = 4; + + // Insecure skips host TLS verification + optional bool insecure = 5; +} + +message WebMetricHeader { + optional string key = 1; + + optional string value = 2; +} + diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 3dc68e930c..133331669c 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -22,10 +22,10 @@ import ( // Rollout is a specification for a Rollout resource type Rollout struct { metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` - Spec RolloutSpec `json:"spec"` - Status RolloutStatus `json:"status,omitempty"` + Spec RolloutSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` + Status RolloutStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // RolloutSpec is the spec for a Rollout resource @@ -33,34 +33,34 @@ type RolloutSpec struct { // Number of desired pods. This is a pointer to distinguish between explicit // zero and not specified. Defaults to 1. // +optional - Replicas *int32 `json:"replicas,omitempty"` + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,1,opt,name=replicas"` // Label selector for pods. Existing ReplicaSets whose pods are // selected by this will be the ones affected by this rollout. // It must match the pod template's labels. - Selector *metav1.LabelSelector `json:"selector"` + Selector *metav1.LabelSelector `json:"selector" protobuf:"bytes,2,opt,name=selector"` // Template describes the pods that will be created. - Template corev1.PodTemplateSpec `json:"template"` + Template corev1.PodTemplateSpec `json:"template" protobuf:"bytes,3,opt,name=template"` // Minimum number of seconds for which a newly created pod should be ready // without any of its container crashing, for it to be considered available. // Defaults to 0 (pod will be considered available as soon as it is ready) // +optional - MinReadySeconds int32 `json:"minReadySeconds,omitempty"` + MinReadySeconds int32 `json:"minReadySeconds,omitempty" protobuf:"varint,4,opt,name=minReadySeconds"` // The deployment strategy to use to replace existing pods with new ones. // +optional - Strategy RolloutStrategy `json:"strategy"` + Strategy RolloutStrategy `json:"strategy" protobuf:"bytes,5,opt,name=strategy"` // The number of old ReplicaSets to retain. If unspecified, will retain 10 old ReplicaSets - RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty"` + RevisionHistoryLimit *int32 `json:"revisionHistoryLimit,omitempty" protobuf:"varint,6,opt,name=revisionHistoryLimit"` // Paused pauses the rollout at its current step. - Paused bool `json:"paused,omitempty"` + Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"` // ProgressDeadlineSeconds The maximum time in seconds for a rollout to // make progress before it is considered to be failed. Argo Rollouts will // continue to process failed rollouts and a condition with a // ProgressDeadlineExceeded reason will be surfaced in the rollout status. // Note that progress will not be estimated during the time a rollout is paused. // Defaults to 600s. - ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty"` + ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,8,opt,name=progressDeadlineSeconds"` // RestartAt indicates when all the pods of a Rollout should be restarted - RestartAt *metav1.Time `json:"restartAt,omitempty"` + RestartAt *metav1.Time `json:"restartAt,omitempty" protobuf:"bytes,9,opt,name=restartAt"` } const ( @@ -84,72 +84,72 @@ const ( // RolloutStrategy defines strategy to apply during next rollout type RolloutStrategy struct { // +optional - BlueGreen *BlueGreenStrategy `json:"blueGreen,omitempty"` + BlueGreen *BlueGreenStrategy `json:"blueGreen,omitempty" protobuf:"bytes,1,opt,name=blueGreen"` // +optional - Canary *CanaryStrategy `json:"canary,omitempty"` + Canary *CanaryStrategy `json:"canary,omitempty" protobuf:"bytes,2,opt,name=canary"` } // BlueGreenStrategy defines parameters for Blue Green deployment type BlueGreenStrategy struct { // Name of the service that the rollout modifies as the active service. - ActiveService string `json:"activeService"` + ActiveService string `json:"activeService" protobuf:"bytes,1,opt,name=activeService"` // Name of the service that the rollout modifies as the preview service. // +optional - PreviewService string `json:"previewService,omitempty"` + PreviewService string `json:"previewService,omitempty" protobuf:"bytes,2,opt,name=previewService"` // PreviewReplicaCount is the number of replicas to run for the preview stack before the // switchover. Once the rollout is resumed the desired replicaset will be full scaled up before the switch occurs // +optional - PreviewReplicaCount *int32 `json:"previewReplicaCount,omitempty"` + PreviewReplicaCount *int32 `json:"previewReplicaCount,omitempty" protobuf:"varint,3,opt,name=previewReplicaCount"` // AutoPromotionEnabled indicates if the rollout should automatically promote the new ReplicaSet // to the active service or enter a paused state. If not specified, the default value is true. // +optional - AutoPromotionEnabled *bool `json:"autoPromotionEnabled,omitempty"` + AutoPromotionEnabled *bool `json:"autoPromotionEnabled,omitempty" protobuf:"varint,4,opt,name=autoPromotionEnabled"` // AutoPromotionSeconds is a duration in seconds in which to delay auto-promotion (default: 0). // The countdown begins after the preview ReplicaSet have reached full availability. // This option is ignored if autoPromotionEnabled is set to false. // +optional - AutoPromotionSeconds int32 `json:"autoPromotionSeconds,omitempty"` + AutoPromotionSeconds int32 `json:"autoPromotionSeconds,omitempty" protobuf:"varint,5,opt,name=autoPromotionSeconds"` // MaxUnavailable The maximum number of pods that can be unavailable during a restart operation. // Defaults to 25% of total replicas. // +optional - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,6,opt,name=maxUnavailable"` // ScaleDownDelaySeconds adds a delay before scaling down the previous replicaset. // If omitted, the Rollout waits 30 seconds before scaling down the previous ReplicaSet. // A minimum of 30 seconds is recommended to ensure IP table propagation across the nodes in // a cluster. See https://github.com/argoproj/argo-rollouts/issues/19#issuecomment-476329960 for // more information // +optional - ScaleDownDelaySeconds *int32 `json:"scaleDownDelaySeconds,omitempty"` + ScaleDownDelaySeconds *int32 `json:"scaleDownDelaySeconds,omitempty" protobuf:"varint,7,opt,name=scaleDownDelaySeconds"` // ScaleDownDelayRevisionLimit limits the number of old RS that can run at one time before getting scaled down // +optional - ScaleDownDelayRevisionLimit *int32 `json:"scaleDownDelayRevisionLimit,omitempty"` + ScaleDownDelayRevisionLimit *int32 `json:"scaleDownDelayRevisionLimit,omitempty" protobuf:"varint,8,opt,name=scaleDownDelayRevisionLimit"` // PrePromotionAnalysis configuration to run analysis before a selector switch - PrePromotionAnalysis *RolloutAnalysis `json:"prePromotionAnalysis,omitempty"` + PrePromotionAnalysis *RolloutAnalysis `json:"prePromotionAnalysis,omitempty" protobuf:"bytes,9,opt,name=prePromotionAnalysis"` // AntiAffinity enables anti-affinity rules for Blue Green deployment // +optional - AntiAffinity *AntiAffinity `json:"antiAffinity,omitempty"` + AntiAffinity *AntiAffinity `json:"antiAffinity,omitempty" protobuf:"bytes,10,opt,name=antiAffinity"` // PostPromotionAnalysis configuration to run analysis after a selector switch - PostPromotionAnalysis *RolloutAnalysis `json:"postPromotionAnalysis,omitempty"` + PostPromotionAnalysis *RolloutAnalysis `json:"postPromotionAnalysis,omitempty" protobuf:"bytes,11,opt,name=postPromotionAnalysis"` // PreviewMetadata specify labels and annotations which will be attached to the preview pods for // the duration which they act as a preview pod, and will be removed after - PreviewMetadata *PodTemplateMetadata `json:"previewMetadata,omitempty"` + PreviewMetadata *PodTemplateMetadata `json:"previewMetadata,omitempty" protobuf:"bytes,12,opt,name=previewMetadata"` // ActiveMetadata specify labels and annotations which will be attached to the active pods for // the duration which they act as a active pod, and will be removed after - ActiveMetadata *PodTemplateMetadata `json:"activeMetadata,omitempty"` + ActiveMetadata *PodTemplateMetadata `json:"activeMetadata,omitempty" protobuf:"bytes,13,opt,name=activeMetadata"` } // AntiAffinity defines which inter-pod scheduling rule to use for anti-affinity injection type AntiAffinity struct { // +optional - PreferredDuringSchedulingIgnoredDuringExecution *PreferredDuringSchedulingIgnoredDuringExecution `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty"` + PreferredDuringSchedulingIgnoredDuringExecution *PreferredDuringSchedulingIgnoredDuringExecution `json:"preferredDuringSchedulingIgnoredDuringExecution,omitempty" protobuf:"bytes,1,opt,name=preferredDuringSchedulingIgnoredDuringExecution"` // +optional - RequiredDuringSchedulingIgnoredDuringExecution *RequiredDuringSchedulingIgnoredDuringExecution `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty"` + RequiredDuringSchedulingIgnoredDuringExecution *RequiredDuringSchedulingIgnoredDuringExecution `json:"requiredDuringSchedulingIgnoredDuringExecution,omitempty" protobuf:"bytes,2,opt,name=requiredDuringSchedulingIgnoredDuringExecution"` } // PreferredDuringSchedulingIgnoredDuringExecution defines the weight of the anti-affinity injection type PreferredDuringSchedulingIgnoredDuringExecution struct { // Weight associated with matching the corresponding podAffinityTerm, in the range 1-100. - Weight int32 `json:"weight"` + Weight int32 `json:"weight" protobuf:"varint,1,opt,name=weight"` } // RequiredDuringSchedulingIgnoredDuringExecution defines inter-pod scheduling rule to be RequiredDuringSchedulingIgnoredDuringExecution @@ -159,15 +159,15 @@ type RequiredDuringSchedulingIgnoredDuringExecution struct{} type CanaryStrategy struct { // CanaryService holds the name of a service which selects pods with canary version and don't select any pods with stable version. // +optional - CanaryService string `json:"canaryService,omitempty"` + CanaryService string `json:"canaryService,omitempty" protobuf:"bytes,1,opt,name=canaryService"` // StableService holds the name of a service which selects pods with stable version and don't select any pods with canary version. // +optional - StableService string `json:"stableService,omitempty"` + StableService string `json:"stableService,omitempty" protobuf:"bytes,2,opt,name=stableService"` // Steps define the order of phases to execute the canary deployment // +optional - Steps []CanaryStep `json:"steps,omitempty"` + Steps []CanaryStep `json:"steps,omitempty" protobuf:"bytes,3,rep,name=steps"` // TrafficRouting hosts all the supported service meshes supported to enable more fine-grained traffic routing - TrafficRouting *RolloutTrafficRouting `json:"trafficRouting,omitempty"` + TrafficRouting *RolloutTrafficRouting `json:"trafficRouting,omitempty" protobuf:"bytes,4,opt,name=trafficRouting"` // MaxUnavailable The maximum number of pods that can be unavailable during the update. // Value can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%). @@ -180,7 +180,7 @@ type CanaryStrategy struct { // that at least 70% of original number of pods are available at all times // during the update. // +optional - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,5,opt,name=maxUnavailable"` // MaxSurge The maximum number of pods that can be scheduled above the original number of // pods. @@ -193,90 +193,90 @@ type CanaryStrategy struct { // new RC can be scaled up further, ensuring that total number of pods running // at any time during the update is at most 130% of original pods. // +optional - MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,6,opt,name=maxSurge"` // Analysis runs a separate analysisRun while all the steps execute. This is intended to be a continuous validation of the new ReplicaSet - Analysis *RolloutAnalysisBackground `json:"analysis,omitempty"` + Analysis *RolloutAnalysisBackground `json:"analysis,omitempty" protobuf:"bytes,7,opt,name=analysis"` // AntiAffinity enables anti-affinity rules for Canary deployment // +optional - AntiAffinity *AntiAffinity `json:"antiAffinity,omitempty"` + AntiAffinity *AntiAffinity `json:"antiAffinity,omitempty" protobuf:"bytes,8,opt,name=antiAffinity"` // CanaryMetadata specify labels and annotations which will be attached to the canary pods for // the duration which they act as a canary, and will be removed after - CanaryMetadata *PodTemplateMetadata `json:"canaryMetadata,omitempty"` + CanaryMetadata *PodTemplateMetadata `json:"canaryMetadata,omitempty" protobuf:"bytes,9,opt,name=canaryMetadata"` // StableMetadata specify labels and annotations which will be attached to the stable pods for // the duration which they act as a canary, and will be removed after - StableMetadata *PodTemplateMetadata `json:"stableMetadata,omitempty"` + StableMetadata *PodTemplateMetadata `json:"stableMetadata,omitempty" protobuf:"bytes,10,opt,name=stableMetadata"` } // ALBTrafficRouting configuration for ALB ingress controller to control traffic routing type ALBTrafficRouting struct { // Ingress refers to the name of an `Ingress` resource in the same namespace as the `Rollout` - Ingress string `json:"ingress"` + Ingress string `json:"ingress" protobuf:"bytes,1,opt,name=ingress"` // ServicePort refers to the port that the Ingress action should route traffic to - ServicePort int32 `json:"servicePort"` + ServicePort int32 `json:"servicePort" protobuf:"varint,2,opt,name=servicePort"` // RootService references the service in the ingress to the controller should add the action to - RootService string `json:"rootService,omitempty"` + RootService string `json:"rootService,omitempty" protobuf:"bytes,3,opt,name=rootService"` // AnnotationPrefix has to match the configured annotation prefix on the alb ingress controller // +optional - AnnotationPrefix string `json:"annotationPrefix,omitempty"` + AnnotationPrefix string `json:"annotationPrefix,omitempty" protobuf:"bytes,4,opt,name=annotationPrefix"` } // RolloutTrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing type RolloutTrafficRouting struct { // Istio holds Istio specific configuration to route traffic - Istio *IstioTrafficRouting `json:"istio,omitempty"` + Istio *IstioTrafficRouting `json:"istio,omitempty" protobuf:"bytes,1,opt,name=istio"` // Nginx holds Nginx Ingress specific configuration to route traffic - Nginx *NginxTrafficRouting `json:"nginx,omitempty"` + Nginx *NginxTrafficRouting `json:"nginx,omitempty" protobuf:"bytes,2,opt,name=nginx"` // Nginx holds ALB Ingress specific configuration to route traffic - ALB *ALBTrafficRouting `json:"alb,omitempty"` + ALB *ALBTrafficRouting `json:"alb,omitempty" protobuf:"bytes,3,opt,name=alb"` // SMI holds TrafficSplit specific configuration to route traffic - SMI *SMITrafficRouting `json:"smi,omitempty"` + SMI *SMITrafficRouting `json:"smi,omitempty" protobuf:"bytes,4,opt,name=smi"` } // SMITrafficRouting configuration for TrafficSplit Custom Resource to control traffic routing type SMITrafficRouting struct { // RootService holds the name of that clients use to communicate. // +optional - RootService string `json:"rootService,omitempty"` + RootService string `json:"rootService,omitempty" protobuf:"bytes,1,opt,name=rootService"` // TrafficSplitName holds the name of the TrafficSplit. // +optional - TrafficSplitName string `json:"trafficSplitName,omitempty"` + TrafficSplitName string `json:"trafficSplitName,omitempty" protobuf:"bytes,2,opt,name=trafficSplitName"` } // NginxTrafficRouting configuration for Nginx ingress controller to control traffic routing type NginxTrafficRouting struct { // AnnotationPrefix has to match the configured annotation prefix on the nginx ingress controller // +optional - AnnotationPrefix string `json:"annotationPrefix,omitempty"` + AnnotationPrefix string `json:"annotationPrefix,omitempty" protobuf:"bytes,1,opt,name=annotationPrefix"` // StableIngress refers to the name of an `Ingress` resource in the same namespace as the `Rollout` - StableIngress string `json:"stableIngress"` + StableIngress string `json:"stableIngress" protobuf:"bytes,2,opt,name=stableIngress"` // +optional - AdditionalIngressAnnotations map[string]string `json:"additionalIngressAnnotations,omitempty"` + AdditionalIngressAnnotations map[string]string `json:"additionalIngressAnnotations,omitempty" protobuf:"bytes,3,rep,name=additionalIngressAnnotations"` } // IstioTrafficRouting configuration for Istio service mesh to enable fine grain configuration type IstioTrafficRouting struct { // VirtualService references an Istio VirtualService to modify to shape traffic - VirtualService IstioVirtualService `json:"virtualService"` + VirtualService IstioVirtualService `json:"virtualService" protobuf:"bytes,1,opt,name=virtualService"` // DestinationRule references an Istio DestinationRule to modify to shape traffic - DestinationRule *IstioDestinationRule `json:"destinationRule,omitempty"` + DestinationRule *IstioDestinationRule `json:"destinationRule,omitempty" protobuf:"bytes,2,opt,name=destinationRule"` } // IstioVirtualService holds information on the virtual service the rollout needs to modify type IstioVirtualService struct { // Name holds the name of the VirtualService - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Routes list of routes within VirtualService to edit - Routes []string `json:"routes"` + Routes []string `json:"routes" protobuf:"bytes,2,rep,name=routes"` } // IstioDestinationRule is a reference to an Istio DestinationRule to modify and shape traffic type IstioDestinationRule struct { // Name holds the name of the DestinationRule - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // CanarySubsetName is the subset name to modify labels with canary ReplicaSet pod template hash value - CanarySubsetName string `json:"canarySubsetName"` + CanarySubsetName string `json:"canarySubsetName" protobuf:"bytes,2,opt,name=canarySubsetName"` // StableSubsetName is the subset name to modify labels with stable ReplicaSet pod template hash value - StableSubsetName string `json:"stableSubsetName"` + StableSubsetName string `json:"stableSubsetName" protobuf:"bytes,3,opt,name=stableSubsetName"` } // RolloutExperimentStep defines a template that is used to create a experiment for a step @@ -284,58 +284,58 @@ type RolloutExperimentStep struct { // Templates what templates that should be added to the experiment. Should be non-nil // +patchMergeKey=name // +patchStrategy=merge - Templates []RolloutExperimentTemplate `json:"templates" patchStrategy:"merge" patchMergeKey:"name"` + Templates []RolloutExperimentTemplate `json:"templates" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=templates"` // Duration is a duration string (e.g. 30s, 5m, 1h) that the experiment should run for // +optional - Duration DurationString `json:"duration,omitempty"` + Duration DurationString `json:"duration,omitempty" protobuf:"bytes,2,opt,name=duration,casttype=DurationString"` // Analyses reference which analysis templates to run with the experiment // +patchMergeKey=name // +patchStrategy=merge - Analyses []RolloutExperimentStepAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Analyses []RolloutExperimentStepAnalysisTemplateRef `json:"analyses,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,3,rep,name=analyses"` } type RolloutExperimentStepAnalysisTemplateRef struct { // Name is a name for this analysis template invocation - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run - TemplateName string `json:"templateName"` + TemplateName string `json:"templateName" protobuf:"bytes,2,opt,name=templateName"` // Whether to look for the templateName at cluster scope or namespace scope // +optional - ClusterScope bool `json:"clusterScope,omitempty"` + ClusterScope bool `json:"clusterScope,omitempty" protobuf:"varint,3,opt,name=clusterScope"` // Args the arguments that will be added to the AnalysisRuns // +patchMergeKey=name // +patchStrategy=merge - Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=args"` // RequiredForCompletion blocks the Experiment from completing until the analysis has completed - RequiredForCompletion bool `json:"requiredForCompletion,omitempty"` + RequiredForCompletion bool `json:"requiredForCompletion,omitempty" protobuf:"varint,5,opt,name=requiredForCompletion"` } // RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step type RolloutExperimentTemplate struct { // Name description of template that passed to the template - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // SpecRef indicates where the rollout should get the RS template from - SpecRef ReplicaSetSpecRef `json:"specRef"` + SpecRef ReplicaSetSpecRef `json:"specRef" protobuf:"bytes,2,opt,name=specRef,casttype=ReplicaSetSpecRef"` // Replicas replica count for the template // +optional - Replicas *int32 `json:"replicas,omitempty"` + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,3,opt,name=replicas"` // Metadata sets labels and annotations to use for the RS created from the template // +optional - Metadata PodTemplateMetadata `json:"metadata,omitempty"` + Metadata PodTemplateMetadata `json:"metadata,omitempty" protobuf:"bytes,4,opt,name=metadata"` // Selector overrides the selector to be used for the template's ReplicaSet. If omitted, will // use the same selector as the Rollout // +optional - Selector *metav1.LabelSelector `json:"selector,omitempty"` + Selector *metav1.LabelSelector `json:"selector,omitempty" protobuf:"bytes,5,opt,name=selector"` } // PodTemplateMetadata extra labels to add to the template type PodTemplateMetadata struct { // Labels Additional labels to add to the experiment // +optional - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,1,rep,name=labels"` // Annotations additional annotations to add to the experiment // +optional - Annotations map[string]string `json:"annotations,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,2,rep,name=annotations"` } // ReplicaSetSpecRef defines which RS that the experiment's template will use. @@ -351,81 +351,81 @@ const ( // CanaryStep defines a step of a canary deployment. type CanaryStep struct { // SetWeight sets what percentage of the newRS should receive - SetWeight *int32 `json:"setWeight,omitempty"` + SetWeight *int32 `json:"setWeight,omitempty" protobuf:"varint,1,opt,name=setWeight"` // Pause freezes the rollout by setting spec.Paused to true. // A Rollout will resume when spec.Paused is reset to false. // +optional - Pause *RolloutPause `json:"pause,omitempty"` + Pause *RolloutPause `json:"pause,omitempty" protobuf:"bytes,2,opt,name=pause"` // Experiment defines the experiment object that should be created - Experiment *RolloutExperimentStep `json:"experiment,omitempty"` + Experiment *RolloutExperimentStep `json:"experiment,omitempty" protobuf:"bytes,3,opt,name=experiment"` // Analysis defines the AnalysisRun that will run for a step - Analysis *RolloutAnalysis `json:"analysis,omitempty"` + Analysis *RolloutAnalysis `json:"analysis,omitempty" protobuf:"bytes,4,opt,name=analysis"` // SetCanaryScale defines how to scale the newRS without changing traffic weight // +optional - SetCanaryScale *SetCanaryScale `json:"setCanaryScale,omitempty"` + SetCanaryScale *SetCanaryScale `json:"setCanaryScale,omitempty" protobuf:"bytes,5,opt,name=setCanaryScale"` } // SetCanaryScale defines how to scale the newRS without changing traffic weight type SetCanaryScale struct { // Weight sets the percentage of replicas the newRS should have // +optional - Weight *int32 `json:"weight,omitempty"` + Weight *int32 `json:"weight,omitempty" protobuf:"varint,1,opt,name=weight"` // Replicas sets the number of replicas the newRS should have // +optional - Replicas *int32 `json:"replicas,omitempty"` + Replicas *int32 `json:"replicas,omitempty" protobuf:"varint,2,opt,name=replicas"` // MatchTrafficWeight cancels out previously set Replicas or Weight, effectively activating SetWeight // +optional - MatchTrafficWeight bool `json:"matchTrafficWeight,omitempty"` + MatchTrafficWeight bool `json:"matchTrafficWeight,omitempty" protobuf:"varint,3,opt,name=matchTrafficWeight"` } // RolloutAnalysisBackground defines a template that is used to create a background analysisRun type RolloutAnalysisBackground struct { - RolloutAnalysis `json:",inline"` + RolloutAnalysis `json:",inline" protobuf:"bytes,1,opt,name=rolloutAnalysis"` // StartingStep indicates which step the background analysis should start on // If not listed, controller defaults to 0 - StartingStep *int32 `json:"startingStep,omitempty"` + StartingStep *int32 `json:"startingStep,omitempty" protobuf:"varint,2,opt,name=startingStep"` } // RolloutAnalysis defines a template that is used to create a analysisRun type RolloutAnalysis struct { //Templates reference to a list of analysis templates to combine for an AnalysisRun - Templates []RolloutAnalysisTemplate `json:"templates,omitempty"` + Templates []RolloutAnalysisTemplate `json:"templates,omitempty" protobuf:"bytes,1,rep,name=templates"` // Args the arguments that will be added to the AnalysisRuns // +patchMergeKey=name // +patchStrategy=merge - Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Args []AnalysisRunArgument `json:"args,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=args"` } type RolloutAnalysisTemplate struct { //TemplateName name of template to use in AnalysisRun // +optional - TemplateName string `json:"templateName"` + TemplateName string `json:"templateName" protobuf:"bytes,1,opt,name=templateName"` // Whether to look for the templateName at cluster scope or namespace scope // +optional - ClusterScope bool `json:"clusterScope,omitempty"` + ClusterScope bool `json:"clusterScope,omitempty" protobuf:"varint,2,opt,name=clusterScope"` } // AnalysisRunArgument argument to add to analysisRun type AnalysisRunArgument struct { // Name argument name - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Value a hardcoded value for the argument. This field is a one of field with valueFrom - Value string `json:"value,omitempty"` + Value string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` // ValueFrom A reference to where the value is stored. This field is a one of field with valueFrom - ValueFrom *ArgumentValueFrom `json:"valueFrom,omitempty"` + ValueFrom *ArgumentValueFrom `json:"valueFrom,omitempty" protobuf:"bytes,3,opt,name=valueFrom"` } // ArgumentValueFrom defines references to fields within resources to grab for the value (i.e. Pod Template Hash) type ArgumentValueFrom struct { // PodTemplateHashValue gets the value from one of the children ReplicaSet's Pod Template Hash - PodTemplateHashValue *ValueFromPodTemplateHash `json:"podTemplateHashValue,omitempty"` + PodTemplateHashValue *ValueFromPodTemplateHash `json:"podTemplateHashValue,omitempty" protobuf:"bytes,1,opt,name=podTemplateHashValue,casttype=ValueFromPodTemplateHash"` //FieldRef - FieldRef *FieldRef `json:"fieldRef,omitempty"` + FieldRef *FieldRef `json:"fieldRef,omitempty" protobuf:"bytes,2,opt,name=fieldRef"` } type FieldRef struct { // Required: Path of the field to select in the specified API version - FieldPath string `json:"fieldPath"` + FieldPath string `json:"fieldPath" protobuf:"bytes,1,opt,name=fieldPath"` } // ValueFromPodTemplateHash indicates which ReplicaSet pod template pod hash to use @@ -457,7 +457,7 @@ const ( type RolloutPause struct { // Duration the amount of time to wait before moving to the next step. // +optional - Duration *intstr.IntOrString `json:"duration,omitempty"` + Duration *intstr.IntOrString `json:"duration,omitempty" protobuf:"bytes,1,opt,name=duration"` } // DurationSeconds converts the pause duration to seconds @@ -511,113 +511,113 @@ const ( // PauseCondition the reason for a pause and when it started type PauseCondition struct { - Reason PauseReason `json:"reason"` - StartTime metav1.Time `json:"startTime"` + Reason PauseReason `json:"reason" protobuf:"bytes,1,opt,name=reason,casttype=PauseReason"` + StartTime metav1.Time `json:"startTime" protobuf:"bytes,2,opt,name=startTime"` } // RolloutStatus is the status for a Rollout resource type RolloutStatus struct { // Abort cancel the current rollout progression - Abort bool `json:"abort,omitempty"` + Abort bool `json:"abort,omitempty" protobuf:"varint,1,opt,name=abort"` // PauseConditions indicates why the rollout is currently paused - PauseConditions []PauseCondition `json:"pauseConditions,omitempty"` + PauseConditions []PauseCondition `json:"pauseConditions,omitempty" protobuf:"bytes,2,rep,name=pauseConditions"` // ControllerPause indicates the controller has paused the rollout. It is set to true when // the controller adds a pause condition. This field helps to discern the scenario where a // rollout was resumed after being paused by the controller (e.g. via the plugin). In that // situation, the pauseConditions would have been cleared , but controllerPause would still be // set to true. - ControllerPause bool `json:"controllerPause,omitempty"` + ControllerPause bool `json:"controllerPause,omitempty" protobuf:"varint,3,opt,name=controllerPause"` // AbortedAt indicates the controller reconciled an aborted rollout. The controller uses this to understand if // the controller needs to do some specific work when a Rollout is aborted. For example, the reconcileAbort is used // to indicate if the Rollout should enter an aborted state when the latest AnalysisRun is a failure, or the controller // has already put the Rollout into an aborted and should create a new AnalysisRun. - AbortedAt *metav1.Time `json:"abortedAt,omitempty"` + AbortedAt *metav1.Time `json:"abortedAt,omitempty" protobuf:"bytes,4,opt,name=abortedAt"` // CurrentPodHash the hash of the current pod template // +optional - CurrentPodHash string `json:"currentPodHash,omitempty"` + CurrentPodHash string `json:"currentPodHash,omitempty" protobuf:"bytes,5,opt,name=currentPodHash"` // CurrentStepHash the hash of the current list of steps for the current strategy. This is used to detect when the // list of current steps change // +optional - CurrentStepHash string `json:"currentStepHash,omitempty"` + CurrentStepHash string `json:"currentStepHash,omitempty" protobuf:"bytes,6,opt,name=currentStepHash"` // Total number of non-terminated pods targeted by this rollout (their labels match the selector). // +optional - Replicas int32 `json:"replicas,omitempty"` + Replicas int32 `json:"replicas,omitempty" protobuf:"varint,7,opt,name=replicas"` // Total number of non-terminated pods targeted by this rollout that have the desired template spec. // +optional - UpdatedReplicas int32 `json:"updatedReplicas,omitempty"` + UpdatedReplicas int32 `json:"updatedReplicas,omitempty" protobuf:"varint,8,opt,name=updatedReplicas"` // Total number of ready pods targeted by this rollout. // +optional - ReadyReplicas int32 `json:"readyReplicas,omitempty"` + ReadyReplicas int32 `json:"readyReplicas,omitempty" protobuf:"varint,9,opt,name=readyReplicas"` // Total number of available pods (ready for at least minReadySeconds) targeted by this rollout. // +optional - AvailableReplicas int32 `json:"availableReplicas,omitempty"` + AvailableReplicas int32 `json:"availableReplicas,omitempty" protobuf:"varint,10,opt,name=availableReplicas"` // CurrentStepIndex defines the current step of the rollout is on. If the current step index is null, the // controller will execute the rollout. // +optional - CurrentStepIndex *int32 `json:"currentStepIndex,omitempty"` + CurrentStepIndex *int32 `json:"currentStepIndex,omitempty" protobuf:"varint,11,opt,name=currentStepIndex"` // Count of hash collisions for the Rollout. The Rollout controller uses this // field as a collision avoidance mechanism when it needs to create the name for the // newest ReplicaSet. // +optional - CollisionCount *int32 `json:"collisionCount,omitempty"` + CollisionCount *int32 `json:"collisionCount,omitempty" protobuf:"varint,12,opt,name=collisionCount"` // The generation observed by the rollout controller by taking a hash of the spec. // +optional - ObservedGeneration string `json:"observedGeneration,omitempty"` + ObservedGeneration string `json:"observedGeneration,omitempty" protobuf:"bytes,13,opt,name=observedGeneration"` // Conditions a list of conditions a rollout can have. // +optional - Conditions []RolloutCondition `json:"conditions,omitempty"` + Conditions []RolloutCondition `json:"conditions,omitempty" protobuf:"bytes,14,rep,name=conditions"` // Canary describes the state of the canary rollout // +optional - Canary CanaryStatus `json:"canary,omitempty"` + Canary CanaryStatus `json:"canary,omitempty" protobuf:"bytes,15,opt,name=canary"` // BlueGreen describes the state of the bluegreen rollout // +optional - BlueGreen BlueGreenStatus `json:"blueGreen,omitempty"` + BlueGreen BlueGreenStatus `json:"blueGreen,omitempty" protobuf:"bytes,16,opt,name=blueGreen"` // HPAReplicas the number of non-terminated replicas that are receiving active traffic // +optional - HPAReplicas int32 `json:"HPAReplicas,omitempty"` + HPAReplicas int32 `json:"HPAReplicas,omitempty" protobuf:"varint,17,opt,name=HPAReplicas"` // Selector that identifies the pods that are receiving active traffic // +optional - Selector string `json:"selector,omitempty"` + Selector string `json:"selector,omitempty" protobuf:"bytes,18,opt,name=selector"` // StableRS indicates the replicaset that has successfully rolled out // +optional - StableRS string `json:"stableRS,omitempty"` + StableRS string `json:"stableRS,omitempty" protobuf:"bytes,19,opt,name=stableRS"` // RestartedAt indicates last time a Rollout was restarted - RestartedAt *metav1.Time `json:"restartedAt,omitempty"` + RestartedAt *metav1.Time `json:"restartedAt,omitempty" protobuf:"bytes,20,opt,name=restartedAt"` // PromoteFull indicates if the rollout should perform a full promotion, skipping analysis and pauses. - PromoteFull bool `json:"promoteFull,omitempty"` + PromoteFull bool `json:"promoteFull,omitempty" protobuf:"varint,21,opt,name=promoteFull"` } // BlueGreenStatus status fields that only pertain to the blueGreen rollout type BlueGreenStatus struct { // PreviewSelector indicates which replicas set the preview service is serving traffic to // +optional - PreviewSelector string `json:"previewSelector,omitempty"` + PreviewSelector string `json:"previewSelector,omitempty" protobuf:"bytes,1,opt,name=previewSelector"` // ActiveSelector indicates which replicas set the active service is serving traffic to // +optional - ActiveSelector string `json:"activeSelector,omitempty"` + ActiveSelector string `json:"activeSelector,omitempty" protobuf:"bytes,2,opt,name=activeSelector"` // ScaleUpPreviewCheckPoint indicates that the Replicaset receiving traffic from the preview service is ready to be scaled up after the rollout is unpaused // +optional - ScaleUpPreviewCheckPoint bool `json:"scaleUpPreviewCheckPoint,omitempty"` + ScaleUpPreviewCheckPoint bool `json:"scaleUpPreviewCheckPoint,omitempty" protobuf:"varint,3,opt,name=scaleUpPreviewCheckPoint"` // PrePromotionAnalysisRunStatus indicates the status of the current prepromotion analysis run - PrePromotionAnalysisRunStatus *RolloutAnalysisRunStatus `json:"prePromotionAnalysisRunStatus,omitempty"` + PrePromotionAnalysisRunStatus *RolloutAnalysisRunStatus `json:"prePromotionAnalysisRunStatus,omitempty" protobuf:"bytes,4,opt,name=prePromotionAnalysisRunStatus"` // PostPromotionAnalysisRunStatus indicates the status of the current post promotion analysis run - PostPromotionAnalysisRunStatus *RolloutAnalysisRunStatus `json:"postPromotionAnalysisRunStatus,omitempty"` + PostPromotionAnalysisRunStatus *RolloutAnalysisRunStatus `json:"postPromotionAnalysisRunStatus,omitempty" protobuf:"bytes,5,opt,name=postPromotionAnalysisRunStatus"` } // CanaryStatus status fields that only pertain to the canary rollout type CanaryStatus struct { // CurrentStepAnalysisRunStatus indicates the status of the current step analysis run - CurrentStepAnalysisRunStatus *RolloutAnalysisRunStatus `json:"currentStepAnalysisRunStatus,omitempty"` + CurrentStepAnalysisRunStatus *RolloutAnalysisRunStatus `json:"currentStepAnalysisRunStatus,omitempty" protobuf:"bytes,1,opt,name=currentStepAnalysisRunStatus"` // CurrentBackgroundAnalysisRunStatus indicates the status of the current background analysis run - CurrentBackgroundAnalysisRunStatus *RolloutAnalysisRunStatus `json:"currentBackgroundAnalysisRunStatus,omitempty"` + CurrentBackgroundAnalysisRunStatus *RolloutAnalysisRunStatus `json:"currentBackgroundAnalysisRunStatus,omitempty" protobuf:"bytes,2,opt,name=currentBackgroundAnalysisRunStatus"` // CurrentExperiment indicates the running experiment - CurrentExperiment string `json:"currentExperiment,omitempty"` + CurrentExperiment string `json:"currentExperiment,omitempty" protobuf:"bytes,3,opt,name=currentExperiment"` } type RolloutAnalysisRunStatus struct { - Name string `json:"name"` - Status AnalysisPhase `json:"status"` - Message string `json:"message,omitempty"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` + Status AnalysisPhase `json:"status" protobuf:"bytes,2,opt,name=status,casttype=AnalysisPhase"` + Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` } // RolloutConditionType defines the conditions of Rollout @@ -644,17 +644,17 @@ const ( // RolloutCondition describes the state of a rollout at a certain point. type RolloutCondition struct { // Type of deployment condition. - Type RolloutConditionType `json:"type"` + Type RolloutConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=RolloutConditionType"` // Phase of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status"` + Status corev1.ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=k8s.io/api/core/v1.ConditionStatus"` // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,3,opt,name=lastUpdateTime"` // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,4,opt,name=lastTransitionTime"` // The reason for the condition's last transition. - Reason string `json:"reason"` + Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` // A human readable message indicating details about the transition. - Message string `json:"message"` + Message string `json:"message" protobuf:"bytes,6,opt,name=message"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -662,7 +662,30 @@ type RolloutCondition struct { // RolloutList is a list of Rollout resources type RolloutList struct { metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata"` + metav1.ListMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` - Items []Rollout `json:"items"` + Items []Rollout `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// RolloutInfo is information about a rollout +type RolloutInfo struct { + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + Status string `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` + Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` + Icon string `json:"icon,omitempty" protobuf:"bytes,4,opt,name=icon"` + Strategy string `json:"strategy,omitempty" protobuf:"bytes,5,opt,name=strategy"` + Step string `json:"step,omitempty" protobuf:"bytes,6,opt,name=step"` + SetWeight string `json:"setWeight,omitempty" protobuf:"bytes,7,opt,name=setWeight"` + ActualWeight string `json:"actualWeight,omitempty" protobuf:"bytes,8,opt,name=actualWeight"` + + // Ready int32 + // Current int32 + // Desired int32 + // Updated int32 + // Available int32 + + // ReplicaSets []ReplicaSetInfo + // Experiments []ExperimentInfo + // AnalysisRuns []AnalysisRunInfo } diff --git a/server/server.go b/server/server.go new file mode 100644 index 0000000000..aa3edc32e1 --- /dev/null +++ b/server/server.go @@ -0,0 +1,56 @@ +package server + +import ( + "context" + "time" + + "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" + + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" +) + +type ArgoRolloutsServer struct { + viewController viewcontroller.RolloutViewController +} + +// RolloutInfo returns info stream for requested rollout +func (s* ArgoRolloutsServer) RolloutInfo(q *rollout.RolloutInfoRequest, ws rollout.RolloutService_WatchInfoServer) error { + o := options.ArgoRolloutsOptions{} + + controller := viewcontroller.NewRolloutViewController(q.Namespace, q.Name, o.KubeClientset(), o.RolloutsClientset()) + ctx := context.Background() + controller.Start(ctx) + + rolloutUpdates := make(chan *info.RolloutInfo) + controller.RegisterCallback(func(roInfo *info.RolloutInfo) { + rolloutUpdates <- roInfo + }) + go func() { + rolloutUpdates := make(chan *info.RolloutInfo) + ticker := time.NewTicker(time.Second) + var currRolloutInfo *info.RolloutInfo + var preventFlicker time.Time + + for { + select { + case roInfo := <-rolloutUpdates: + currRolloutInfo = roInfo + case <-ticker.C: + case <-rolloutUpdates: + return + } + if currRolloutInfo != nil && time.Now().After(preventFlicker.Add(200*time.Millisecond)) { + ws.Send(&v1alpha1.RolloutInfo{ + Status: currRolloutInfo.Status, + }); + preventFlicker = time.Now() + } + } + }() + controller.Run(ctx) + close(rolloutUpdates) + return nil +} \ No newline at end of file From 1ec117a9505e18d220b2273696bbec844aae8cc8 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Fri, 26 Feb 2021 17:48:35 -0800 Subject: [PATCH 002/112] Add stub for rollouts server command Signed-off-by: Remington Breeze --- cmd/rollouts-server/main.go | 44 ++++++++++++++++++++++++++++++++++++ server/server.go | 45 ++++++++++++++++++++++++++++++++++++- 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 cmd/rollouts-server/main.go diff --git a/cmd/rollouts-server/main.go b/cmd/rollouts-server/main.go new file mode 100644 index 0000000000..a6be0c499d --- /dev/null +++ b/cmd/rollouts-server/main.go @@ -0,0 +1,44 @@ +package make + +import ( + "context" + "fmt" + "os" + + "github.com/argoproj/argo-rollouts/server" + "github.com/spf13/cobra" +) + +const ( + // CLIName is the name of the CLI + cliName = "argo-rollouts-server" +) + +func newCommand() *cobra.Command { + var ( + listenPort int + ) + + var command = &cobra.Command{ + Use: cliName, + Short: "argo-rollouts-server is an API server that provides UI assets and Rollout data", + Run: func(c *cobra.Command, args []string) { + for { + ctx := context.Background() + ctx, cancel := context.WithCancel(ctx) + argorollouts := server.NewServer(ctx) + argorollouts.Run(ctx, listenPort) + cancel() + } + }, + } + command.Flags().IntVar(&listenPort, "port", 3100, "Listen on given port") + return command; +} + +func main() { + if err := newCommand().Execute(); err != nil { + fmt.Println(err) + os.Exit(1) + } +} \ No newline at end of file diff --git a/server/server.go b/server/server.go index aa3edc32e1..27321262c4 100644 --- a/server/server.go +++ b/server/server.go @@ -2,10 +2,14 @@ package server import ( "context" + "fmt" + "net" + "net/http" "time" "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" + "k8s.io/apimachinery/pkg/util/wait" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" @@ -13,7 +17,46 @@ import ( ) type ArgoRolloutsServer struct { - viewController viewcontroller.RolloutViewController +} + +// Run starts the server +func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { + var httpS *http.Server + httpS = &http.Server{ + Addr: addr, + Handler: http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + target := "https://" + req.Host + target += req.URL.Path + if len(req.URL.RawQuery) > 0 { + target += "?" + req.URL.RawQuery + } + http.Redirect(w, req, target, http.StatusTemporaryRedirect) + }), + } + + // Start listener + var conn net.Listener + var realErr error + _ = wait.ExponentialBackoff(backoff, func() (bool, error) { + conn, realErr = net.Listen("tcp", fmt.Sprintf(":%d", port)) + if realErr != nil { + a.log.Warnf("failed listen: %v", realErr) + return false, nil + } + return true, nil + }) + errors.CheckError(realErr) + + log.Infof("argo-rollouts %s serving on port %d (url: %s, tls: false, namespace: %s)", + common.GetVersion(), port, s.settings.URL, s.Namespace) + + go func () { + httpS.Serve(httpL) + } + + s.stopCh = make(chan struct{}) + <-s.stopCh + errors.CheckError(conn.Close()) } // RolloutInfo returns info stream for requested rollout From 9b2a1476147f00683308728be643bfe3138e70cd Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Mon, 1 Mar 2021 16:42:18 -0800 Subject: [PATCH 003/112] More work on server Signed-off-by: Remington Breeze --- Makefile | 8 +- cmd/rollouts-server/main.go | 22 +- go.mod | 8 +- go.sum | 168 +-- pkg/apiclient/rollout/rollout.pb.go | 275 +++- pkg/apiclient/rollout/rollout.pb.gw.go | 63 + pkg/apiclient/rollout/rollout.proto | 12 +- pkg/apiclient/rollout/rollout.swagger.json | 25 + pkg/apis/rollouts/v1alpha1/analysis_types.go | 8 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 1257 ++++++------------ pkg/apis/rollouts/v1alpha1/generated.proto | 67 +- server/server.go | 116 +- utils/json/json.go | 35 +- 13 files changed, 987 insertions(+), 1077 deletions(-) diff --git a/Makefile b/Makefile index c3265850dc..efb0981c7b 100644 --- a/Makefile +++ b/Makefile @@ -131,13 +131,15 @@ $(GOPATH)/bin/swagger: $(GOPATH)/bin/goimports: $(call go_install,golang.org/x/tools/cmd/goimports) +APIMACHINERY_PKGS=k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,+k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/batch/v1 + pkg/apis/rollouts/v1alpha1/generated.proto: $(GOPATH)/bin/go-to-protobuf $(PROTO_BINARIES) $(TYPES) [ -e vendor ] || go mod vendor go mod download ${GOPATH}/bin/go-to-protobuf \ --go-header-file=./hack/custom-boilerplate.go.txt \ --packages=github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1 \ - --apimachinery-packages=+k8s.io/apimachinery/pkg/util/intstr,+k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/runtime/schema,+k8s.io/apimachinery/pkg/runtime,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/api/core/v1,k8s.io/api/policy/v1beta1 \ + --apimachinery-packages=${APIMACHINERY_PKGS} \ --proto-import ./vendor touch pkg/apis/rollouts/v1alpha1/generated.proto @@ -148,6 +150,10 @@ pkg/apiclient/rollout/rollout.swagger.json: $(PROTO_BINARIES) $(TYPES) pkg/apicl controller: clean-debug CGO_ENABLED=0 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-controller ./cmd/rollouts-controller +.PHONY: server +server: clean-debug + CGO_ENABLED=0 go build -v -ldflags '${LDFLAGS}' -o ${DIST_DIR}/rollouts-server ./cmd/rollouts-server + .PHONY: plugin plugin: CGO_ENABLED=0 go build -v -i -ldflags '${LDFLAGS}' -o ${DIST_DIR}/${PLUGIN_CLI_NAME} ./cmd/kubectl-argo-rollouts diff --git a/cmd/rollouts-server/main.go b/cmd/rollouts-server/main.go index a6be0c499d..0762bb096b 100644 --- a/cmd/rollouts-server/main.go +++ b/cmd/rollouts-server/main.go @@ -1,11 +1,14 @@ -package make +package main import ( "context" "fmt" "os" + "k8s.io/client-go/tools/clientcmd" + "github.com/argoproj/argo-rollouts/server" + "github.com/argoproj/pkg/errors" "github.com/spf13/cobra" ) @@ -14,24 +17,39 @@ const ( cliName = "argo-rollouts-server" ) +func AddKubectlFlagsToCmd(cmd *cobra.Command) clientcmd.ClientConfig { + loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() + loadingRules.DefaultClientConfig = &clientcmd.DefaultClientConfig + overrides := clientcmd.ConfigOverrides{} + kflags := clientcmd.RecommendedConfigOverrideFlags("") + cmd.PersistentFlags().StringVar(&loadingRules.ExplicitPath, "kubeconfig", "", "Path to a kube config. Only required if out-of-cluster") + clientcmd.BindOverrideFlags(&overrides, cmd.PersistentFlags(), kflags) + return clientcmd.NewInteractiveDeferredLoadingClientConfig(loadingRules, &overrides, os.Stdin) +} + func newCommand() *cobra.Command { var ( listenPort int + clientConfig clientcmd.ClientConfig ) var command = &cobra.Command{ Use: cliName, Short: "argo-rollouts-server is an API server that provides UI assets and Rollout data", Run: func(c *cobra.Command, args []string) { + namespace, _, err := clientConfig.Namespace() + errors.CheckError(err) for { ctx := context.Background() ctx, cancel := context.WithCancel(ctx) - argorollouts := server.NewServer(ctx) + argorollouts := server.NewServer(namespace) argorollouts.Run(ctx, listenPort) cancel() } }, } + + clientConfig = AddKubectlFlagsToCmd(command) command.Flags().IntVar(&listenPort, "port", 3100, "Listen on given port") return command; } diff --git a/go.mod b/go.mod index 5fa7fd8d26..5d22258409 100644 --- a/go.mod +++ b/go.mod @@ -4,8 +4,10 @@ go 1.15 require ( github.com/antonmedv/expr v1.8.9 + github.com/argoproj/pkg v0.7.0 github.com/aws/aws-sdk-go-v2/config v1.0.0 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.0.0 + github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect github.com/evanphx/json-patch/v5 v5.2.0 github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 @@ -13,8 +15,9 @@ require ( github.com/gogo/protobuf v1.3.1 github.com/golang/protobuf v1.4.3 github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect - github.com/grpc-ecosystem/grpc-gateway v1.9.5 + github.com/grpc-ecosystem/grpc-gateway v1.14.6 github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/improbable-eng/grpc-web v0.14.0 // indirect github.com/jstemmer/go-junit-report v0.9.1 github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a github.com/lunixbochs/vtclean v1.0.0 // indirect @@ -22,8 +25,10 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.8.0 github.com/prometheus/common v0.15.0 + github.com/rs/cors v1.7.0 // indirect github.com/servicemeshinterface/smi-sdk-go v0.4.1 github.com/sirupsen/logrus v1.7.0 + github.com/soheilhy/cmux v0.1.4 github.com/spaceapegames/go-wavefront v1.8.1 github.com/spf13/cobra v1.1.1 github.com/stretchr/testify v1.7.0 @@ -48,6 +53,7 @@ require ( k8s.io/kubectl v0.19.4 k8s.io/kubernetes v1.20.4 k8s.io/utils v0.0.0-20201110183641-67b214c5f920 + nhooyr.io/websocket v1.8.6 // indirect sigs.k8s.io/controller-tools v0.4.1 ) diff --git a/go.sum b/go.sum index 460afd0679..8e6da0fff4 100644 --- a/go.sum +++ b/go.sum @@ -3,7 +3,6 @@ bazil.org/fuse v0.0.0-20180421153158-65cc252bf669/go.mod h1:Xbm+BRKSBEpa4q4hTSxo bitbucket.org/bertimus9/systemstat v0.0.0-20180207000608-0eeff89b0690/go.mod h1:Ulb78X89vxKYgdL24HMTiXYHlyHEvruOj1ZPlqeNEZM= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.39.0/go.mod h1:rVLT6fkc8chs9sfPtFc1SBH6em7n+ZoXaG+87tDISts= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= @@ -60,33 +59,25 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7O github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.9.0 h1:MRvx8gncNaXJqOoLmhNjUAKh33JJF8LyxPhomEtOsjs= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest v0.9.3 h1:OZEIaBbMdUE/Js+BQKlpO81XlISgipr6yDJ+PSwsgi4= github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.11.1 h1:eVvIXUKiTgv++6YnWb42DUA1YL7qDugnKP0HljexdnQ= github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= -github.com/Azure/go-autorest/autorest/adal v0.5.0 h1:q2gDruN08/guU9vAjuPWff0+QIrpH6ediguzdAzXAUU= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/adal v0.8.1/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= -github.com/Azure/go-autorest/autorest/adal v0.8.3 h1:O1AGG9Xig71FxdX9HO5pGNyZ7TbSyHaVg+5eJO/jSGw= github.com/Azure/go-autorest/autorest/adal v0.8.3/go.mod h1:ZjhuQClTqx435SRJ2iMlOxPYt3d2C/T/7TiQCVZSn3Q= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5 h1:Y3bBUV4rTuxenJJs41HU3qmqsb+auo+a3Lz+PlJPpL0= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/azure/auth v0.4.2/go.mod h1:90gmfKdlmKgfjUpnCEpOJzsUEjrWDSLwHIG73tSXddM= github.com/Azure/go-autorest/autorest/azure/cli v0.3.1/go.mod h1:ZG5p860J94/0kI9mNJVoIoLgXcirM2gF5i2kWloofxw= -github.com/Azure/go-autorest/autorest/date v0.1.0 h1:YGrhWfrgtFs84+h0o46rJrlmsZtyZRg470CqAXTZaGM= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0 h1:yW+Zlqf26583pE43KhfnhFcdmSWlm5Ew6bxipnr/tbM= github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0 h1:Ww5g4zThfD/6cLb4z6xxgeyDa7QDkizMkJKe0ysZXp0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc= github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= @@ -95,15 +86,12 @@ github.com/Azure/go-autorest/autorest/to v0.2.0/go.mod h1:GunWKJp1AEqgMaGLV+iocm github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= github.com/Azure/go-autorest/autorest/validation v0.1.0/go.mod h1:Ha3z/SqBeaalWQvokg3NZAlQTalVMtOIAs1aGK7G6u8= github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= -github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/logger v0.2.0 h1:e4RVHVZKC5p6UANLJHkM4OfR1UKZPj8Wt8Pcx+3oqrE= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= @@ -142,15 +130,14 @@ github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3 github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE= 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/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antonmedv/expr v1.8.9 h1:O9stiHmHHww9b4ozhPx7T6BK7fXfOCHJ8ybxf0833zw= github.com/antonmedv/expr v1.8.9/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= @@ -159,6 +146,8 @@ github.com/apex/log v1.9.0/go.mod h1:m82fZlWIuiWzWP04XCTXmnX0xRkYYbCdYn8jbJeLBEA github.com/apex/logs v1.0.0/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo= github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE= github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= +github.com/argoproj/pkg v0.7.0 h1:fhCONBGjX5FuB+AlpXHc1Lo3FGuNDB7Zr+Q7S0my5ck= +github.com/argoproj/pkg v0.7.0/go.mod h1:ra+bQPmbVAoEL+gYSKesuigt4m49i3Qa3mE/xQcjCiA= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= @@ -173,10 +162,9 @@ github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZo github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go v1.31.13 h1:UeWMTRTL0XAKLR7vxDL4/u7KOtz/LtfJr+lXtxN4YEQ= github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= +github.com/aws/aws-sdk-go v1.33.16/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= -github.com/aws/aws-sdk-go-v2 v0.18.0 h1:qZ+woO4SamnH/eEbjM2IDLhRNwIwND/RQyVlBLp3Jqg= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.0.0 h1:ncEVPoHArsG+HjoDe/3ex/TG1CbLwMQ4eaWj0UGdyTo= github.com/aws/aws-sdk-go-v2 v1.0.0/go.mod h1:smfAbmpW+tcRVuNUjo3MOArSZmW72t62rkCzc2i0TWM= @@ -203,7 +191,6 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115/go.mod h1:zVt7zX3K/aDCk9Tj+VM7YymsX66ERvzCJzw8rFCX2JU= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/blakesmith/ar v0.0.0-20190502131153-809d4375e1fb/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= -github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17OJKJXD2Cfs= github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= @@ -234,7 +221,6 @@ github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/clusterhq/flocker-go v0.0.0-20160920122132-2b8b7259d313/go.mod h1:P1wt9Z3DP8O6W3rvwCt0REIlshg1InHImaLW0t3ObY0= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= @@ -258,15 +244,12 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f h1:lBNOc5arjvs8E5mO2tbpBpLoyyu8B6e44T7hJy6potg= 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/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -281,8 +264,9 @@ 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/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/denis-tingajkin/go-header v0.3.1/go.mod h1:sq/2IxMhaZX+RRcgHfCRx/m0M5na0fBt4/CRe7Lrji0= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= +github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= -github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= 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/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8= @@ -299,7 +283,6 @@ github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c h1:ZfSZ3P3BedhKG github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= @@ -325,12 +308,11 @@ github.com/evanphx/json-patch/v5 v5.2.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk= @@ -338,7 +320,6 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/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/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= @@ -349,12 +330,13 @@ github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2H github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/git-chglog/git-chglog v0.0.0-20200414013904-db796966b373/go.mod h1:Dcsy1kii/xFyNad5JqY/d0GO5mu91sungp5xotbm3Yk= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= -github.com/go-acme/lego v2.5.0+incompatible h1:5fNN9yRQfv8ymH3DSsxla+4aYeQt2IgfZqHKVnK8f0s= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= github.com/go-critic/go-critic v0.5.0/go.mod h1:4jeRh3ZAVnRYhuWdOEvwzVqLUpxMSoAT0xZ74JsTPlo= @@ -377,8 +359,9 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -424,6 +407,10 @@ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+ github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -445,6 +432,9 @@ github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzz github.com/gobuffalo/flect v0.2.0 h1:EWCvMGGxOjsgwlWaP+f4+Hh6yrrte7JeFL2S6b+0hdM= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= @@ -455,11 +445,9 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 h1:ZgQEtGgCBiWRM39fZuwSd1LwSqqSW0hOdXCYYDX0R3I= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= @@ -472,7 +460,6 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= 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/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= @@ -483,7 +470,6 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= @@ -515,12 +501,10 @@ github.com/google/cadvisor v0.38.7/go.mod h1:1OFB9sOOMkBdUBGCO/1SArawTnDscgMzTod github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= 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= -github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4 h1:L8R9j+yAqZuZjsqh/z+F1NCffTKKLShY6zXTItVIZ8M= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -529,7 +513,6 @@ github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASu github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-replayers/grpcreplay v0.1.0/go.mod h1:8Ig2Idjpr6gifRd6pNVggX6TC1Zw6Jx74AKp7QNH2QE= github.com/google/go-replayers/httpreplay v0.1.0/go.mod h1:YKZViNhiGgqdBlUbI2MwGpq4pXxNmhJLPHQ7cv2b5no= -github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -549,7 +532,6 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3 github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -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/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -557,7 +539,6 @@ github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1 github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g= github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= @@ -578,9 +559,8 @@ github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= @@ -590,13 +570,12 @@ github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:Fecb github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= 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/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.14.6 h1:8ERzHx8aj1Sc47mu9n/AksaKCSWrMchFtkdrS4BIj5o= +github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= @@ -616,16 +595,13 @@ github.com/hashicorp/go-retryablehttp v0.6.8/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0 h1:RS8zrF7PhGwyNPOtxSClXXj9HA8feRnJzgnI1RJCSnM= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= @@ -638,7 +614,6 @@ github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/J github.com/heketi/heketi v9.0.1-0.20190917153846-c2e2a4ab7ab9+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o= github.com/heketi/tests v0.0.0-20151005000721-f3775cbcefd6/go.mod h1:xGMAM8JLi7UkZt1i4FQeQy0R2T8GLUwQhOP5M1gBhy4= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -649,6 +624,8 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk= +github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= @@ -661,21 +638,19 @@ github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:x github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.3.0 h1:OS12ieG61fsCg5+qLJ+SsW9NicxNkg3b25OyT2yCeUc= github.com/jmespath/go-jmespath v0.3.0/go.mod h1:9QtRXoHjLGCJ5IBSaohpXITPlowMeeYCZ7fLUTSywik= -github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/jmoiron/sqlx v1.2.1-0.20190826204134-d7d95172beb5/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7/go.mod h1:2iMrUgbbvHEiQClaW2NsSzMyGHqN+rDFqY705q49KG0= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -696,30 +671,30 @@ github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg= github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= -github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= -github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= 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/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= 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/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kyoh86/exportloopref v0.1.7/go.mod h1:h1rDl2Kdj97+Kwh4gdz3ujE7XHmH51Q0lUiZ1z4NLj8= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= @@ -757,10 +732,8 @@ github.com/matoous/godox v0.0.0-20190911065817-5d6d842e92eb/go.mod h1:1BELzlh859 github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -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-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.7 h1:bQGKb3vps/j0E9GfJQ03JyhRuxsvdAanXlT9BTw3mdw= github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -784,7 +757,6 @@ github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/mattn/go-zglob v0.0.3/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= @@ -795,6 +767,9 @@ github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3N github.com/miekg/dns v1.1.3/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.4/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= +github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= +github.com/minio/minio-go/v7 v7.0.2/go.mod h1:dJ80Mv2HeGkYLH1sqS/ksz07ON6csH3S6JUMSQ2zAns= +github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= @@ -861,24 +836,22 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.13.0 h1:M76yO2HkZASFjXL0HSoZJ1AYEmQxNJmY41Jx1zNUq1Y= github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= github.com/onsi/ginkgo v1.14.1 h1:jMU0WaQrP0a/YAEq8eJmJKjBoMs+pClEr1vDMlM/Do4= github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.8.1/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.2 h1:aY/nuoWlKJud2J6U0E3NWsjlg+0GtwXxgEqthRdzlcs= github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= @@ -915,7 +888,6 @@ github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7 github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -932,7 +904,6 @@ github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod 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.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.8.0 h1:zvJNkoCFAnYFNC24FV8nW4JdRJ3GIFcLbg65lL/JDcw= github.com/prometheus/client_golang v1.8.0/go.mod h1:O9VU6huf47PktckDQfMTX0Y8tY0/7TSWwj+ITvv0TnM= @@ -948,7 +919,6 @@ github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 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.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= -github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.14.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/common v0.15.0 h1:4fgOnadei3EZvgRwxJ7RMpG1k1pOZth5Pc13tyspaKM= @@ -960,7 +930,6 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0 h1:wH4vA7pcjKuZzjF7lM8awk4fnuJO6idemZXoKnULUx4= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= @@ -978,10 +947,13 @@ github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/robfig/cron v1.1.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= @@ -1014,9 +986,7 @@ github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOms 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.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= -github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -1024,6 +994,7 @@ github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1 github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/gunit v1.0.0/go.mod h1:qwPWnhz6pn0NnRBP++URONOVyNkPyr4SauJk4cUOwJs= @@ -1038,9 +1009,7 @@ github.com/spaceapegames/go-wavefront v1.8.1 h1:Xuby0uBfw1WVxD9d+l8Gh+zINqnBfd0R github.com/spaceapegames/go-wavefront v1.8.1/go.mod h1:GtdIjtJ0URkfPmaKx0+7vMSDvT/MON9v+4pbdagA8As= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= -github.com/spf13/afero v1.3.2 h1:GDarE4TJQI52kYSbSAmLiId1Elfj+xgSDqrUZxFhxlU= github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= github.com/spf13/afero v1.4.1 h1:asw9sl74539yqavKaglDM5hFpdJVK0Y5Dr/JOgQ89nQ= github.com/spf13/afero v1.4.1/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= @@ -1048,7 +1017,6 @@ github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkU github.com/spf13/cast v1.3.1 h1:nFm6S0SMdyzrzcmThSipiEubIDy8WEXKNZ0UOgiRpng= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4= github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= @@ -1079,10 +1047,8 @@ github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRci github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= 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/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -1102,9 +1068,7 @@ github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0= github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao= github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tomarrell/wrapcheck v0.0.0-20200807122107-df9e8bcb914d/go.mod h1:yiFB6fFoV7saXirUGfuK+cPtUh4NX/Hf5y2WC2lehu0= github.com/tommy-muehle/go-mnd v1.3.1-0.20200224220436-e6f9a994e8fa/go.mod h1:dSUh0FtTP8VhvkL1S+gUR1OKd9ZnSaozuI6r3m6wOig= @@ -1112,6 +1076,8 @@ github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJ github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFyPdL66DjUD96XmzVL3ZntbzcflLnznH0fr99w5VqE= github.com/tsuyoshiwada/go-gitcmd v0.0.0-20180205145712-5f1f5f9475df/go.mod h1:pnyouUty/nBr/zm3GYwTIt+qFTLWbdjeLjZmJdzJOu8= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= @@ -1149,7 +1115,6 @@ github.com/xanzy/ssh-agent v0.2.0/go.mod h1:0NyE30eGUDliuLEHJgYte/zncp2zdTStcOnW github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos= -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= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -1158,9 +1123,7 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= @@ -1174,21 +1137,13 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= -go.uber.org/multierr v1.3.0 h1:sFPn2GLc3poCkfrpIXGhBD2X0CMIo4Q/zSULXrj/+uc= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go.uber.org/zap v1.13.0 h1:nR6NoDBgAf67s68NhaXbsojM+2gxp3S1hWkHDl27pVU= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= gocloud.dev v0.20.0/go.mod h1:+Y/RpSXrJthIOM8uFNzWp6MRu9pFPNFEEZrQMxpkfIc= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1201,19 +1156,17 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190513172903-22d7a77e9e5f/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586 h1:7KByu05hhLed2MO29w7p1XfZvZ13m8mub3shuVftRs0= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -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/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg= golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 h1:pLI5jrR7OSLijeIDcmRxNmw2api+jEfxLoykJVice/E= @@ -1244,7 +1197,6 @@ golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHl golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b h1:Wh+f8QHJXR411sJR8/vRBTZ7YapZaRvUcLFFJhusH0k= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= @@ -1252,7 +1204,6 @@ golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKG golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -1282,14 +1233,13 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/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-20191004110552-13f9640d40b9 h1:rjwSpXsdiK0dV8/Naq3kAw9ymfAeJIyd0upUIElB+lI= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191112182307-2180aed22343/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -1300,11 +1250,8 @@ golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/ golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202 h1:VvcQYSHwXgi7W+TpUR6A9g6Up98WAHf3f/ulnJ62IyA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102 h1:42cLlJJdEh+ySyeUUbEQ5bsTiq8voBeTuweGVkY6Puw= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -1312,7 +1259,6 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG golang.org/x/oauth2 v0.0.0-20181106182150-f42d05182288/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= @@ -1370,7 +1316,6 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/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-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1388,14 +1333,11 @@ golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634 h1:bNEHhJCnrwMKNMmOx3yAynp5vs5/gRy+XWFtZFu7NBM= golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201109165425-215b40eba54c h1:+B+zPA6081G5cEb2triOIJpcvSW4AYzmIyWAqMn2JAc= golang.org/x/sys v0.0.0-20201109165425-215b40eba54c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201110211018-35f3e6cf4a65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201112073958-5cba982894dd h1:5CtCZbICpIOFdgO940moixOPjc0178IU44m4EjOO5IY= @@ -1403,17 +1345,13 @@ golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/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/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1478,7 +1416,6 @@ golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjs golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/tools v0.0.0-20200317043434-63da46f3035e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200321224714-0d839f3cf2ed/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200323144430-8dcfad9e016e h1:ssd5ulOvVWlh4kDSUF2SqzmMeWfjmwDXM+uGw/aQjRE= golang.org/x/tools v0.0.0-20200323144430-8dcfad9e016e/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= golang.org/x/tools v0.0.0-20200325010219-a49f79bcc224/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= @@ -1503,7 +1440,6 @@ golang.org/x/tools v0.0.0-20200626171337-aa94e735be7f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200701041122-1837592efa10/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200731060945-b5fad4ed8dd6/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0 h1:SQvH+DjrwqD1hyyQU+K7JegHz1KEZgEwt17p9d6R2eg= golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= @@ -1514,7 +1450,6 @@ golang.org/x/tools v0.0.0-20201013201025-64a9e34f3752 h1:2ntEwh02rqo2jSsrYmp4yKH golang.org/x/tools v0.0.0-20201013201025-64a9e34f3752/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1545,7 +1480,6 @@ google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9Ywl google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -1555,7 +1489,6 @@ google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoA google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 h1:nfPFGzJkUDX6uBmpN/pSw7MbOAWegH5QDQuoXFHedLg= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= @@ -1580,10 +1513,10 @@ google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200603110839-e855014d5736/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482 h1:i+Aiej6cta/Frzp13/swvwz5O00kYcSe0A/C5Wd7zX8= google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a h1:pOwg4OoaRYScjmR4LlLgdtnyoHYTSAVhhqe5uPdpII8= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1595,7 +1528,6 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.23.1 h1:q4XQuHFC6I28BKZpo6IYyb3mNO+l7lSOxRuYTCiDfXk= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= @@ -1612,22 +1544,18 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/AlecAivazis/survey.v1 v1.8.7/go.mod h1:iBNOmqKz/NUbZx3bA+4hAGLRC7fSK7tgtVDT4tB22XA= -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/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= @@ -1641,7 +1569,6 @@ gopkg.in/kyokomi/emoji.v1 v1.5.1/go.mod h1:N9AZ6hi1jHOPn34PsbpufQZUcKftSD7WgS2pg gopkg.in/mcuadros/go-syslog.v2 v2.2.1/go.mod h1:l5LPIyOOyIdQquNg+oU6Z3524YwrcqEm0aKH+5zpt2U= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= -gopkg.in/square/go-jose.v2 v2.2.2 h1:orlkJ3myw8CN1nVQHBFfloD+L3egixIa4FvUP6RosSA= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.2.1/go.mod h1:tm33zBoOwxjYHZIE+OV8bxTWFMJLrconzFMd38aARFk= gopkg.in/src-d/go-git-fixtures.v3 v3.1.1/go.mod h1:dLBcvytrw/TYZsNTWCnkNF2DSIlzWYqTe3rJR56Ac7g= @@ -1653,15 +1580,13 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN 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/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= 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= gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966 h1:B0J02caTR6tpSJozBJyiAzT6CtBzjclw4pgm9gg8Ys0= gopkg.in/yaml.v3 v3.0.0-20190905181640-827449938966/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ= @@ -1680,7 +1605,6 @@ honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.5/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.6 h1:W18jzjh8mfPez+AwGLxmOImucz/IFjpNlrKVnaj2YVc= honnef.co/go/tools v0.0.1-2020.1.6/go.mod h1:pyyisuGw24ruLjrr1ddx39WE0y9OooInRzEYLhQB2YY= k8s.io/api v0.20.4 h1:xZjKidCirayzX6tHONRQyTNDVIR55TYVqgATqo6ZULY= k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= @@ -1714,13 +1638,12 @@ k8s.io/heapster v1.2.0-beta.1/go.mod h1:h1uhptVXMwC8xtZBYsPXKVi8fpdlYkTs6k949Koz k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= -k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.4.0 h1:7+X0fUguPyrKEC4WjH8iGDg3laWgMo5tMnRTIGTTxGQ= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.5.0 h1:8mOnjf1RmUPW6KRqQCfYSZq/K20Unmp3IhuZUhxl8KI= +k8s.io/klog/v2 v2.5.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/kube-aggregator v0.20.4/go.mod h1:0ixQ9De7KXyHteXizS6nVtrnKqGa4kiuxl9rEBsNccw= k8s.io/kube-controller-manager v0.20.4/go.mod h1:HCVTzFZhw/dtTgfeF2mEUSZZM++poC6qUhNmZ5yRELk= -k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd h1:sOHNzJIkytDF6qadMNKhhDRpc6ODik8lVC6nOur7B2c= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210216185858-15cd8face8d6 h1:37dOBBPjjBJGIfD+BlzVcjICVLX6fDDIwt5H1UnhXXM= k8s.io/kube-openapi v0.0.0-20210216185858-15cd8face8d6/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= @@ -1749,6 +1672,8 @@ mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIa mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= mvdan.cc/unparam v0.0.0-20200501210554-b37ab49443f7/go.mod h1:HGC5lll35J70Y5v7vCGb9oLhHoScFwkHDJm/05RdSTc= +nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= +nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= @@ -1760,7 +1685,6 @@ sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbL sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU= sigs.k8s.io/structured-merge-diff/v4 v4.0.2 h1:YHQV7Dajm86OuqnIR6zAelnDWBRjo+YhYV9PmGrh1s8= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index b1ed6728f8..8591808e9e 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -8,13 +8,12 @@ import ( fmt "fmt" v1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" proto "github.com/gogo/protobuf/proto" + empty "github.com/golang/protobuf/ptypes/empty" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" io "io" - _ "k8s.io/api/core/v1" - _ "k8s.io/apimachinery/pkg/apis/meta/v1" math "math" math_bits "math/bits" ) @@ -85,8 +84,56 @@ func (m *RolloutInfoRequest) GetName() string { return "" } +type Greeting struct { + Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Greeting) Reset() { *m = Greeting{} } +func (m *Greeting) String() string { return proto.CompactTextString(m) } +func (*Greeting) ProtoMessage() {} +func (*Greeting) Descriptor() ([]byte, []int) { + return fileDescriptor_99101d942e8912a7, []int{1} +} +func (m *Greeting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Greeting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Greeting.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Greeting) XXX_Merge(src proto.Message) { + xxx_messageInfo_Greeting.Merge(m, src) +} +func (m *Greeting) XXX_Size() int { + return m.Size() +} +func (m *Greeting) XXX_DiscardUnknown() { + xxx_messageInfo_Greeting.DiscardUnknown(m) +} + +var xxx_messageInfo_Greeting proto.InternalMessageInfo + +func (m *Greeting) GetText() string { + if m != nil { + return m.Text + } + return "" +} + func init() { proto.RegisterType((*RolloutInfoRequest)(nil), "rollout.RolloutInfoRequest") + proto.RegisterType((*Greeting)(nil), "rollout.Greeting") } func init() { @@ -94,28 +141,31 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 333 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0x33, 0x31, - 0x14, 0x86, 0x49, 0xf9, 0xf8, 0xa4, 0xb3, 0x70, 0x91, 0x85, 0x94, 0x5a, 0x06, 0xa9, 0x1b, 0x37, - 0x26, 0x56, 0x05, 0x5d, 0x0b, 0x0a, 0x05, 0x57, 0x75, 0x21, 0xb8, 0x91, 0x34, 0x1e, 0x33, 0xb1, - 0x33, 0x39, 0x31, 0x49, 0x07, 0xdc, 0x7a, 0x0b, 0xe2, 0x3d, 0x78, 0x29, 0x2e, 0x05, 0x6f, 0x40, - 0x8a, 0x17, 0x22, 0x33, 0x9d, 0x1f, 0xa5, 0x2e, 0x5c, 0xe5, 0xfc, 0xe4, 0x3c, 0x27, 0xef, 0x4b, - 0xa2, 0x6d, 0x3b, 0x53, 0x5c, 0x58, 0x2d, 0x53, 0x0d, 0x26, 0x70, 0x87, 0x69, 0x8a, 0xf3, 0xe6, - 0x64, 0xd6, 0x61, 0x40, 0xba, 0x56, 0xa5, 0xfd, 0x81, 0x42, 0x54, 0x29, 0x14, 0x03, 0x5c, 0x18, - 0x83, 0x41, 0x04, 0x8d, 0xc6, 0x2f, 0xaf, 0xf5, 0x0f, 0x67, 0xc7, 0x9e, 0x69, 0x2c, 0xba, 0x99, - 0x90, 0x89, 0x36, 0xe0, 0x1e, 0x78, 0xc5, 0xf7, 0x3c, 0x83, 0x20, 0x78, 0x3e, 0xe2, 0x0a, 0x0c, - 0x38, 0x11, 0xe0, 0xa6, 0x9a, 0x3a, 0x57, 0x3a, 0x24, 0xf3, 0x29, 0x93, 0x98, 0x71, 0xe1, 0x14, - 0x5a, 0x87, 0x77, 0x65, 0xb0, 0x5b, 0x6d, 0xf5, 0x2d, 0xa3, 0xa9, 0xe4, 0x23, 0x91, 0xda, 0x44, - 0xac, 0xd2, 0x86, 0xed, 0x1b, 0xb8, 0x44, 0x07, 0xbf, 0x6c, 0x1c, 0x9e, 0x45, 0x74, 0xb2, 0x04, - 0x8d, 0xcd, 0x2d, 0x4e, 0xe0, 0x7e, 0x0e, 0x3e, 0xd0, 0x41, 0xd4, 0x35, 0x22, 0x03, 0x6f, 0x85, - 0x84, 0x1e, 0xd9, 0x22, 0x3b, 0xdd, 0x49, 0x5b, 0xa0, 0x34, 0xfa, 0x57, 0x24, 0xbd, 0x4e, 0xd9, - 0x28, 0xe3, 0xfd, 0x17, 0x12, 0xad, 0x57, 0xa0, 0x0b, 0x70, 0xb9, 0x96, 0x40, 0x9f, 0x49, 0xd4, - 0xbd, 0x14, 0x41, 0x26, 0x05, 0x99, 0x6e, 0xb2, 0xda, 0xc7, 0xd5, 0x7d, 0xfd, 0x31, 0x6b, 0x85, - 0xb3, 0x5a, 0x78, 0x19, 0x5c, 0xd7, 0x32, 0x99, 0x9d, 0x29, 0x56, 0x08, 0x67, 0x4d, 0xa5, 0x16, - 0xfe, 0x9d, 0x38, 0x8c, 0x1f, 0xdf, 0x3f, 0x9f, 0x3a, 0x3d, 0xba, 0x51, 0xca, 0xce, 0x47, 0xdc, - 0x07, 0x07, 0x22, 0xab, 0xed, 0xda, 0x23, 0x27, 0xa7, 0xaf, 0x8b, 0x98, 0xbc, 0x2d, 0x62, 0xf2, - 0xb1, 0x88, 0xc9, 0xd5, 0xd1, 0x9f, 0x2d, 0xff, 0xf9, 0x2d, 0xa6, 0xff, 0x4b, 0x03, 0x0f, 0xbe, - 0x02, 0x00, 0x00, 0xff, 0xff, 0x33, 0xa6, 0x8e, 0x7b, 0x36, 0x02, 0x00, 0x00, + // 370 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0xeb, 0x40, + 0x14, 0xc7, 0x99, 0x72, 0xbf, 0x3a, 0x70, 0xef, 0xe5, 0x0e, 0xdc, 0x52, 0xd2, 0x12, 0x2e, 0xb9, + 0x1b, 0x37, 0xce, 0x58, 0x5d, 0xb8, 0x17, 0xaa, 0x16, 0x5c, 0xd5, 0x85, 0xe0, 0x46, 0xa6, 0xf1, + 0x74, 0x12, 0x9b, 0xcc, 0x8c, 0x93, 0x49, 0xd1, 0xad, 0xaf, 0x20, 0xbe, 0x93, 0x4b, 0xc1, 0x17, + 0x90, 0xe2, 0x1b, 0xf8, 0x02, 0x92, 0x49, 0x26, 0x55, 0xdc, 0xb8, 0xca, 0xf9, 0xc8, 0xf9, 0xff, + 0xcf, 0xf9, 0x25, 0xf8, 0xbf, 0x5e, 0x08, 0xc6, 0x75, 0x1a, 0x67, 0x29, 0x48, 0xcb, 0x8c, 0xca, + 0x32, 0x55, 0xb6, 0x4f, 0xaa, 0x8d, 0xb2, 0x8a, 0x7c, 0x6f, 0xd2, 0x60, 0x28, 0x94, 0x12, 0x19, + 0x54, 0x03, 0x8c, 0x4b, 0xa9, 0x2c, 0xb7, 0xa9, 0x92, 0x45, 0xfd, 0x5a, 0x70, 0x24, 0x52, 0x9b, + 0x94, 0x33, 0x1a, 0xab, 0x9c, 0x71, 0x23, 0x94, 0x36, 0xea, 0xc2, 0x05, 0x9b, 0xcd, 0x7c, 0xc1, + 0x1a, 0xb7, 0x82, 0xb5, 0x95, 0xe5, 0x88, 0x67, 0x3a, 0xe1, 0x23, 0x26, 0x40, 0x82, 0xe1, 0x16, + 0xce, 0x1b, 0xb5, 0x41, 0xe3, 0xe5, 0xb2, 0x59, 0x39, 0x67, 0x90, 0x6b, 0x7b, 0x5d, 0x37, 0xa3, + 0x7d, 0x4c, 0xa6, 0xb5, 0xc2, 0x44, 0xce, 0xd5, 0x14, 0x2e, 0x4b, 0x28, 0x2c, 0x19, 0xe2, 0xae, + 0xe4, 0x39, 0x14, 0x9a, 0xc7, 0xd0, 0x47, 0xff, 0xd0, 0x46, 0x77, 0xba, 0x2e, 0x10, 0x82, 0xbf, + 0x54, 0x49, 0xbf, 0xe3, 0x1a, 0x2e, 0x8e, 0x42, 0xfc, 0xe3, 0xc0, 0x00, 0xd8, 0x54, 0x8a, 0xaa, + 0x6f, 0xe1, 0xca, 0x36, 0x83, 0x2e, 0xde, 0x7e, 0x41, 0xf8, 0x57, 0x63, 0x74, 0x0c, 0x66, 0x99, + 0xc6, 0x40, 0xee, 0x10, 0xee, 0x9e, 0x70, 0x1b, 0x27, 0x95, 0x33, 0x19, 0x50, 0x8f, 0xea, 0xe3, + 0x3e, 0xc1, 0x84, 0xae, 0x89, 0x50, 0x4f, 0xc4, 0x05, 0x67, 0xfe, 0x7e, 0xaa, 0x17, 0x82, 0x56, + 0x44, 0x68, 0x5b, 0xf1, 0x44, 0xde, 0x2a, 0x46, 0xe1, 0xcd, 0xe3, 0xf3, 0x6d, 0xa7, 0x4f, 0x7a, + 0x8e, 0xfd, 0x72, 0xc4, 0x0a, 0x6b, 0x80, 0xe7, 0x9e, 0xe3, 0x16, 0x22, 0x13, 0xfc, 0xf5, 0x10, + 0xb2, 0x4c, 0x91, 0x1e, 0xad, 0xc9, 0x51, 0x4f, 0x8e, 0x8e, 0x2b, 0x72, 0xc1, 0x9f, 0x76, 0x55, + 0x7f, 0x72, 0xf4, 0xd7, 0xa9, 0xfe, 0x26, 0x3f, 0xbd, 0x6a, 0x52, 0x29, 0xec, 0x8d, 0xef, 0x57, + 0x21, 0x7a, 0x58, 0x85, 0xe8, 0x69, 0x15, 0xa2, 0xd3, 0xdd, 0x4f, 0x7f, 0xd6, 0xf7, 0x3f, 0xd1, + 0xec, 0x9b, 0x5b, 0x60, 0xe7, 0x35, 0x00, 0x00, 0xff, 0xff, 0x86, 0xed, 0x97, 0x4a, 0x64, 0x02, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -132,6 +182,8 @@ const _ = grpc.SupportPackageIsVersion4 type RolloutServiceClient interface { // WatchInfo return stream of rollout info WatchInfo(ctx context.Context, in *RolloutInfoRequest, opts ...grpc.CallOption) (RolloutService_WatchInfoClient, error) + // Hello says hello + Hello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Greeting, error) } type rolloutServiceClient struct { @@ -174,10 +226,21 @@ func (x *rolloutServiceWatchInfoClient) Recv() (*v1alpha1.RolloutInfo, error) { return m, nil } +func (c *rolloutServiceClient) Hello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Greeting, error) { + out := new(Greeting) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/Hello", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // WatchInfo return stream of rollout info WatchInfo(*RolloutInfoRequest, RolloutService_WatchInfoServer) error + // Hello says hello + Hello(context.Context, *empty.Empty) (*Greeting, error) } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. @@ -187,6 +250,9 @@ type UnimplementedRolloutServiceServer struct { func (*UnimplementedRolloutServiceServer) WatchInfo(req *RolloutInfoRequest, srv RolloutService_WatchInfoServer) error { return status.Errorf(codes.Unimplemented, "method WatchInfo not implemented") } +func (*UnimplementedRolloutServiceServer) Hello(ctx context.Context, req *empty.Empty) (*Greeting, error) { + return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") +} func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) @@ -213,10 +279,33 @@ func (x *rolloutServiceWatchInfoServer) Send(m *v1alpha1.RolloutInfo) error { return x.ServerStream.SendMsg(m) } +func _RolloutService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).Hello(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/Hello", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).Hello(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), - Methods: []grpc.MethodDesc{}, + Methods: []grpc.MethodDesc{ + { + MethodName: "Hello", + Handler: _RolloutService_Hello_Handler, + }, + }, Streams: []grpc.StreamDesc{ { StreamName: "WatchInfo", @@ -268,6 +357,40 @@ func (m *RolloutInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *Greeting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Greeting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Greeting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Text) > 0 { + i -= len(m.Text) + copy(dAtA[i:], m.Text) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Text))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintRollout(dAtA []byte, offset int, v uint64) int { offset -= sovRollout(v) base := offset @@ -299,6 +422,22 @@ func (m *RolloutInfoRequest) Size() (n int) { return n } +func (m *Greeting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Text) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovRollout(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -423,6 +562,92 @@ func (m *RolloutInfoRequest) Unmarshal(dAtA []byte) error { } return nil } +func (m *Greeting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Greeting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Greeting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Text = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRollout(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipRollout(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index 4271b9cb77..43e81506e8 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -15,6 +15,7 @@ import ( "github.com/golang/protobuf/descriptor" "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/grpc-ecosystem/grpc-gateway/utilities" "google.golang.org/grpc" @@ -59,6 +60,24 @@ func request_RolloutService_WatchInfo_0(ctx context.Context, marshaler runtime.M } +func request_RolloutService_Hello_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.Hello(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_Hello_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := server.Hello(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". // UnaryRPC :call RolloutServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -71,6 +90,26 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve return }) + mux.Handle("GET", pattern_RolloutService_Hello_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_Hello_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_Hello_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -132,13 +171,37 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_Hello_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_Hello_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_Hello_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } var ( pattern_RolloutService_WatchInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "stream", "rollout"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_Hello_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "hello"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( forward_RolloutService_WatchInfo_0 = runtime.ForwardResponseStream + + forward_RolloutService_Hello_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index d3230703ab..3e511576c2 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -2,9 +2,8 @@ syntax = "proto3"; option go_package = "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout"; import "google/api/annotations.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto"; -import "k8s.io/api/core/v1/generated.proto"; +import "google/protobuf/empty.proto"; package rollout; @@ -13,9 +12,18 @@ message RolloutInfoRequest { string name = 2; } +message Greeting { + string text = 1; +} + service RolloutService { // WatchInfo return stream of rollout info rpc WatchInfo(RolloutInfoRequest) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { option (google.api.http).get = "/api/v1/stream/rollout"; } + + // Hello says hello + rpc Hello(google.protobuf.Empty) returns (Greeting) { + option (google.api.http).get = "/api/v1/hello"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index e6727236c2..b0c99b100e 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -11,6 +11,23 @@ "application/json" ], "paths": { + "/api/v1/hello": { + "get": { + "summary": "Hello says hello", + "operationId": "Hello", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/rollout.Greeting" + } + } + }, + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/stream/rollout": { "get": { "summary": "WatchInfo return stream of rollout info", @@ -295,6 +312,14 @@ } }, "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON. Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" + }, + "rollout.Greeting": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } } } } diff --git a/pkg/apis/rollouts/v1alpha1/analysis_types.go b/pkg/apis/rollouts/v1alpha1/analysis_types.go index f8272ca865..7144824155 100644 --- a/pkg/apis/rollouts/v1alpha1/analysis_types.go +++ b/pkg/apis/rollouts/v1alpha1/analysis_types.go @@ -332,8 +332,8 @@ type KayentaMetric struct { } type KayentaThreshold struct { - Pass int `json:"pass" protobuf:"varint,1,opt,name=pass"` - Marginal int `json:"marginal" protobuf:"varint,2,opt,name=marginal"` + Pass int64 `json:"pass" protobuf:"varint,1,opt,name=pass"` + Marginal int64 `json:"marginal" protobuf:"varint,2,opt,name=marginal"` } type KayentaScope struct { @@ -345,7 +345,7 @@ type KayentaScope struct { type ScopeDetail struct { Scope string `json:"scope" protobuf:"bytes,1,opt,name=scope"` Region string `json:"region" protobuf:"bytes,2,opt,name=region"` - Step int `json:"step" protobuf:"varint,3,opt,name=step"` + Step int64 `json:"step" protobuf:"varint,3,opt,name=step"` Start string `json:"start" protobuf:"bytes,4,opt,name=start"` End string `json:"end" protobuf:"bytes,5,opt,name=end"` } @@ -358,7 +358,7 @@ type WebMetric struct { // Headers are optional HTTP headers to use in the request Headers []WebMetricHeader `json:"headers,omitempty" patchStrategy:"merge" patchMergeKey:"key" protobuf:"bytes,2,rep,name=headers"` // TimeoutSeconds is the timeout for the request in seconds (default: 10) - TimeoutSeconds int `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"` + TimeoutSeconds int64 `json:"timeoutSeconds,omitempty" protobuf:"varint,3,opt,name=timeoutSeconds"` // JSONPath is a JSON Path to use as the result variable (default: "{$}") JSONPath string `json:"jsonPath,omitempty" protobuf:"bytes,4,opt,name=jsonPath"` // Insecure skips host TLS verification diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 36f86dc5fd..7e98e0c66d 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -48,38 +48,10 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -func (m *JobSpec) Reset() { *m = JobSpec{} } -func (*JobSpec) ProtoMessage() {} -func (*JobSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{0} -} -func (m *JobSpec) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *JobSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil -} -func (m *JobSpec) XXX_Merge(src proto.Message) { - xxx_messageInfo_JobSpec.Merge(m, src) -} -func (m *JobSpec) XXX_Size() int { - return m.Size() -} -func (m *JobSpec) XXX_DiscardUnknown() { - xxx_messageInfo_JobSpec.DiscardUnknown(m) -} - -var xxx_messageInfo_JobSpec proto.InternalMessageInfo - func (m *ALBTrafficRouting) Reset() { *m = ALBTrafficRouting{} } func (*ALBTrafficRouting) ProtoMessage() {} func (*ALBTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{1} + return fileDescriptor_e0e705f843545fab, []int{0} } func (m *ALBTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -107,7 +79,7 @@ var xxx_messageInfo_ALBTrafficRouting proto.InternalMessageInfo func (m *AnalysisRun) Reset() { *m = AnalysisRun{} } func (*AnalysisRun) ProtoMessage() {} func (*AnalysisRun) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{2} + return fileDescriptor_e0e705f843545fab, []int{1} } func (m *AnalysisRun) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -135,7 +107,7 @@ var xxx_messageInfo_AnalysisRun proto.InternalMessageInfo func (m *AnalysisRunArgument) Reset() { *m = AnalysisRunArgument{} } func (*AnalysisRunArgument) ProtoMessage() {} func (*AnalysisRunArgument) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{3} + return fileDescriptor_e0e705f843545fab, []int{2} } func (m *AnalysisRunArgument) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -163,7 +135,7 @@ var xxx_messageInfo_AnalysisRunArgument proto.InternalMessageInfo func (m *AnalysisRunList) Reset() { *m = AnalysisRunList{} } func (*AnalysisRunList) ProtoMessage() {} func (*AnalysisRunList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{4} + return fileDescriptor_e0e705f843545fab, []int{3} } func (m *AnalysisRunList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -191,7 +163,7 @@ var xxx_messageInfo_AnalysisRunList proto.InternalMessageInfo func (m *AnalysisRunSpec) Reset() { *m = AnalysisRunSpec{} } func (*AnalysisRunSpec) ProtoMessage() {} func (*AnalysisRunSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{5} + return fileDescriptor_e0e705f843545fab, []int{4} } func (m *AnalysisRunSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -219,7 +191,7 @@ var xxx_messageInfo_AnalysisRunSpec proto.InternalMessageInfo func (m *AnalysisRunStatus) Reset() { *m = AnalysisRunStatus{} } func (*AnalysisRunStatus) ProtoMessage() {} func (*AnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{6} + return fileDescriptor_e0e705f843545fab, []int{5} } func (m *AnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -247,7 +219,7 @@ var xxx_messageInfo_AnalysisRunStatus proto.InternalMessageInfo func (m *AnalysisTemplate) Reset() { *m = AnalysisTemplate{} } func (*AnalysisTemplate) ProtoMessage() {} func (*AnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{7} + return fileDescriptor_e0e705f843545fab, []int{6} } func (m *AnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -275,7 +247,7 @@ var xxx_messageInfo_AnalysisTemplate proto.InternalMessageInfo func (m *AnalysisTemplateList) Reset() { *m = AnalysisTemplateList{} } func (*AnalysisTemplateList) ProtoMessage() {} func (*AnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{8} + return fileDescriptor_e0e705f843545fab, []int{7} } func (m *AnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -303,7 +275,7 @@ var xxx_messageInfo_AnalysisTemplateList proto.InternalMessageInfo func (m *AnalysisTemplateSpec) Reset() { *m = AnalysisTemplateSpec{} } func (*AnalysisTemplateSpec) ProtoMessage() {} func (*AnalysisTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{9} + return fileDescriptor_e0e705f843545fab, []int{8} } func (m *AnalysisTemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -331,7 +303,7 @@ var xxx_messageInfo_AnalysisTemplateSpec proto.InternalMessageInfo func (m *AntiAffinity) Reset() { *m = AntiAffinity{} } func (*AntiAffinity) ProtoMessage() {} func (*AntiAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{10} + return fileDescriptor_e0e705f843545fab, []int{9} } func (m *AntiAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -359,7 +331,7 @@ var xxx_messageInfo_AntiAffinity proto.InternalMessageInfo func (m *Argument) Reset() { *m = Argument{} } func (*Argument) ProtoMessage() {} func (*Argument) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{11} + return fileDescriptor_e0e705f843545fab, []int{10} } func (m *Argument) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -387,7 +359,7 @@ var xxx_messageInfo_Argument proto.InternalMessageInfo func (m *ArgumentValueFrom) Reset() { *m = ArgumentValueFrom{} } func (*ArgumentValueFrom) ProtoMessage() {} func (*ArgumentValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{12} + return fileDescriptor_e0e705f843545fab, []int{11} } func (m *ArgumentValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -415,7 +387,7 @@ var xxx_messageInfo_ArgumentValueFrom proto.InternalMessageInfo func (m *BlueGreenStatus) Reset() { *m = BlueGreenStatus{} } func (*BlueGreenStatus) ProtoMessage() {} func (*BlueGreenStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{13} + return fileDescriptor_e0e705f843545fab, []int{12} } func (m *BlueGreenStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -443,7 +415,7 @@ var xxx_messageInfo_BlueGreenStatus proto.InternalMessageInfo func (m *BlueGreenStrategy) Reset() { *m = BlueGreenStrategy{} } func (*BlueGreenStrategy) ProtoMessage() {} func (*BlueGreenStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{14} + return fileDescriptor_e0e705f843545fab, []int{13} } func (m *BlueGreenStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -471,7 +443,7 @@ var xxx_messageInfo_BlueGreenStrategy proto.InternalMessageInfo func (m *CanaryStatus) Reset() { *m = CanaryStatus{} } func (*CanaryStatus) ProtoMessage() {} func (*CanaryStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{15} + return fileDescriptor_e0e705f843545fab, []int{14} } func (m *CanaryStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -499,7 +471,7 @@ var xxx_messageInfo_CanaryStatus proto.InternalMessageInfo func (m *CanaryStep) Reset() { *m = CanaryStep{} } func (*CanaryStep) ProtoMessage() {} func (*CanaryStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{16} + return fileDescriptor_e0e705f843545fab, []int{15} } func (m *CanaryStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -527,7 +499,7 @@ var xxx_messageInfo_CanaryStep proto.InternalMessageInfo func (m *CanaryStrategy) Reset() { *m = CanaryStrategy{} } func (*CanaryStrategy) ProtoMessage() {} func (*CanaryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{17} + return fileDescriptor_e0e705f843545fab, []int{16} } func (m *CanaryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -555,7 +527,7 @@ var xxx_messageInfo_CanaryStrategy proto.InternalMessageInfo func (m *ClusterAnalysisTemplate) Reset() { *m = ClusterAnalysisTemplate{} } func (*ClusterAnalysisTemplate) ProtoMessage() {} func (*ClusterAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{18} + return fileDescriptor_e0e705f843545fab, []int{17} } func (m *ClusterAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -583,7 +555,7 @@ var xxx_messageInfo_ClusterAnalysisTemplate proto.InternalMessageInfo func (m *ClusterAnalysisTemplateList) Reset() { *m = ClusterAnalysisTemplateList{} } func (*ClusterAnalysisTemplateList) ProtoMessage() {} func (*ClusterAnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{19} + return fileDescriptor_e0e705f843545fab, []int{18} } func (m *ClusterAnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -611,7 +583,7 @@ var xxx_messageInfo_ClusterAnalysisTemplateList proto.InternalMessageInfo func (m *DatadogMetric) Reset() { *m = DatadogMetric{} } func (*DatadogMetric) ProtoMessage() {} func (*DatadogMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{20} + return fileDescriptor_e0e705f843545fab, []int{19} } func (m *DatadogMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -639,7 +611,7 @@ var xxx_messageInfo_DatadogMetric proto.InternalMessageInfo func (m *Experiment) Reset() { *m = Experiment{} } func (*Experiment) ProtoMessage() {} func (*Experiment) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{21} + return fileDescriptor_e0e705f843545fab, []int{20} } func (m *Experiment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -667,7 +639,7 @@ var xxx_messageInfo_Experiment proto.InternalMessageInfo func (m *ExperimentAnalysisRunStatus) Reset() { *m = ExperimentAnalysisRunStatus{} } func (*ExperimentAnalysisRunStatus) ProtoMessage() {} func (*ExperimentAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{22} + return fileDescriptor_e0e705f843545fab, []int{21} } func (m *ExperimentAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -695,7 +667,7 @@ var xxx_messageInfo_ExperimentAnalysisRunStatus proto.InternalMessageInfo func (m *ExperimentAnalysisTemplateRef) Reset() { *m = ExperimentAnalysisTemplateRef{} } func (*ExperimentAnalysisTemplateRef) ProtoMessage() {} func (*ExperimentAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{23} + return fileDescriptor_e0e705f843545fab, []int{22} } func (m *ExperimentAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -723,7 +695,7 @@ var xxx_messageInfo_ExperimentAnalysisTemplateRef proto.InternalMessageInfo func (m *ExperimentCondition) Reset() { *m = ExperimentCondition{} } func (*ExperimentCondition) ProtoMessage() {} func (*ExperimentCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{24} + return fileDescriptor_e0e705f843545fab, []int{23} } func (m *ExperimentCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -751,7 +723,7 @@ var xxx_messageInfo_ExperimentCondition proto.InternalMessageInfo func (m *ExperimentList) Reset() { *m = ExperimentList{} } func (*ExperimentList) ProtoMessage() {} func (*ExperimentList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{25} + return fileDescriptor_e0e705f843545fab, []int{24} } func (m *ExperimentList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -779,7 +751,7 @@ var xxx_messageInfo_ExperimentList proto.InternalMessageInfo func (m *ExperimentSpec) Reset() { *m = ExperimentSpec{} } func (*ExperimentSpec) ProtoMessage() {} func (*ExperimentSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{26} + return fileDescriptor_e0e705f843545fab, []int{25} } func (m *ExperimentSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -807,7 +779,7 @@ var xxx_messageInfo_ExperimentSpec proto.InternalMessageInfo func (m *ExperimentStatus) Reset() { *m = ExperimentStatus{} } func (*ExperimentStatus) ProtoMessage() {} func (*ExperimentStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{27} + return fileDescriptor_e0e705f843545fab, []int{26} } func (m *ExperimentStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -835,7 +807,7 @@ var xxx_messageInfo_ExperimentStatus proto.InternalMessageInfo func (m *FieldRef) Reset() { *m = FieldRef{} } func (*FieldRef) ProtoMessage() {} func (*FieldRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{28} + return fileDescriptor_e0e705f843545fab, []int{27} } func (m *FieldRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -863,7 +835,7 @@ var xxx_messageInfo_FieldRef proto.InternalMessageInfo func (m *IstioDestinationRule) Reset() { *m = IstioDestinationRule{} } func (*IstioDestinationRule) ProtoMessage() {} func (*IstioDestinationRule) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{29} + return fileDescriptor_e0e705f843545fab, []int{28} } func (m *IstioDestinationRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -891,7 +863,7 @@ var xxx_messageInfo_IstioDestinationRule proto.InternalMessageInfo func (m *IstioTrafficRouting) Reset() { *m = IstioTrafficRouting{} } func (*IstioTrafficRouting) ProtoMessage() {} func (*IstioTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{30} + return fileDescriptor_e0e705f843545fab, []int{29} } func (m *IstioTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -919,7 +891,7 @@ var xxx_messageInfo_IstioTrafficRouting proto.InternalMessageInfo func (m *IstioVirtualService) Reset() { *m = IstioVirtualService{} } func (*IstioVirtualService) ProtoMessage() {} func (*IstioVirtualService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{31} + return fileDescriptor_e0e705f843545fab, []int{30} } func (m *IstioVirtualService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -947,7 +919,7 @@ var xxx_messageInfo_IstioVirtualService proto.InternalMessageInfo func (m *JobMetric) Reset() { *m = JobMetric{} } func (*JobMetric) ProtoMessage() {} func (*JobMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{32} + return fileDescriptor_e0e705f843545fab, []int{31} } func (m *JobMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -975,7 +947,7 @@ var xxx_messageInfo_JobMetric proto.InternalMessageInfo func (m *KayentaMetric) Reset() { *m = KayentaMetric{} } func (*KayentaMetric) ProtoMessage() {} func (*KayentaMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{33} + return fileDescriptor_e0e705f843545fab, []int{32} } func (m *KayentaMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1003,7 +975,7 @@ var xxx_messageInfo_KayentaMetric proto.InternalMessageInfo func (m *KayentaScope) Reset() { *m = KayentaScope{} } func (*KayentaScope) ProtoMessage() {} func (*KayentaScope) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{34} + return fileDescriptor_e0e705f843545fab, []int{33} } func (m *KayentaScope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1031,7 +1003,7 @@ var xxx_messageInfo_KayentaScope proto.InternalMessageInfo func (m *KayentaThreshold) Reset() { *m = KayentaThreshold{} } func (*KayentaThreshold) ProtoMessage() {} func (*KayentaThreshold) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{35} + return fileDescriptor_e0e705f843545fab, []int{34} } func (m *KayentaThreshold) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1059,7 +1031,7 @@ var xxx_messageInfo_KayentaThreshold proto.InternalMessageInfo func (m *Measurement) Reset() { *m = Measurement{} } func (*Measurement) ProtoMessage() {} func (*Measurement) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{36} + return fileDescriptor_e0e705f843545fab, []int{35} } func (m *Measurement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1087,7 +1059,7 @@ var xxx_messageInfo_Measurement proto.InternalMessageInfo func (m *Metric) Reset() { *m = Metric{} } func (*Metric) ProtoMessage() {} func (*Metric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{37} + return fileDescriptor_e0e705f843545fab, []int{36} } func (m *Metric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1115,7 +1087,7 @@ var xxx_messageInfo_Metric proto.InternalMessageInfo func (m *MetricProvider) Reset() { *m = MetricProvider{} } func (*MetricProvider) ProtoMessage() {} func (*MetricProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{38} + return fileDescriptor_e0e705f843545fab, []int{37} } func (m *MetricProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1143,7 +1115,7 @@ var xxx_messageInfo_MetricProvider proto.InternalMessageInfo func (m *MetricResult) Reset() { *m = MetricResult{} } func (*MetricResult) ProtoMessage() {} func (*MetricResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{39} + return fileDescriptor_e0e705f843545fab, []int{38} } func (m *MetricResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1171,7 +1143,7 @@ var xxx_messageInfo_MetricResult proto.InternalMessageInfo func (m *NewRelicMetric) Reset() { *m = NewRelicMetric{} } func (*NewRelicMetric) ProtoMessage() {} func (*NewRelicMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{40} + return fileDescriptor_e0e705f843545fab, []int{39} } func (m *NewRelicMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1199,7 +1171,7 @@ var xxx_messageInfo_NewRelicMetric proto.InternalMessageInfo func (m *NginxTrafficRouting) Reset() { *m = NginxTrafficRouting{} } func (*NginxTrafficRouting) ProtoMessage() {} func (*NginxTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{41} + return fileDescriptor_e0e705f843545fab, []int{40} } func (m *NginxTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1227,7 +1199,7 @@ var xxx_messageInfo_NginxTrafficRouting proto.InternalMessageInfo func (m *PauseCondition) Reset() { *m = PauseCondition{} } func (*PauseCondition) ProtoMessage() {} func (*PauseCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{42} + return fileDescriptor_e0e705f843545fab, []int{41} } func (m *PauseCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1255,7 +1227,7 @@ var xxx_messageInfo_PauseCondition proto.InternalMessageInfo func (m *PodTemplateMetadata) Reset() { *m = PodTemplateMetadata{} } func (*PodTemplateMetadata) ProtoMessage() {} func (*PodTemplateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{43} + return fileDescriptor_e0e705f843545fab, []int{42} } func (m *PodTemplateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1285,7 +1257,7 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*PreferredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*PreferredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{44} + return fileDescriptor_e0e705f843545fab, []int{43} } func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1313,7 +1285,7 @@ var xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution proto.Intern func (m *PrometheusMetric) Reset() { *m = PrometheusMetric{} } func (*PrometheusMetric) ProtoMessage() {} func (*PrometheusMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{45} + return fileDescriptor_e0e705f843545fab, []int{44} } func (m *PrometheusMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1343,7 +1315,7 @@ func (m *RequiredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*RequiredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*RequiredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{46} + return fileDescriptor_e0e705f843545fab, []int{45} } func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1371,7 +1343,7 @@ var xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution proto.Interna func (m *Rollout) Reset() { *m = Rollout{} } func (*Rollout) ProtoMessage() {} func (*Rollout) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{47} + return fileDescriptor_e0e705f843545fab, []int{46} } func (m *Rollout) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1399,7 +1371,7 @@ var xxx_messageInfo_Rollout proto.InternalMessageInfo func (m *RolloutAnalysis) Reset() { *m = RolloutAnalysis{} } func (*RolloutAnalysis) ProtoMessage() {} func (*RolloutAnalysis) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{48} + return fileDescriptor_e0e705f843545fab, []int{47} } func (m *RolloutAnalysis) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1427,7 +1399,7 @@ var xxx_messageInfo_RolloutAnalysis proto.InternalMessageInfo func (m *RolloutAnalysisBackground) Reset() { *m = RolloutAnalysisBackground{} } func (*RolloutAnalysisBackground) ProtoMessage() {} func (*RolloutAnalysisBackground) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{49} + return fileDescriptor_e0e705f843545fab, []int{48} } func (m *RolloutAnalysisBackground) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1455,7 +1427,7 @@ var xxx_messageInfo_RolloutAnalysisBackground proto.InternalMessageInfo func (m *RolloutAnalysisRunStatus) Reset() { *m = RolloutAnalysisRunStatus{} } func (*RolloutAnalysisRunStatus) ProtoMessage() {} func (*RolloutAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{50} + return fileDescriptor_e0e705f843545fab, []int{49} } func (m *RolloutAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1483,7 +1455,7 @@ var xxx_messageInfo_RolloutAnalysisRunStatus proto.InternalMessageInfo func (m *RolloutAnalysisTemplate) Reset() { *m = RolloutAnalysisTemplate{} } func (*RolloutAnalysisTemplate) ProtoMessage() {} func (*RolloutAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{51} + return fileDescriptor_e0e705f843545fab, []int{50} } func (m *RolloutAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1511,7 +1483,7 @@ var xxx_messageInfo_RolloutAnalysisTemplate proto.InternalMessageInfo func (m *RolloutCondition) Reset() { *m = RolloutCondition{} } func (*RolloutCondition) ProtoMessage() {} func (*RolloutCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{52} + return fileDescriptor_e0e705f843545fab, []int{51} } func (m *RolloutCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1539,7 +1511,7 @@ var xxx_messageInfo_RolloutCondition proto.InternalMessageInfo func (m *RolloutExperimentStep) Reset() { *m = RolloutExperimentStep{} } func (*RolloutExperimentStep) ProtoMessage() {} func (*RolloutExperimentStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{53} + return fileDescriptor_e0e705f843545fab, []int{52} } func (m *RolloutExperimentStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1569,7 +1541,7 @@ func (m *RolloutExperimentStepAnalysisTemplateRef) Reset() { } func (*RolloutExperimentStepAnalysisTemplateRef) ProtoMessage() {} func (*RolloutExperimentStepAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{54} + return fileDescriptor_e0e705f843545fab, []int{53} } func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1597,7 +1569,7 @@ var xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef proto.InternalMessa func (m *RolloutExperimentTemplate) Reset() { *m = RolloutExperimentTemplate{} } func (*RolloutExperimentTemplate) ProtoMessage() {} func (*RolloutExperimentTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{55} + return fileDescriptor_e0e705f843545fab, []int{54} } func (m *RolloutExperimentTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1625,7 +1597,7 @@ var xxx_messageInfo_RolloutExperimentTemplate proto.InternalMessageInfo func (m *RolloutInfo) Reset() { *m = RolloutInfo{} } func (*RolloutInfo) ProtoMessage() {} func (*RolloutInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{56} + return fileDescriptor_e0e705f843545fab, []int{55} } func (m *RolloutInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1653,7 +1625,7 @@ var xxx_messageInfo_RolloutInfo proto.InternalMessageInfo func (m *RolloutList) Reset() { *m = RolloutList{} } func (*RolloutList) ProtoMessage() {} func (*RolloutList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{57} + return fileDescriptor_e0e705f843545fab, []int{56} } func (m *RolloutList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1681,7 +1653,7 @@ var xxx_messageInfo_RolloutList proto.InternalMessageInfo func (m *RolloutPause) Reset() { *m = RolloutPause{} } func (*RolloutPause) ProtoMessage() {} func (*RolloutPause) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{58} + return fileDescriptor_e0e705f843545fab, []int{57} } func (m *RolloutPause) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1709,7 +1681,7 @@ var xxx_messageInfo_RolloutPause proto.InternalMessageInfo func (m *RolloutSpec) Reset() { *m = RolloutSpec{} } func (*RolloutSpec) ProtoMessage() {} func (*RolloutSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{59} + return fileDescriptor_e0e705f843545fab, []int{58} } func (m *RolloutSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1737,7 +1709,7 @@ var xxx_messageInfo_RolloutSpec proto.InternalMessageInfo func (m *RolloutStatus) Reset() { *m = RolloutStatus{} } func (*RolloutStatus) ProtoMessage() {} func (*RolloutStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{60} + return fileDescriptor_e0e705f843545fab, []int{59} } func (m *RolloutStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1765,7 +1737,7 @@ var xxx_messageInfo_RolloutStatus proto.InternalMessageInfo func (m *RolloutStrategy) Reset() { *m = RolloutStrategy{} } func (*RolloutStrategy) ProtoMessage() {} func (*RolloutStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{61} + return fileDescriptor_e0e705f843545fab, []int{60} } func (m *RolloutStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1793,7 +1765,7 @@ var xxx_messageInfo_RolloutStrategy proto.InternalMessageInfo func (m *RolloutTrafficRouting) Reset() { *m = RolloutTrafficRouting{} } func (*RolloutTrafficRouting) ProtoMessage() {} func (*RolloutTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{62} + return fileDescriptor_e0e705f843545fab, []int{61} } func (m *RolloutTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1821,7 +1793,7 @@ var xxx_messageInfo_RolloutTrafficRouting proto.InternalMessageInfo func (m *SMITrafficRouting) Reset() { *m = SMITrafficRouting{} } func (*SMITrafficRouting) ProtoMessage() {} func (*SMITrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{63} + return fileDescriptor_e0e705f843545fab, []int{62} } func (m *SMITrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1849,7 +1821,7 @@ var xxx_messageInfo_SMITrafficRouting proto.InternalMessageInfo func (m *ScopeDetail) Reset() { *m = ScopeDetail{} } func (*ScopeDetail) ProtoMessage() {} func (*ScopeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{64} + return fileDescriptor_e0e705f843545fab, []int{63} } func (m *ScopeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1877,7 +1849,7 @@ var xxx_messageInfo_ScopeDetail proto.InternalMessageInfo func (m *SecretKeyRef) Reset() { *m = SecretKeyRef{} } func (*SecretKeyRef) ProtoMessage() {} func (*SecretKeyRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{65} + return fileDescriptor_e0e705f843545fab, []int{64} } func (m *SecretKeyRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1905,7 +1877,7 @@ var xxx_messageInfo_SecretKeyRef proto.InternalMessageInfo func (m *SetCanaryScale) Reset() { *m = SetCanaryScale{} } func (*SetCanaryScale) ProtoMessage() {} func (*SetCanaryScale) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{66} + return fileDescriptor_e0e705f843545fab, []int{65} } func (m *SetCanaryScale) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,7 +1905,7 @@ var xxx_messageInfo_SetCanaryScale proto.InternalMessageInfo func (m *TemplateSpec) Reset() { *m = TemplateSpec{} } func (*TemplateSpec) ProtoMessage() {} func (*TemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{67} + return fileDescriptor_e0e705f843545fab, []int{66} } func (m *TemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1961,7 +1933,7 @@ var xxx_messageInfo_TemplateSpec proto.InternalMessageInfo func (m *TemplateStatus) Reset() { *m = TemplateStatus{} } func (*TemplateStatus) ProtoMessage() {} func (*TemplateStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{68} + return fileDescriptor_e0e705f843545fab, []int{67} } func (m *TemplateStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1989,7 +1961,7 @@ var xxx_messageInfo_TemplateStatus proto.InternalMessageInfo func (m *ValueFrom) Reset() { *m = ValueFrom{} } func (*ValueFrom) ProtoMessage() {} func (*ValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{69} + return fileDescriptor_e0e705f843545fab, []int{68} } func (m *ValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2017,7 +1989,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo func (m *WavefrontMetric) Reset() { *m = WavefrontMetric{} } func (*WavefrontMetric) ProtoMessage() {} func (*WavefrontMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{70} + return fileDescriptor_e0e705f843545fab, []int{69} } func (m *WavefrontMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2045,7 +2017,7 @@ var xxx_messageInfo_WavefrontMetric proto.InternalMessageInfo func (m *WebMetric) Reset() { *m = WebMetric{} } func (*WebMetric) ProtoMessage() {} func (*WebMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{71} + return fileDescriptor_e0e705f843545fab, []int{70} } func (m *WebMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2073,7 +2045,7 @@ var xxx_messageInfo_WebMetric proto.InternalMessageInfo func (m *WebMetricHeader) Reset() { *m = WebMetricHeader{} } func (*WebMetricHeader) ProtoMessage() {} func (*WebMetricHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{72} + return fileDescriptor_e0e705f843545fab, []int{71} } func (m *WebMetricHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2099,7 +2071,6 @@ func (m *WebMetricHeader) XXX_DiscardUnknown() { var xxx_messageInfo_WebMetricHeader proto.InternalMessageInfo func init() { - proto.RegisterType((*JobSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobSpec") proto.RegisterType((*ALBTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ALBTrafficRouting") proto.RegisterType((*AnalysisRun)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRun") proto.RegisterType((*AnalysisRunArgument)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument") @@ -2183,443 +2154,354 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 5687 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5d, 0x6c, 0x23, 0xc9, - 0x71, 0xf0, 0x0d, 0x29, 0x4a, 0x64, 0x51, 0xbf, 0xbd, 0x5a, 0x2f, 0xbd, 0x77, 0x2b, 0xae, 0xe7, - 0x8c, 0xfd, 0xd6, 0x5f, 0x6c, 0xc9, 0xb7, 0xde, 0x4b, 0x36, 0x3e, 0xe3, 0x10, 0x52, 0xfb, 0x27, - 0x9d, 0xb4, 0xcb, 0x6d, 0x6a, 0x6f, 0xe1, 0xfb, 0x49, 0x3c, 0x22, 0x5b, 0xd4, 0xec, 0x0e, 0x67, - 0xe8, 0x99, 0xa1, 0x76, 0x75, 0x36, 0xec, 0x3b, 0x1b, 0x17, 0x5f, 0x02, 0x1b, 0x77, 0xf9, 0x79, - 0x09, 0x82, 0xfc, 0x20, 0xc8, 0x43, 0x90, 0xa7, 0x3c, 0xf8, 0x25, 0x48, 0x8c, 0x18, 0x4e, 0x02, - 0x5c, 0x1e, 0x12, 0x3b, 0x40, 0x90, 0x73, 0x02, 0x98, 0xc9, 0xd1, 0x01, 0x82, 0xe4, 0x25, 0x70, - 0x60, 0x20, 0xf0, 0x22, 0x0f, 0x41, 0xff, 0x4c, 0xcf, 0xf4, 0x70, 0x24, 0x91, 0xcb, 0xd1, 0xc6, - 0x48, 0xf2, 0x26, 0x56, 0x55, 0x57, 0x75, 0xf7, 0x54, 0x57, 0x55, 0x77, 0x55, 0xb7, 0x60, 0xa3, - 0x65, 0xfa, 0xbb, 0xdd, 0xed, 0xe5, 0x86, 0xd3, 0x5e, 0x31, 0xdc, 0x96, 0xd3, 0x71, 0x9d, 0xbb, - 0xec, 0x8f, 0x8f, 0xb9, 0x8e, 0x65, 0x39, 0x5d, 0xdf, 0x5b, 0xe9, 0xdc, 0x6b, 0xad, 0x18, 0x1d, - 0xd3, 0x5b, 0x91, 0x90, 0xbd, 0x67, 0x0c, 0xab, 0xb3, 0x6b, 0x3c, 0xb3, 0xd2, 0x22, 0x36, 0x71, - 0x0d, 0x9f, 0x34, 0x97, 0x3b, 0xae, 0xe3, 0x3b, 0xe8, 0x53, 0x21, 0xb7, 0xe5, 0x80, 0x1b, 0xfb, - 0xe3, 0xe7, 0x82, 0xb6, 0xcb, 0x9d, 0x7b, 0xad, 0x65, 0xca, 0x6d, 0x59, 0x42, 0x02, 0x6e, 0xa7, - 0x3f, 0x16, 0xe9, 0x4b, 0xcb, 0x69, 0x39, 0x2b, 0x8c, 0xe9, 0x76, 0x77, 0x87, 0xfd, 0x62, 0x3f, - 0xd8, 0x5f, 0x5c, 0xd8, 0x69, 0xfd, 0xde, 0x25, 0x6f, 0xd9, 0x74, 0x68, 0xdf, 0x56, 0x1a, 0x8e, - 0x4b, 0x56, 0xf6, 0x06, 0x3a, 0x74, 0xfa, 0x62, 0x48, 0xd3, 0x36, 0x1a, 0xbb, 0xa6, 0x4d, 0xdc, - 0xfd, 0x70, 0x40, 0x6d, 0xe2, 0x1b, 0x49, 0xad, 0x56, 0x0e, 0x6a, 0xe5, 0x76, 0x6d, 0xdf, 0x6c, - 0x93, 0x81, 0x06, 0x3f, 0x79, 0x54, 0x03, 0xaf, 0xb1, 0x4b, 0xda, 0xc6, 0x40, 0xbb, 0x4f, 0x1c, - 0xd4, 0xae, 0xeb, 0x9b, 0xd6, 0x8a, 0x69, 0xfb, 0x9e, 0xef, 0xc6, 0x1b, 0xe9, 0x7f, 0x34, 0x01, - 0x53, 0xeb, 0xce, 0x76, 0xbd, 0x43, 0x1a, 0xe8, 0x19, 0x28, 0x76, 0x0c, 0xd7, 0xb0, 0x2c, 0x62, - 0x99, 0x5e, 0xbb, 0xa4, 0x9d, 0xd5, 0xce, 0xe7, 0xaa, 0x73, 0xfd, 0x5e, 0xb9, 0x58, 0x0b, 0xc1, - 0x38, 0x4a, 0x43, 0x9b, 0x34, 0x9c, 0x76, 0xc7, 0x22, 0xbe, 0xe9, 0xd8, 0x5e, 0x29, 0x13, 0x36, - 0x59, 0x0d, 0xc1, 0x38, 0x4a, 0x83, 0x6e, 0xc2, 0x49, 0xa3, 0xe1, 0x9b, 0x7b, 0xe4, 0x32, 0x31, - 0x9a, 0x96, 0x69, 0x93, 0x3a, 0x69, 0x38, 0x76, 0xd3, 0x2b, 0x65, 0xcf, 0x6a, 0xe7, 0xb3, 0xd5, - 0x0f, 0xf6, 0x7b, 0xe5, 0x93, 0x95, 0x24, 0x02, 0x9c, 0xdc, 0x0e, 0x5d, 0x84, 0xe9, 0x6d, 0xa3, - 0x71, 0xcf, 0xd9, 0xd9, 0xd9, 0x30, 0xdb, 0xa6, 0x5f, 0x9a, 0x62, 0x9d, 0x98, 0xef, 0xf7, 0xca, - 0xd3, 0xd5, 0x08, 0x1c, 0x2b, 0x54, 0xe8, 0x55, 0xc8, 0x7b, 0xc4, 0x22, 0x0d, 0xdf, 0x71, 0x4b, - 0x13, 0x67, 0xb5, 0xf3, 0xc5, 0x0b, 0x9f, 0x58, 0xe6, 0x13, 0xb8, 0x1c, 0x9d, 0xc0, 0x50, 0xc5, - 0xe8, 0xf7, 0x5d, 0xde, 0x7b, 0x66, 0x79, 0xc3, 0xd8, 0x26, 0x56, 0x5d, 0x34, 0xad, 0x4e, 0xf7, - 0x7b, 0xe5, 0x7c, 0xf0, 0x0b, 0x4b, 0x96, 0xe8, 0x93, 0x30, 0xdb, 0x36, 0xec, 0xae, 0x21, 0x29, - 0x4b, 0xb9, 0xb3, 0xda, 0xf9, 0x7c, 0x15, 0xf5, 0x7b, 0xe5, 0xd9, 0x4d, 0x05, 0x83, 0x63, 0x94, - 0xe8, 0x16, 0xe4, 0x7d, 0xd2, 0xee, 0x58, 0x86, 0x4f, 0x4a, 0x93, 0xac, 0x6b, 0x4f, 0x47, 0xba, - 0xb6, 0x4c, 0xd5, 0x93, 0x76, 0xa4, 0xe6, 0x34, 0xb7, 0x04, 0x19, 0xfd, 0x7c, 0xd5, 0xf9, 0x77, - 0x7b, 0xe5, 0x27, 0x68, 0x77, 0x02, 0x28, 0x96, 0x6c, 0xd0, 0x6d, 0x38, 0xe5, 0xfb, 0x96, 0x98, - 0xb1, 0xca, 0x8e, 0x4f, 0xdc, 0xab, 0xa6, 0x6d, 0x7a, 0xbb, 0xa4, 0x59, 0xca, 0xb3, 0xe9, 0x7a, - 0xb2, 0xdf, 0x2b, 0x9f, 0xda, 0xda, 0xda, 0x48, 0x22, 0xc1, 0x07, 0xb5, 0xd5, 0xff, 0x5d, 0x83, - 0x85, 0xca, 0x46, 0x75, 0xcb, 0x35, 0x76, 0x76, 0xcc, 0x06, 0x76, 0xba, 0xbe, 0x69, 0xb7, 0xd0, - 0x47, 0x60, 0xca, 0xb4, 0x5b, 0x2e, 0xf1, 0x3c, 0xa6, 0x43, 0x85, 0xea, 0x9c, 0xe8, 0xd9, 0xd4, - 0x1a, 0x07, 0xe3, 0x00, 0x8f, 0x9e, 0x85, 0xa2, 0x47, 0xdc, 0x3d, 0xb3, 0x41, 0x6a, 0x8e, 0xeb, - 0x0b, 0xfd, 0x39, 0x21, 0xc8, 0x8b, 0xf5, 0x10, 0x85, 0xa3, 0x74, 0xb4, 0x99, 0xeb, 0x38, 0xbe, - 0xc0, 0x33, 0xcd, 0x29, 0x84, 0xcd, 0x70, 0x88, 0xc2, 0x51, 0x3a, 0x74, 0x19, 0xe6, 0x0d, 0xdb, - 0x76, 0x7c, 0x83, 0x6a, 0x62, 0xcd, 0x25, 0x3b, 0xe6, 0x03, 0xf6, 0xed, 0x0b, 0xd5, 0x92, 0x68, - 0x3b, 0x5f, 0x89, 0xe1, 0xf1, 0x40, 0x0b, 0xfd, 0xef, 0x32, 0x50, 0xac, 0xd8, 0x86, 0xb5, 0xef, - 0x99, 0x1e, 0xee, 0xda, 0xe8, 0x33, 0x90, 0xa7, 0xba, 0xd1, 0x34, 0x7c, 0x83, 0x8d, 0xb7, 0x78, - 0xe1, 0xe3, 0xc3, 0x69, 0xd2, 0xcd, 0xed, 0xbb, 0xa4, 0xe1, 0x6f, 0x12, 0xdf, 0xa8, 0x22, 0x21, - 0x1f, 0x42, 0x18, 0x96, 0x5c, 0x91, 0x03, 0x13, 0x5e, 0x87, 0x34, 0xd8, 0xf4, 0x14, 0x2f, 0x6c, - 0x2e, 0x8f, 0x63, 0x18, 0x97, 0x23, 0x5d, 0x67, 0x6a, 0x33, 0x2d, 0x44, 0x4f, 0xd0, 0x5f, 0x98, - 0x09, 0x42, 0xf7, 0x61, 0xd2, 0xf3, 0x0d, 0xbf, 0xcb, 0x17, 0x65, 0xf1, 0xc2, 0xcd, 0xf4, 0x44, - 0x32, 0xb6, 0xd5, 0x59, 0x21, 0x74, 0x92, 0xff, 0xc6, 0x42, 0x9c, 0xfe, 0xf7, 0x1a, 0x9c, 0x88, - 0x50, 0x57, 0xdc, 0x56, 0xb7, 0x4d, 0x6c, 0x1f, 0x9d, 0x85, 0x09, 0xdb, 0x68, 0x13, 0xa1, 0x4f, - 0xb2, 0xcb, 0x37, 0x8c, 0x36, 0xc1, 0x0c, 0x83, 0x9e, 0x86, 0xdc, 0x9e, 0x61, 0x75, 0x09, 0x9b, - 0xa4, 0x42, 0x75, 0x46, 0x90, 0xe4, 0x5e, 0xa4, 0x40, 0xcc, 0x71, 0xe8, 0xf3, 0x50, 0x60, 0x7f, - 0x5c, 0x75, 0x9d, 0x76, 0x4a, 0x43, 0x13, 0x3d, 0x7c, 0x31, 0x60, 0x5b, 0x9d, 0xe9, 0xf7, 0xca, - 0x05, 0xf9, 0x13, 0x87, 0x02, 0xf5, 0x7f, 0xd0, 0x60, 0x2e, 0x32, 0xb8, 0x0d, 0xd3, 0xf3, 0xd1, - 0x2b, 0x03, 0xca, 0xb3, 0x3c, 0xa4, 0x19, 0x32, 0x3d, 0xae, 0x3a, 0x72, 0xd9, 0x07, 0x90, 0x88, - 0xe2, 0xd8, 0x90, 0x33, 0x7d, 0xd2, 0xa6, 0x86, 0x39, 0x7b, 0xbe, 0x78, 0x61, 0x2d, 0xb5, 0xcf, - 0x18, 0xce, 0xef, 0x1a, 0xe5, 0x8f, 0xb9, 0x18, 0xfd, 0x37, 0x32, 0xca, 0x08, 0x99, 0x57, 0x71, - 0x60, 0xaa, 0x4d, 0x7c, 0xd7, 0x6c, 0x50, 0x6b, 0x40, 0x7b, 0x71, 0x79, 0xbc, 0x5e, 0x6c, 0x32, - 0x66, 0xa1, 0x4d, 0xe1, 0xbf, 0x3d, 0x1c, 0x48, 0x41, 0xbb, 0x30, 0x61, 0xb8, 0xad, 0x60, 0xcc, - 0x57, 0xd3, 0xf9, 0xbe, 0xa1, 0xce, 0x55, 0xdc, 0x96, 0x87, 0x99, 0x04, 0xb4, 0x02, 0x05, 0x9f, - 0xb8, 0x6d, 0xd3, 0xa6, 0x96, 0x3a, 0xcb, 0xec, 0xfb, 0x82, 0x20, 0x2b, 0x6c, 0x05, 0x08, 0x1c, - 0xd2, 0xe8, 0xef, 0x65, 0x60, 0x61, 0x60, 0x31, 0xa0, 0x8b, 0x90, 0xeb, 0xec, 0x1a, 0x5e, 0xa0, - 0xdd, 0x4b, 0xc1, 0xd4, 0xd6, 0x28, 0xf0, 0x61, 0xaf, 0x3c, 0x13, 0x34, 0x61, 0x00, 0xcc, 0x89, - 0xa9, 0x95, 0x6d, 0x13, 0xcf, 0x33, 0x5a, 0x81, 0xca, 0x47, 0x66, 0x84, 0x81, 0x71, 0x80, 0x47, - 0x5f, 0xd1, 0x60, 0x86, 0xcf, 0x0e, 0x26, 0x5e, 0xd7, 0xf2, 0xe9, 0xb2, 0xa6, 0x73, 0xb3, 0x9e, - 0xc6, 0x97, 0xe0, 0x2c, 0xab, 0x27, 0x85, 0xf4, 0x99, 0x28, 0xd4, 0xc3, 0xaa, 0x5c, 0x74, 0x07, - 0x0a, 0x9e, 0x6f, 0xb8, 0x3e, 0x69, 0x56, 0x7c, 0xe1, 0x76, 0xff, 0xff, 0x70, 0xfa, 0xbe, 0x65, - 0xb6, 0x09, 0x5f, 0x5b, 0xf5, 0x80, 0x01, 0x0e, 0x79, 0xe9, 0xff, 0xaa, 0xc1, 0x7c, 0x30, 0x4d, - 0x81, 0xff, 0x7b, 0x0c, 0x96, 0xd9, 0x57, 0x2c, 0x33, 0x4e, 0x67, 0x7d, 0x29, 0x5e, 0x3d, 0xc1, - 0x3c, 0xeb, 0xff, 0xa2, 0xc1, 0x62, 0x9c, 0xf8, 0x31, 0x58, 0x13, 0x4f, 0xb5, 0x26, 0x37, 0xd2, - 0x1d, 0xed, 0x01, 0x26, 0xe5, 0x07, 0x09, 0x63, 0xfd, 0x1f, 0x6e, 0x57, 0xf4, 0xdf, 0x9b, 0x80, - 0xe9, 0x8a, 0xed, 0x9b, 0x95, 0x9d, 0x1d, 0xd3, 0x36, 0xfd, 0x7d, 0xf4, 0xd5, 0x0c, 0xac, 0x74, - 0x5c, 0xb2, 0x43, 0x5c, 0x97, 0x34, 0x2f, 0x77, 0x5d, 0xd3, 0x6e, 0xd5, 0x1b, 0xbb, 0xa4, 0xd9, - 0xb5, 0x4c, 0xbb, 0xb5, 0xd6, 0xb2, 0x1d, 0x09, 0xbe, 0xf2, 0x80, 0x34, 0xba, 0x34, 0x58, 0x11, - 0xdf, 0xbf, 0x3d, 0x5e, 0x37, 0x6b, 0xa3, 0x09, 0xad, 0x7e, 0xa2, 0xdf, 0x2b, 0xaf, 0x8c, 0xd8, - 0x08, 0x8f, 0x3a, 0x34, 0xf4, 0x56, 0x06, 0x96, 0x5d, 0xf2, 0xd9, 0xae, 0x39, 0xfc, 0x6c, 0xf0, - 0x05, 0x6a, 0x8d, 0x37, 0x1b, 0x78, 0x24, 0x99, 0xd5, 0x0b, 0xfd, 0x5e, 0x79, 0xc4, 0x36, 0x78, - 0xc4, 0x71, 0xe9, 0x7f, 0xaa, 0x41, 0x7e, 0x84, 0x28, 0xa9, 0xac, 0x46, 0x49, 0x85, 0x81, 0x08, - 0xc9, 0x1f, 0x8c, 0x90, 0xae, 0x8d, 0x37, 0x69, 0xc3, 0x44, 0x46, 0xff, 0x46, 0xf7, 0x11, 0xf1, - 0x48, 0x0a, 0xed, 0xc2, 0x62, 0x27, 0xdc, 0xe3, 0x5c, 0x37, 0xbc, 0x5d, 0x86, 0x13, 0xc3, 0xbb, - 0xd8, 0xef, 0x95, 0x17, 0x6b, 0x09, 0xf8, 0x87, 0xbd, 0x72, 0x49, 0x32, 0x89, 0x11, 0xe0, 0x44, - 0x8e, 0xa8, 0x03, 0xf9, 0x1d, 0x93, 0x58, 0x4d, 0x4c, 0x76, 0x84, 0xa6, 0x8c, 0xb9, 0xbc, 0xaf, - 0x0a, 0x6e, 0x7c, 0x7f, 0x18, 0xfc, 0xc2, 0x52, 0x8a, 0xfe, 0xa3, 0x09, 0x98, 0xab, 0x5a, 0x5d, - 0x72, 0xcd, 0x25, 0x24, 0x88, 0x03, 0x2a, 0x30, 0xd7, 0x71, 0xc9, 0x9e, 0x49, 0xee, 0xcb, 0x4d, - 0x23, 0x1f, 0xea, 0x29, 0xf1, 0x25, 0xe7, 0x6a, 0x2a, 0x1a, 0xc7, 0xe9, 0xd1, 0xf3, 0x30, 0xcb, - 0x37, 0xc9, 0x92, 0x03, 0xff, 0xd0, 0x1f, 0x10, 0x1c, 0x66, 0x2b, 0x0a, 0x16, 0xc7, 0xa8, 0xd1, - 0x2b, 0x50, 0xf2, 0x1a, 0x86, 0x45, 0x6e, 0x77, 0x84, 0xa8, 0xd5, 0x5d, 0xd2, 0xb8, 0x57, 0x73, - 0x4c, 0xdb, 0x17, 0x01, 0xce, 0x59, 0xc1, 0xa9, 0x54, 0x3f, 0x80, 0x0e, 0x1f, 0xc8, 0x01, 0xfd, - 0x89, 0x06, 0x67, 0x3a, 0x2e, 0xa9, 0xb9, 0x4e, 0xdb, 0xa1, 0xda, 0x3b, 0x10, 0x0a, 0x89, 0x90, - 0xe0, 0xc5, 0x31, 0x97, 0x29, 0x87, 0x0c, 0xee, 0x3a, 0x3e, 0xd4, 0xef, 0x95, 0xcf, 0xd4, 0x0e, - 0xeb, 0x00, 0x3e, 0xbc, 0x7f, 0xe8, 0x5b, 0x1a, 0x2c, 0x75, 0x1c, 0xcf, 0x3f, 0x64, 0x08, 0xb9, - 0x63, 0x1d, 0x82, 0xde, 0xef, 0x95, 0x97, 0x6a, 0x87, 0xf6, 0x00, 0x1f, 0xd1, 0x43, 0xfd, 0x4b, - 0x45, 0x58, 0x88, 0xe8, 0x9e, 0x6b, 0xf8, 0xa4, 0xb5, 0x8f, 0x9e, 0x83, 0x99, 0x40, 0x19, 0xf8, - 0xae, 0x9a, 0xeb, 0x9e, 0x8c, 0xeb, 0x2a, 0x51, 0x24, 0x56, 0x69, 0xa9, 0xde, 0x49, 0x55, 0xe4, - 0xad, 0x63, 0x7a, 0x57, 0x53, 0xb0, 0x38, 0x46, 0x8d, 0xd6, 0xe0, 0x84, 0x80, 0x60, 0xd2, 0xb1, - 0xcc, 0x86, 0xb1, 0xea, 0x74, 0x85, 0xca, 0xe5, 0xaa, 0xa7, 0xfa, 0xbd, 0xf2, 0x89, 0xda, 0x20, - 0x1a, 0x27, 0xb5, 0x41, 0x1b, 0xb0, 0x68, 0x74, 0x7d, 0x47, 0x8e, 0xff, 0x8a, 0x6d, 0x6c, 0x5b, - 0xa4, 0xc9, 0x54, 0x2b, 0x5f, 0x2d, 0x51, 0xab, 0x51, 0x49, 0xc0, 0xe3, 0xc4, 0x56, 0xa8, 0x16, - 0xe3, 0x16, 0x1c, 0x56, 0xe5, 0x58, 0xcf, 0x9e, 0x12, 0xc3, 0x53, 0x39, 0x06, 0xe7, 0x55, 0x89, - 0x2d, 0x91, 0x05, 0xb3, 0x6d, 0xe3, 0xc1, 0x6d, 0xdb, 0xd8, 0x33, 0x4c, 0x8b, 0x0a, 0x11, 0x67, - 0x3c, 0x07, 0x87, 0xa6, 0x5d, 0xdf, 0xb4, 0x96, 0xf9, 0xf9, 0xdd, 0xf2, 0x9a, 0xed, 0xdf, 0x74, - 0xeb, 0x3e, 0x75, 0x02, 0xc1, 0x59, 0x52, 0x94, 0x17, 0x8e, 0xf1, 0x46, 0x37, 0xe1, 0x24, 0x5b, - 0x8e, 0x97, 0x9d, 0xfb, 0xf6, 0x65, 0x62, 0x19, 0xfb, 0xc1, 0x00, 0xf8, 0x29, 0x19, 0x3b, 0x6d, - 0xab, 0x27, 0x11, 0xe0, 0xe4, 0x76, 0xc8, 0x80, 0x27, 0x55, 0x04, 0x26, 0x7b, 0xa6, 0x67, 0x3a, - 0x36, 0x3f, 0x7c, 0xe3, 0xa7, 0x49, 0xe5, 0x7e, 0xaf, 0xfc, 0x64, 0xfd, 0x60, 0x32, 0x7c, 0x18, - 0x0f, 0xf4, 0xeb, 0x1a, 0x2c, 0x26, 0x2d, 0xc3, 0x52, 0x21, 0x8d, 0xf3, 0x8f, 0xd8, 0xd2, 0xe2, - 0x1a, 0x91, 0x68, 0x14, 0x12, 0x3b, 0x81, 0x5e, 0xd7, 0x60, 0xda, 0x88, 0x04, 0x67, 0x25, 0x60, - 0xbd, 0x5a, 0x1f, 0x37, 0x1a, 0x0e, 0x39, 0xf2, 0xb3, 0xcb, 0x28, 0x04, 0x2b, 0x12, 0xd1, 0x6f, - 0x6a, 0x70, 0x32, 0x71, 0x8d, 0x97, 0x8a, 0xc7, 0x31, 0x43, 0x4c, 0x49, 0x92, 0x6d, 0x4e, 0x72, - 0x37, 0xd0, 0x3b, 0x9a, 0x74, 0x65, 0x9b, 0xc1, 0x7e, 0x64, 0x9a, 0x75, 0xed, 0xd6, 0x98, 0xf1, - 0x68, 0xe8, 0xbd, 0x03, 0xc6, 0xd5, 0x13, 0x11, 0xcf, 0x18, 0x00, 0x71, 0x5c, 0x3c, 0xfa, 0x9a, - 0x16, 0xb8, 0x46, 0xd9, 0xa3, 0x99, 0xe3, 0xea, 0x11, 0x0a, 0x3d, 0xad, 0xec, 0x50, 0x4c, 0xb8, - 0xfe, 0xcf, 0x59, 0x98, 0x5e, 0x35, 0x6c, 0xc3, 0xdd, 0x17, 0xae, 0xe5, 0x8f, 0x35, 0x78, 0xaa, - 0xd1, 0x75, 0x5d, 0x62, 0xfb, 0x75, 0x9f, 0x74, 0x06, 0x1d, 0x8b, 0x76, 0xac, 0x8e, 0xe5, 0x6c, - 0xbf, 0x57, 0x7e, 0x6a, 0xf5, 0x10, 0xf9, 0xf8, 0xd0, 0xde, 0xa1, 0xbf, 0xd2, 0x40, 0x17, 0x04, - 0x55, 0xa3, 0x71, 0xaf, 0xe5, 0x3a, 0x5d, 0xbb, 0x39, 0x38, 0x88, 0xcc, 0xb1, 0x0e, 0xe2, 0x5c, - 0xbf, 0x57, 0xd6, 0x57, 0x8f, 0xec, 0x05, 0x1e, 0xa2, 0xa7, 0xe8, 0x1a, 0x2c, 0x08, 0xaa, 0x2b, - 0x0f, 0x3a, 0xc4, 0x35, 0x69, 0x6c, 0x2a, 0x4e, 0x9a, 0x3f, 0x28, 0xcc, 0xfe, 0xc2, 0x6a, 0x9c, - 0x00, 0x0f, 0xb6, 0xd1, 0xff, 0x60, 0x02, 0x20, 0xf8, 0xd2, 0xa4, 0x83, 0x7e, 0x02, 0x0a, 0x1e, - 0xf1, 0xef, 0x10, 0xb3, 0xb5, 0xeb, 0x8b, 0x1c, 0x0b, 0x3f, 0xd6, 0x08, 0x80, 0x38, 0xc4, 0xa3, - 0x7b, 0x90, 0xeb, 0x18, 0x5d, 0x8f, 0x88, 0x79, 0x5b, 0x4f, 0x65, 0xde, 0x6a, 0x94, 0x23, 0x8f, - 0xfd, 0xd9, 0x9f, 0x98, 0xcb, 0x40, 0x5f, 0xd6, 0x00, 0x88, 0x3a, 0xd6, 0xe2, 0x85, 0x7a, 0x2a, - 0x22, 0xc3, 0xe9, 0xa0, 0x73, 0x50, 0x9d, 0xed, 0xf7, 0xca, 0x10, 0x99, 0xb5, 0x88, 0x58, 0x74, - 0x1f, 0xf2, 0x46, 0x60, 0xce, 0x26, 0x8e, 0xc3, 0x9c, 0xb1, 0x90, 0x5c, 0x7e, 0x6f, 0x29, 0x0c, - 0xbd, 0xa5, 0xc1, 0xac, 0x47, 0x7c, 0xf1, 0xa9, 0xa8, 0x7f, 0x12, 0xb1, 0xdc, 0xc6, 0x78, 0xf2, - 0xeb, 0x0a, 0x4f, 0x6e, 0x1c, 0x54, 0x18, 0x8e, 0xc9, 0xd5, 0xff, 0x33, 0x0f, 0xb3, 0x81, 0xca, - 0x84, 0xe1, 0x59, 0x83, 0x43, 0x92, 0xc3, 0xb3, 0xd5, 0x28, 0x12, 0xab, 0xb4, 0xb4, 0xb1, 0xe7, - 0xd3, 0x78, 0x40, 0x8d, 0xce, 0x64, 0xe3, 0x7a, 0x14, 0x89, 0x55, 0x5a, 0xd4, 0x86, 0x9c, 0xe7, - 0x93, 0x4e, 0x70, 0x68, 0x78, 0x7d, 0xbc, 0xd9, 0x08, 0x57, 0x42, 0x78, 0xe0, 0x43, 0x7f, 0x79, - 0x98, 0x4b, 0x41, 0x6f, 0x6b, 0x30, 0xeb, 0x2b, 0x09, 0x25, 0xa1, 0x06, 0xe9, 0x68, 0xa2, 0x9a, - 0xab, 0xe2, 0x5f, 0x43, 0x85, 0xe1, 0x98, 0xf8, 0x84, 0x88, 0x2d, 0x77, 0x8c, 0x11, 0xdb, 0x4b, - 0x90, 0x6f, 0x1b, 0x0f, 0xea, 0x5d, 0xb7, 0xf5, 0xe8, 0x91, 0x21, 0x53, 0xf1, 0x4d, 0xc1, 0x05, - 0x4b, 0x7e, 0xe8, 0x0d, 0x2d, 0xb2, 0xb8, 0xa6, 0x18, 0xf3, 0x3b, 0xe9, 0x2e, 0x2e, 0x69, 0x50, - 0x0f, 0x5c, 0x66, 0x03, 0xf1, 0x53, 0xfe, 0xb1, 0xc7, 0x4f, 0x34, 0x16, 0xe0, 0x0b, 0x44, 0xc6, - 0x02, 0x85, 0x63, 0x8d, 0x05, 0x56, 0x15, 0x61, 0x38, 0x26, 0x9c, 0xf5, 0x87, 0xaf, 0x39, 0xd9, - 0x1f, 0x38, 0xd6, 0xfe, 0xd4, 0x15, 0x61, 0x38, 0x26, 0x5c, 0xff, 0x81, 0x06, 0xa7, 0x56, 0xad, - 0xae, 0xe7, 0x13, 0xf7, 0x7f, 0xcd, 0x99, 0xfa, 0x7f, 0x68, 0xf0, 0xe4, 0x01, 0x63, 0x7e, 0x0c, - 0x47, 0xeb, 0xaf, 0xa9, 0x47, 0xeb, 0xb7, 0xc7, 0xb4, 0xb1, 0xc9, 0xe3, 0x38, 0xe0, 0x84, 0xdd, - 0x87, 0x99, 0xcb, 0x86, 0x6f, 0x34, 0x9d, 0x16, 0x3f, 0xf2, 0x46, 0xcf, 0x43, 0xde, 0xb4, 0x7d, - 0xe2, 0xee, 0x19, 0x96, 0xf0, 0x32, 0x7a, 0xd0, 0xf5, 0x35, 0x01, 0x7f, 0xd8, 0x2b, 0xcf, 0x5e, - 0xee, 0xba, 0x2c, 0x2d, 0xce, 0x6d, 0x0e, 0x96, 0x6d, 0xd0, 0xd3, 0x90, 0xfb, 0x6c, 0x97, 0xb8, - 0xfb, 0xf1, 0x54, 0xec, 0x2d, 0x0a, 0xc4, 0x1c, 0xa7, 0xff, 0x6d, 0x06, 0x22, 0x11, 0xc0, 0x63, - 0x50, 0x2b, 0x5b, 0x51, 0xab, 0x31, 0x7d, 0x7a, 0x24, 0x9e, 0x39, 0x28, 0x87, 0xbe, 0x17, 0xcb, - 0xa1, 0xdf, 0x48, 0x4d, 0xe2, 0xe1, 0x29, 0xf4, 0xf7, 0x34, 0x78, 0x32, 0x24, 0x1e, 0x8c, 0x6b, - 0x8f, 0x3e, 0x24, 0x7e, 0x16, 0x8a, 0x46, 0xd8, 0x4c, 0x7c, 0x45, 0x59, 0x5d, 0x11, 0xe1, 0x88, - 0xa3, 0x74, 0x61, 0x1a, 0x33, 0xfb, 0x88, 0x69, 0xcc, 0x89, 0xc3, 0xd3, 0x98, 0xfa, 0x0f, 0x33, - 0x70, 0x66, 0x70, 0x64, 0xb2, 0xda, 0x85, 0xec, 0x0c, 0x31, 0xb6, 0x4b, 0x30, 0x1d, 0x14, 0xc5, - 0x50, 0xa8, 0x18, 0xdc, 0xa2, 0xa0, 0x9c, 0xde, 0x8a, 0xe0, 0xb0, 0x42, 0x49, 0x5b, 0x36, 0xf8, - 0xba, 0xaa, 0x37, 0x9c, 0x4e, 0x90, 0xef, 0x95, 0x2d, 0x57, 0x23, 0x38, 0xac, 0x50, 0xca, 0xc4, - 0xd1, 0xc4, 0xb1, 0x27, 0xa4, 0xeb, 0x70, 0x32, 0xc8, 0x1f, 0x5c, 0x75, 0xdc, 0xb0, 0x04, 0x4b, - 0x14, 0x1f, 0x9d, 0x11, 0x4d, 0x4e, 0xe2, 0x24, 0x22, 0x9c, 0xdc, 0x56, 0x7f, 0x2f, 0x0b, 0x27, - 0xc2, 0x69, 0x5f, 0x75, 0xec, 0xa6, 0xc9, 0xb2, 0x30, 0xcf, 0xc1, 0x84, 0xbf, 0xdf, 0x09, 0x26, - 0xfb, 0xff, 0x05, 0xdd, 0xd9, 0xda, 0xef, 0xd0, 0xaf, 0x7d, 0x2a, 0xa1, 0x09, 0x45, 0x61, 0xd6, - 0x08, 0x6d, 0xc8, 0xd5, 0xc1, 0xbf, 0xc0, 0x45, 0x55, 0x9b, 0x1f, 0xf6, 0xca, 0x09, 0x15, 0x79, - 0xcb, 0x92, 0x93, 0xaa, 0xf3, 0xe8, 0x2e, 0xcc, 0x5a, 0x86, 0xe7, 0xdf, 0xee, 0x34, 0x0d, 0x9f, - 0x6c, 0x99, 0x6d, 0x22, 0xd6, 0xdc, 0x28, 0xb9, 0x65, 0x79, 0x54, 0xb9, 0xa1, 0x70, 0xc2, 0x31, - 0xce, 0x68, 0x0f, 0x10, 0x85, 0x6c, 0xb9, 0x86, 0xed, 0xf1, 0x51, 0x51, 0x79, 0xa3, 0xe7, 0xb2, - 0x4f, 0x0b, 0x79, 0x68, 0x63, 0x80, 0x1b, 0x4e, 0x90, 0x80, 0xce, 0xc1, 0xa4, 0x4b, 0x0c, 0x4f, - 0x7c, 0xcc, 0x42, 0xb8, 0xfe, 0x31, 0x83, 0x62, 0x81, 0x8d, 0x2e, 0xa8, 0xc9, 0x23, 0x16, 0xd4, - 0xf7, 0x34, 0x98, 0x0d, 0x3f, 0xd3, 0x63, 0x70, 0x73, 0x6d, 0xd5, 0xcd, 0x5d, 0x4f, 0xcb, 0x24, - 0x1e, 0xe0, 0xd9, 0xde, 0xcf, 0x46, 0xc7, 0xc7, 0xb2, 0xc6, 0x9f, 0x83, 0x42, 0xb0, 0xaa, 0x83, - 0xbc, 0xf1, 0x98, 0x91, 0xa7, 0x12, 0x59, 0x44, 0xca, 0x3f, 0x84, 0x10, 0x1c, 0xca, 0xa3, 0x8e, - 0xb5, 0x29, 0x9c, 0xa6, 0x50, 0x7b, 0xe9, 0x58, 0x03, 0x67, 0x9a, 0xe4, 0x58, 0x83, 0x36, 0xe8, - 0x36, 0x9c, 0xea, 0xb8, 0x0e, 0xab, 0x9c, 0x4b, 0x2a, 0x9e, 0x14, 0x55, 0x7c, 0xb5, 0x64, 0x12, - 0x7c, 0x50, 0x5b, 0xb5, 0x8c, 0x65, 0xe2, 0xe8, 0x32, 0x16, 0xf4, 0x0b, 0x72, 0x1b, 0x41, 0xbc, - 0x52, 0x8e, 0x4d, 0xe2, 0xcb, 0x69, 0x7d, 0xca, 0x04, 0xb3, 0x1e, 0xaa, 0x54, 0x45, 0x08, 0xc5, - 0x52, 0xbc, 0xfe, 0x66, 0x0e, 0xe6, 0xe3, 0xbe, 0xf1, 0xf8, 0x2b, 0x6a, 0x7e, 0x59, 0x83, 0xf9, - 0xe0, 0xbb, 0x72, 0x99, 0x24, 0xd8, 0x1f, 0x6f, 0xa4, 0xa4, 0x4e, 0xdc, 0xcb, 0xcb, 0xc2, 0xc4, - 0xad, 0x98, 0x34, 0x3c, 0x20, 0x1f, 0xbd, 0x0a, 0x45, 0xb9, 0x8d, 0x7c, 0xa4, 0xf2, 0x1a, 0x56, - 0xb8, 0x5b, 0x09, 0x59, 0xe0, 0x28, 0x3f, 0xf4, 0xa6, 0x06, 0xd0, 0x08, 0x0c, 0x70, 0xf0, 0xdd, - 0x6f, 0xa5, 0xf5, 0xdd, 0xa5, 0x69, 0x0f, 0xc3, 0x38, 0x09, 0xf2, 0x70, 0x44, 0x30, 0xfa, 0x15, - 0xb6, 0x81, 0x94, 0x71, 0x87, 0x57, 0x9a, 0x64, 0x3d, 0xf9, 0x74, 0xda, 0x1a, 0x18, 0x1e, 0x2b, - 0x4a, 0x27, 0x1f, 0x41, 0x79, 0x58, 0xe9, 0x84, 0xfe, 0x1c, 0xc8, 0x34, 0x2f, 0x5d, 0x50, 0x2c, - 0xd1, 0x5b, 0x33, 0xfc, 0x5d, 0xa1, 0x82, 0x72, 0x41, 0x5d, 0x0d, 0x10, 0x38, 0xa4, 0xd1, 0xff, - 0x4c, 0x83, 0xc5, 0x35, 0xcf, 0x37, 0x9d, 0xcb, 0xc4, 0xf3, 0xe9, 0x1a, 0xa3, 0xee, 0xb8, 0x6b, - 0x91, 0x21, 0x02, 0x9a, 0xcb, 0x30, 0x2f, 0xce, 0x7a, 0xba, 0xdb, 0x1e, 0xf1, 0x23, 0x41, 0x8d, - 0x54, 0x9d, 0xd5, 0x18, 0x1e, 0x0f, 0xb4, 0xa0, 0x5c, 0xc4, 0xa1, 0x4f, 0xc8, 0x25, 0xab, 0x72, - 0xa9, 0xc7, 0xf0, 0x78, 0xa0, 0x85, 0xfe, 0x8d, 0x0c, 0x9c, 0x60, 0xc3, 0x88, 0x15, 0x04, 0xff, - 0x92, 0x06, 0xb3, 0x7b, 0xa6, 0xeb, 0xb3, 0x22, 0xe7, 0xf0, 0xf4, 0x6a, 0x6c, 0xed, 0x61, 0xb2, - 0x5e, 0x54, 0x18, 0x87, 0x6e, 0x5c, 0x85, 0xe3, 0x58, 0x07, 0x68, 0x9f, 0xe6, 0x9a, 0xea, 0x6c, - 0xa7, 0xb3, 0xe3, 0x4c, 0xfa, 0x8e, 0x3c, 0x47, 0x11, 0x03, 0xe2, 0xb8, 0x7c, 0xfd, 0x65, 0x31, - 0x7d, 0x6a, 0xd7, 0x87, 0x50, 0x02, 0x1d, 0x26, 0x5d, 0xa7, 0x4b, 0x5d, 0x1a, 0x75, 0xac, 0x85, - 0x2a, 0xb0, 0xb8, 0x80, 0x41, 0xb0, 0xc0, 0xe8, 0x7f, 0xa3, 0x41, 0x61, 0xdd, 0xd9, 0x16, 0x7b, - 0xbc, 0x9f, 0x4d, 0x61, 0xbf, 0x25, 0xcd, 0xb2, 0x3c, 0x48, 0x08, 0x3d, 0x7d, 0x4b, 0xd9, 0x6d, - 0x5d, 0x19, 0x6f, 0x4a, 0xc5, 0x05, 0x85, 0xc4, 0x7d, 0xfb, 0xef, 0xe4, 0x60, 0xe6, 0x05, 0x63, - 0x9f, 0xd8, 0xbe, 0x21, 0x86, 0xf6, 0x11, 0x98, 0x32, 0x9a, 0xcd, 0xa4, 0xf2, 0xf3, 0x0a, 0x07, - 0xe3, 0x00, 0xcf, 0x76, 0x3a, 0x1d, 0x96, 0x3b, 0x8e, 0xf8, 0xe4, 0x70, 0xa7, 0x13, 0xa2, 0x70, - 0x94, 0x2e, 0x5c, 0x73, 0xab, 0x8e, 0xbd, 0x63, 0xb6, 0x92, 0x56, 0xcb, 0x6a, 0x0c, 0x8f, 0x07, - 0x5a, 0xa0, 0x75, 0x40, 0xa2, 0xb4, 0xac, 0xd2, 0x68, 0x38, 0x5d, 0x9b, 0xaf, 0x3a, 0xbe, 0x09, - 0x92, 0xc1, 0xe1, 0xe6, 0x00, 0x05, 0x4e, 0x68, 0x85, 0x5e, 0x81, 0x52, 0x83, 0x71, 0x16, 0xa1, - 0x42, 0x94, 0x23, 0x0f, 0x17, 0x65, 0xdd, 0xc6, 0xea, 0x01, 0x74, 0xf8, 0x40, 0x0e, 0xb4, 0xa7, - 0x9e, 0xef, 0xb8, 0x46, 0x8b, 0x44, 0xf9, 0x4e, 0xaa, 0x3d, 0xad, 0x0f, 0x50, 0xe0, 0x84, 0x56, - 0xe8, 0x8b, 0x50, 0xf0, 0x77, 0x5d, 0xe2, 0xed, 0x3a, 0x56, 0x53, 0x1c, 0x41, 0x8e, 0xb9, 0x33, - 0x16, 0x5f, 0x7f, 0x2b, 0xe0, 0x1a, 0x09, 0x5e, 0x02, 0x10, 0x0e, 0x65, 0x22, 0x17, 0x26, 0x3d, - 0xba, 0x2d, 0xf3, 0x4a, 0xf9, 0x34, 0xc2, 0x3f, 0x21, 0x9d, 0xed, 0xf4, 0x22, 0x7b, 0x72, 0x26, - 0x01, 0x0b, 0x49, 0xfa, 0x9f, 0x67, 0x60, 0x3a, 0x4a, 0x38, 0xc4, 0x92, 0xfe, 0xb2, 0x06, 0xd3, - 0x0d, 0xc7, 0xf6, 0x5d, 0xc7, 0xe2, 0xfb, 0x4d, 0xbe, 0x92, 0xc6, 0x2c, 0xe1, 0x66, 0xac, 0x2e, - 0x13, 0xdf, 0x30, 0xad, 0xc8, 0xd6, 0x35, 0x22, 0x06, 0x2b, 0x42, 0xd1, 0x57, 0x35, 0x98, 0x0b, - 0x73, 0x33, 0xe1, 0xc6, 0x37, 0xd5, 0x8e, 0xc8, 0xf2, 0xa6, 0x2b, 0xaa, 0x24, 0x1c, 0x17, 0xad, - 0x6f, 0xc3, 0x7c, 0xfc, 0x6b, 0xd3, 0xa9, 0xec, 0x18, 0x62, 0xad, 0x67, 0xc3, 0xa9, 0xac, 0x19, - 0x9e, 0x87, 0x19, 0x06, 0x7d, 0x14, 0xf2, 0x6d, 0xc3, 0x6d, 0x99, 0xb6, 0x61, 0xb1, 0x59, 0xcc, - 0x46, 0x2c, 0x97, 0x80, 0x63, 0x49, 0xa1, 0x7f, 0x7f, 0x02, 0x8a, 0x9b, 0xc4, 0xf0, 0xba, 0x2e, - 0x61, 0x27, 0x53, 0xc7, 0x1e, 0x4b, 0x2a, 0x35, 0xd1, 0xd9, 0xf4, 0x6a, 0xa2, 0xd1, 0x4b, 0x00, - 0x3b, 0xe2, 0xa6, 0xce, 0x23, 0x85, 0x83, 0x2c, 0x4b, 0x77, 0x55, 0x72, 0xc0, 0x11, 0x6e, 0xe1, - 0x75, 0x8b, 0xdc, 0x21, 0xd7, 0x2d, 0xde, 0xd4, 0x22, 0x5e, 0x86, 0x47, 0x69, 0x77, 0xc6, 0x2d, - 0xd2, 0x95, 0x1f, 0x66, 0x39, 0xf0, 0x3a, 0x57, 0x6c, 0xdf, 0xdd, 0x3f, 0xd4, 0x19, 0x6d, 0x41, - 0xde, 0x25, 0x5e, 0xb7, 0x4d, 0xa3, 0xe2, 0xa9, 0x91, 0xa7, 0x81, 0x25, 0x32, 0xb0, 0x68, 0x8f, - 0x25, 0xa7, 0xd3, 0xcf, 0xc1, 0x8c, 0xd2, 0x05, 0x34, 0x0f, 0xd9, 0x7b, 0x64, 0x9f, 0xeb, 0x09, - 0xa6, 0x7f, 0xa2, 0x45, 0xa5, 0xdc, 0x52, 0x4c, 0xcb, 0x27, 0x33, 0x97, 0x34, 0xfd, 0x87, 0x93, - 0x30, 0x29, 0xfc, 0xd5, 0xd1, 0xb6, 0x20, 0x7a, 0x20, 0x9b, 0x79, 0x84, 0x03, 0xd9, 0x75, 0x98, - 0x36, 0x6d, 0xd3, 0x37, 0x0d, 0x8b, 0x55, 0xdb, 0x08, 0x5f, 0x75, 0x2e, 0x58, 0xff, 0x6b, 0x11, - 0x5c, 0x02, 0x1f, 0xa5, 0x2d, 0xba, 0x05, 0x39, 0x66, 0xcc, 0x85, 0x3e, 0x8d, 0x9e, 0x9b, 0x62, - 0x79, 0x67, 0x5e, 0xbf, 0xc5, 0x39, 0xb1, 0xe0, 0xb3, 0xdb, 0x68, 0x10, 0xcf, 0x93, 0x11, 0xbf, - 0x50, 0xab, 0x30, 0xf8, 0x8c, 0xe1, 0xf1, 0x40, 0x0b, 0xca, 0x65, 0xc7, 0x30, 0xad, 0xae, 0x4b, - 0x42, 0x2e, 0x93, 0x2a, 0x97, 0xab, 0x31, 0x3c, 0x1e, 0x68, 0x81, 0x76, 0x60, 0x5a, 0xc0, 0xc2, - 0xcb, 0x84, 0x8f, 0x32, 0x4a, 0x96, 0x82, 0xba, 0x1a, 0xe1, 0x84, 0x15, 0xbe, 0xa8, 0x0b, 0x0b, - 0xa6, 0xdd, 0x70, 0xec, 0x86, 0xd5, 0xf5, 0xcc, 0x3d, 0x12, 0x16, 0x4f, 0x3d, 0x8a, 0xb0, 0x93, - 0xfd, 0x5e, 0x79, 0x61, 0x2d, 0xce, 0x0e, 0x0f, 0x4a, 0x40, 0x6f, 0x68, 0x70, 0xb2, 0xe1, 0xd8, - 0x1e, 0x2b, 0x1f, 0xde, 0x23, 0x57, 0x5c, 0xd7, 0x71, 0xb9, 0xec, 0xc2, 0x23, 0xca, 0x66, 0xc5, - 0x41, 0xab, 0x49, 0x2c, 0x71, 0xb2, 0x24, 0xf4, 0x1a, 0xe4, 0x3b, 0xae, 0xb3, 0x67, 0x36, 0x89, - 0x2b, 0xd2, 0x5c, 0x1b, 0x69, 0x54, 0xee, 0xd7, 0x04, 0xcf, 0xd0, 0x12, 0x04, 0x10, 0x2c, 0xe5, - 0xe9, 0x5f, 0x9f, 0x84, 0x59, 0x95, 0x1c, 0x7d, 0x01, 0xa0, 0xe3, 0x3a, 0x6d, 0xe2, 0xef, 0x12, - 0x59, 0x64, 0x73, 0x63, 0xdc, 0xaa, 0xf9, 0x80, 0x9f, 0xb8, 0x54, 0xc0, 0x2c, 0x69, 0x08, 0xc5, - 0x11, 0x89, 0xc8, 0x85, 0xa9, 0x7b, 0xdc, 0xa7, 0x09, 0x17, 0xff, 0x42, 0x2a, 0x01, 0x89, 0x90, - 0x5c, 0xa4, 0x2e, 0x47, 0x80, 0x70, 0x20, 0x08, 0x6d, 0x43, 0xf6, 0x3e, 0xd9, 0x4e, 0xa7, 0xbe, - 0xfb, 0x0e, 0x11, 0x7b, 0x8a, 0xea, 0x54, 0xbf, 0x57, 0xce, 0xde, 0x21, 0xdb, 0x98, 0x32, 0xa7, - 0xe3, 0x6a, 0xf2, 0xb4, 0x92, 0x30, 0x15, 0x63, 0x8e, 0x4b, 0xc9, 0x51, 0xf1, 0x71, 0x09, 0x10, - 0x0e, 0x04, 0xa1, 0xd7, 0xa0, 0x70, 0xdf, 0xd8, 0x23, 0x3b, 0xae, 0x63, 0xfb, 0x22, 0x49, 0x3f, - 0x66, 0xf1, 0xc8, 0x9d, 0x80, 0x9d, 0x90, 0xcb, 0xbc, 0xad, 0x04, 0xe2, 0x50, 0x1c, 0xda, 0x83, - 0xbc, 0x4d, 0xee, 0x63, 0x62, 0x99, 0x0d, 0x91, 0xb7, 0x1f, 0x53, 0xad, 0x6f, 0x08, 0x6e, 0x42, - 0x32, 0x73, 0x43, 0x01, 0x0c, 0x4b, 0x59, 0xf4, 0x5b, 0xde, 0x75, 0xb6, 0x85, 0xa1, 0xba, 0x36, - 0xf6, 0x46, 0x2b, 0xfa, 0x2d, 0xd7, 0x9d, 0x6d, 0x4c, 0x99, 0xeb, 0xdf, 0x98, 0x80, 0xe9, 0xe8, - 0xbd, 0xae, 0x21, 0x7c, 0x96, 0x0c, 0x9b, 0x32, 0xa3, 0x84, 0x4d, 0x34, 0xea, 0x6d, 0x87, 0x3e, - 0x3e, 0x38, 0x53, 0x5b, 0x4b, 0x2d, 0x6a, 0x08, 0xa3, 0xde, 0x08, 0xd0, 0xc3, 0x8a, 0xd0, 0x11, - 0x72, 0x52, 0x34, 0x0e, 0xe2, 0xee, 0x90, 0x17, 0x04, 0xcb, 0x38, 0x48, 0x71, 0x70, 0x17, 0x00, - 0x84, 0xbb, 0xda, 0xe9, 0x5a, 0x4c, 0x39, 0x72, 0xe1, 0x29, 0x57, 0x5d, 0x62, 0x70, 0x84, 0x0a, - 0x9d, 0x83, 0x49, 0xea, 0x30, 0x48, 0x53, 0x54, 0xea, 0xca, 0xad, 0xc5, 0x55, 0x06, 0xc5, 0x02, - 0x8b, 0x2e, 0x51, 0xdf, 0x1e, 0x9a, 0x79, 0x51, 0x80, 0xbb, 0x18, 0xfa, 0xf6, 0x10, 0x87, 0x15, - 0x4a, 0xda, 0x75, 0x42, 0xad, 0x32, 0x33, 0xfd, 0x91, 0xae, 0x33, 0x53, 0x8d, 0x39, 0x8e, 0x6d, - 0x75, 0x63, 0x56, 0x9c, 0x19, 0xed, 0x5c, 0x64, 0xab, 0x1b, 0xc3, 0xe3, 0x81, 0x16, 0xfa, 0x67, - 0x60, 0x56, 0xd5, 0x66, 0x3a, 0xc5, 0x1d, 0xd7, 0xd9, 0x31, 0x2d, 0x12, 0xdf, 0xa4, 0xd7, 0x38, - 0x18, 0x07, 0xf8, 0xe1, 0xd2, 0xc9, 0x7f, 0x91, 0x85, 0x13, 0x37, 0x5a, 0xa6, 0xfd, 0x20, 0x76, - 0xf4, 0x94, 0x74, 0xe5, 0x5b, 0x1b, 0xf5, 0xca, 0x77, 0x58, 0x3f, 0x25, 0x2e, 0xb0, 0x27, 0xd7, - 0x4f, 0x05, 0xb7, 0xdb, 0x55, 0x5a, 0xf4, 0x3d, 0x0d, 0x9e, 0x32, 0x9a, 0x3c, 0xbe, 0x30, 0x2c, - 0x01, 0x0d, 0x85, 0x06, 0x3a, 0xee, 0x8d, 0x69, 0x2d, 0x06, 0x07, 0xbf, 0x5c, 0x39, 0x44, 0x2a, - 0x8f, 0x9a, 0x3f, 0x2c, 0x46, 0xf0, 0xd4, 0x61, 0xa4, 0xf8, 0xd0, 0xee, 0x9f, 0xbe, 0x09, 0x1f, - 0x3a, 0x52, 0xd0, 0x48, 0xb1, 0xf1, 0xef, 0x6a, 0x30, 0xcb, 0x0a, 0x13, 0xc3, 0xb0, 0xec, 0x59, - 0x99, 0xfc, 0xe2, 0x1f, 0xef, 0x8c, 0x9a, 0xfc, 0x7a, 0xc8, 0xde, 0xa8, 0xe8, 0x7a, 0x24, 0x96, - 0x0b, 0x7b, 0x59, 0x6c, 0xad, 0x58, 0x8a, 0x2e, 0x33, 0x72, 0xe4, 0x2f, 0x0f, 0x12, 0xea, 0x01, - 0x13, 0x1c, 0xf2, 0xd3, 0xbf, 0x9e, 0x85, 0x13, 0x09, 0x15, 0x36, 0x74, 0xd7, 0x33, 0x69, 0x19, - 0xdb, 0xc4, 0x0a, 0x12, 0x4c, 0xaf, 0xa6, 0x5e, 0xc5, 0xc3, 0x1f, 0xa1, 0x10, 0xdf, 0x50, 0x5a, - 0x06, 0x0e, 0xc4, 0x42, 0x38, 0xfa, 0x35, 0x0d, 0x8a, 0x46, 0x44, 0xcd, 0x78, 0xce, 0x6d, 0x3b, - 0xfd, 0xce, 0x0c, 0x68, 0x55, 0xa4, 0x56, 0x20, 0x54, 0xa2, 0x68, 0x5f, 0x4e, 0xff, 0x34, 0x14, - 0x23, 0x43, 0x18, 0x45, 0x3b, 0x4e, 0x3f, 0x0f, 0xf3, 0x63, 0x69, 0xd7, 0xa7, 0x61, 0xd4, 0x0b, - 0x8a, 0xd4, 0x16, 0xdf, 0x8f, 0xd6, 0xeb, 0xca, 0x19, 0x17, 0x05, 0xbb, 0x02, 0xab, 0x6f, 0xc3, - 0x7c, 0x3c, 0xf4, 0x1b, 0xe5, 0x34, 0x72, 0x28, 0x43, 0xf7, 0x71, 0x18, 0xf1, 0x4a, 0xa1, 0xfe, - 0x97, 0x19, 0x98, 0x12, 0x65, 0x7a, 0x8f, 0xa1, 0xcc, 0xe6, 0x9e, 0x72, 0xf0, 0xbb, 0x96, 0x4a, - 0x75, 0xe1, 0x81, 0x35, 0x36, 0x5e, 0xac, 0xc6, 0xe6, 0x85, 0x74, 0xc4, 0x1d, 0x5e, 0x60, 0xf3, - 0x76, 0x06, 0xe6, 0x62, 0x65, 0x8f, 0xe8, 0xe7, 0xb5, 0xc1, 0xbc, 0xf2, 0xed, 0x54, 0x2b, 0x2b, - 0x65, 0x11, 0xd7, 0xe1, 0x29, 0x66, 0x4f, 0xb9, 0xa4, 0x7c, 0x2b, 0xb5, 0x07, 0x1f, 0x0e, 0xbd, - 0xaf, 0xfc, 0x4f, 0x1a, 0x7c, 0xf0, 0xc0, 0x42, 0x50, 0x76, 0x19, 0xc4, 0x55, 0xb1, 0x42, 0xf7, - 0x52, 0x2e, 0xec, 0x96, 0xe7, 0x88, 0xf1, 0xfb, 0x01, 0x71, 0xf1, 0xe8, 0x22, 0x4c, 0x33, 0x3b, - 0x4e, 0x97, 0x8f, 0x4f, 0x3a, 0xe2, 0xdd, 0x19, 0xb6, 0x67, 0xaf, 0x47, 0xe0, 0x58, 0xa1, 0xd2, - 0x7f, 0x5b, 0x83, 0xd2, 0x41, 0x57, 0x0f, 0x86, 0x88, 0x88, 0x7f, 0x2a, 0x56, 0xf2, 0x52, 0x1e, - 0x28, 0x79, 0x89, 0xc5, 0xc4, 0x41, 0x75, 0x4b, 0x24, 0x1c, 0xcd, 0x1e, 0x51, 0xd1, 0xf1, 0x35, - 0x0d, 0x4e, 0x1d, 0xa0, 0x38, 0x03, 0xa5, 0x4f, 0xda, 0x23, 0x97, 0x3e, 0x65, 0x86, 0x2d, 0x7d, - 0xd2, 0xff, 0x3a, 0x0b, 0xf3, 0xa2, 0x3f, 0xa1, 0x33, 0xbf, 0xa4, 0x14, 0x0e, 0x7d, 0x38, 0x56, - 0x38, 0xb4, 0x18, 0xa7, 0xff, 0xbf, 0xaa, 0xa1, 0x1f, 0xaf, 0xaa, 0xa1, 0x1f, 0x65, 0xe0, 0x64, - 0xe2, 0xb5, 0x0e, 0xf4, 0x56, 0x82, 0x15, 0xbc, 0x93, 0xf2, 0xfd, 0x91, 0x21, 0xed, 0xe0, 0xb8, - 0xa5, 0x36, 0xbf, 0x1a, 0x2d, 0x71, 0xe1, 0x01, 0xfa, 0xce, 0x31, 0xdc, 0x84, 0x19, 0xb5, 0xda, - 0xe5, 0x17, 0xb3, 0x70, 0x7e, 0x58, 0x46, 0x3f, 0xa6, 0xd5, 0x90, 0x9e, 0x52, 0x0d, 0xf9, 0x78, - 0x3c, 0xd4, 0xf1, 0x14, 0x46, 0x7e, 0x25, 0x2b, 0xdd, 0xde, 0xa0, 0x7e, 0x0e, 0x75, 0xac, 0x3f, - 0x45, 0xa3, 0x98, 0xe0, 0xd1, 0x81, 0xd0, 0x14, 0x4e, 0xd5, 0x39, 0xf8, 0x61, 0xaf, 0xbc, 0x20, - 0xee, 0x36, 0xd7, 0x89, 0x2f, 0x80, 0x38, 0x68, 0x84, 0xce, 0x43, 0xde, 0xe5, 0xd8, 0xa0, 0xfe, - 0x4b, 0xa4, 0x2a, 0x38, 0x0c, 0x4b, 0x2c, 0xfa, 0x62, 0x24, 0xec, 0x9b, 0x38, 0xae, 0x9b, 0x05, - 0x87, 0x65, 0x60, 0xa2, 0xaf, 0xed, 0xe5, 0x52, 0x7f, 0x6d, 0x4f, 0xff, 0xad, 0x2c, 0x14, 0xc5, - 0x97, 0x58, 0xb3, 0x77, 0x9c, 0xc7, 0x10, 0xe6, 0x9e, 0x8b, 0x79, 0xa2, 0x03, 0x82, 0xc5, 0x11, - 0x7c, 0x37, 0x55, 0x18, 0xb3, 0xe1, 0xd8, 0xe2, 0xc8, 0x49, 0x2a, 0xcc, 0x5a, 0xc3, 0xb1, 0x31, - 0xc3, 0xa0, 0x8f, 0x42, 0xde, 0x13, 0xf7, 0xc1, 0x84, 0x39, 0x97, 0x73, 0x1e, 0xdc, 0x13, 0xc3, - 0x92, 0x82, 0xf2, 0xf3, 0x68, 0x70, 0x33, 0xa9, 0xf2, 0x63, 0x81, 0x0d, 0xc3, 0xa0, 0x95, 0xe8, - 0x55, 0xc4, 0x29, 0xb5, 0x4e, 0x29, 0xf1, 0x3a, 0xe2, 0x25, 0x98, 0x36, 0x1a, 0x7e, 0xd7, 0xb0, - 0x44, 0x9b, 0xbc, 0x6a, 0x2f, 0x2a, 0x11, 0x1c, 0x56, 0x28, 0xf5, 0xf7, 0x34, 0xf9, 0x85, 0x1e, - 0x43, 0x9d, 0xe9, 0x5d, 0xb5, 0xce, 0xf4, 0x4a, 0x2a, 0x96, 0xfb, 0x80, 0x22, 0xd3, 0xbb, 0x30, - 0x1d, 0xbd, 0x57, 0x89, 0x5e, 0x8a, 0x78, 0x1e, 0x6d, 0x9c, 0xfb, 0x5b, 0x81, 0x6f, 0x0a, 0xbd, - 0x92, 0xfe, 0xed, 0x9c, 0x9c, 0x45, 0x56, 0xcd, 0x1a, 0xb5, 0x00, 0xda, 0xa1, 0x16, 0x20, 0xba, - 0x00, 0x33, 0xe9, 0x3f, 0x77, 0x19, 0x7d, 0xb2, 0x32, 0x9b, 0xce, 0x93, 0x95, 0x15, 0x98, 0x6b, - 0x9b, 0x36, 0x26, 0x46, 0x53, 0xbe, 0x59, 0x30, 0xc1, 0x9f, 0x83, 0x08, 0xc2, 0xfc, 0x4d, 0x15, - 0x8d, 0xe3, 0xf4, 0xe8, 0x73, 0xb1, 0xf5, 0x92, 0xd6, 0x8e, 0x23, 0x58, 0x6c, 0x87, 0x2e, 0xbf, - 0x0d, 0x58, 0x74, 0xc5, 0xb3, 0x06, 0xd7, 0x4d, 0xcf, 0x77, 0xdc, 0x7d, 0x9e, 0x68, 0xe3, 0xc7, - 0xbf, 0xec, 0xd5, 0x01, 0x9c, 0x80, 0xc7, 0x89, 0xad, 0xa8, 0xbd, 0x61, 0x97, 0x74, 0xf9, 0x71, - 0x70, 0x3e, 0xb4, 0x37, 0x4c, 0xe9, 0x9a, 0x58, 0x60, 0x0f, 0x2b, 0x11, 0xce, 0x8f, 0x51, 0x22, - 0x7c, 0x07, 0x0a, 0x2e, 0x61, 0x9b, 0xa1, 0x4a, 0x90, 0x2a, 0x1c, 0xb9, 0x46, 0x01, 0x07, 0x0c, - 0x70, 0xc8, 0x4b, 0xff, 0xc3, 0x69, 0x98, 0x51, 0xb6, 0xdd, 0xe8, 0x69, 0xc8, 0x19, 0xdb, 0x8e, - 0xcb, 0xcf, 0x5a, 0xf2, 0xe1, 0xa2, 0xab, 0x50, 0x20, 0xe6, 0x38, 0xf4, 0xb6, 0x06, 0x73, 0x1d, - 0xe5, 0x88, 0x30, 0x58, 0xeb, 0x63, 0x26, 0x5d, 0xd4, 0x73, 0xc7, 0xc8, 0xcb, 0x3b, 0xaa, 0x30, - 0x1c, 0x97, 0x4e, 0xd5, 0x55, 0x54, 0xce, 0x58, 0xc4, 0x65, 0xd4, 0x22, 0x26, 0x92, 0x2c, 0x56, - 0x55, 0x34, 0x8e, 0xd3, 0xd3, 0x49, 0x66, 0xa3, 0x1b, 0xe7, 0x71, 0xbc, 0x4a, 0xc0, 0x00, 0x87, - 0xbc, 0xd0, 0xf3, 0x30, 0x2b, 0xae, 0xa5, 0xd7, 0x9c, 0xe6, 0x75, 0xc3, 0xdb, 0x15, 0xde, 0x43, - 0x6e, 0x5e, 0x56, 0x15, 0x2c, 0x8e, 0x51, 0xb3, 0xb1, 0x85, 0x77, 0xff, 0x19, 0x83, 0x49, 0xf5, - 0x61, 0xa2, 0x55, 0x15, 0x8d, 0xe3, 0xf4, 0xd4, 0x75, 0x49, 0x4b, 0x25, 0x1e, 0xe8, 0x0d, 0xd6, - 0x4e, 0x82, 0xb5, 0xaa, 0xc0, 0x5c, 0x97, 0xed, 0x9d, 0x9a, 0x01, 0x52, 0x68, 0xaf, 0x14, 0x78, - 0x5b, 0x45, 0xe3, 0x38, 0x3d, 0x7a, 0x0e, 0x66, 0x5c, 0x6a, 0x0b, 0x24, 0x03, 0x9e, 0xe5, 0x90, - 0x47, 0xf6, 0x38, 0x8a, 0xc4, 0x2a, 0x2d, 0xba, 0x06, 0x0b, 0xe1, 0x05, 0xdd, 0x80, 0x01, 0x4f, - 0x7b, 0xc8, 0xbb, 0xff, 0x95, 0x38, 0x01, 0x1e, 0x6c, 0x83, 0x7e, 0x06, 0xe6, 0x23, 0x33, 0xb1, - 0x66, 0x37, 0xc9, 0x03, 0xf6, 0x46, 0x47, 0xae, 0xba, 0xc8, 0x52, 0x27, 0x31, 0x1c, 0x1e, 0xa0, - 0x46, 0x9f, 0x84, 0xd9, 0x86, 0x63, 0x59, 0xcc, 0x22, 0xf0, 0x47, 0x71, 0xa6, 0x79, 0xfe, 0x88, - 0x7d, 0x37, 0x05, 0x83, 0x63, 0x94, 0x68, 0x1d, 0x90, 0xb3, 0xed, 0x11, 0x77, 0x8f, 0x34, 0xaf, - 0xf1, 0x77, 0x9f, 0xa9, 0x53, 0x9a, 0x51, 0xeb, 0xf6, 0x6e, 0x0e, 0x50, 0xe0, 0x84, 0x56, 0xe8, - 0x4b, 0x6a, 0xf5, 0xf7, 0x6c, 0x1a, 0x4f, 0x00, 0xc6, 0x77, 0xfa, 0x47, 0x96, 0x7e, 0xbb, 0x30, - 0xc9, 0xcb, 0x28, 0x4b, 0x73, 0x69, 0x5c, 0x1a, 0x8e, 0xbe, 0xbf, 0x11, 0x5a, 0x54, 0x0e, 0xc5, - 0x42, 0x12, 0xfa, 0x02, 0x14, 0xb6, 0x83, 0xc7, 0x92, 0x4a, 0xf3, 0x69, 0x78, 0x91, 0xd8, 0xbb, - 0x5f, 0x61, 0xcc, 0x25, 0x11, 0x38, 0x14, 0x89, 0xce, 0x41, 0xf1, 0x7a, 0xad, 0x22, 0xb5, 0x70, - 0x81, 0x7d, 0xfd, 0x09, 0xda, 0x04, 0x47, 0x11, 0x2c, 0x38, 0x0c, 0x3c, 0x3c, 0x8a, 0x05, 0x87, - 0x83, 0x0e, 0x9b, 0x85, 0x92, 0x4c, 0x55, 0xeb, 0xa5, 0x13, 0xf1, 0x50, 0x92, 0xc3, 0xb1, 0xa4, - 0x40, 0xaf, 0x42, 0x51, 0x98, 0x6c, 0x66, 0x9b, 0x16, 0x1f, 0xed, 0x66, 0x01, 0x0e, 0x59, 0xe0, - 0x28, 0x3f, 0xf4, 0x2c, 0x14, 0x3b, 0xec, 0x0d, 0x19, 0x72, 0xb5, 0x6b, 0x59, 0xa5, 0x93, 0xcc, - 0x6e, 0xca, 0x24, 0x42, 0x2d, 0x44, 0xe1, 0x28, 0x9d, 0xfe, 0x46, 0x78, 0x10, 0x2b, 0x9f, 0x49, - 0xf8, 0x7c, 0xf4, 0x6b, 0x69, 0x69, 0xbc, 0xf0, 0x3b, 0xf0, 0x52, 0x16, 0x37, 0xb4, 0x89, 0xdf, - 0xaa, 0x23, 0xf5, 0x33, 0x95, 0x5b, 0xa6, 0xea, 0x13, 0x10, 0xbc, 0xaa, 0x5b, 0xd5, 0x4e, 0xfd, - 0xbd, 0xac, 0x3c, 0x8c, 0x89, 0x65, 0x3e, 0x5d, 0xc8, 0x99, 0x9e, 0x6f, 0x3a, 0x29, 0x96, 0xda, - 0xc7, 0xde, 0x4e, 0x60, 0x95, 0x5c, 0x0c, 0x81, 0xb9, 0x28, 0x2a, 0xd3, 0x6e, 0x99, 0xf6, 0x03, - 0x31, 0xfc, 0x5b, 0xa9, 0xa7, 0x34, 0xb9, 0x4c, 0x86, 0xc0, 0x5c, 0x14, 0xba, 0x0b, 0x59, 0xc3, - 0xda, 0x4e, 0xe9, 0x35, 0xe7, 0xf8, 0x5b, 0xe6, 0xbc, 0x0e, 0xa2, 0xb2, 0x51, 0xc5, 0x54, 0x08, - 0x95, 0xe5, 0xb5, 0x4d, 0xe1, 0x9b, 0xc7, 0x94, 0x55, 0xdf, 0x5c, 0x4b, 0x92, 0x55, 0xdf, 0x5c, - 0xc3, 0x54, 0x88, 0xfe, 0x8e, 0x06, 0x0b, 0x03, 0x34, 0xf1, 0x97, 0xcf, 0xb5, 0xe1, 0x5f, 0x3e, - 0x17, 0x8f, 0x5a, 0xd4, 0x3b, 0x96, 0x99, 0x78, 0x4b, 0x64, 0x2b, 0x86, 0xc7, 0x03, 0x2d, 0xf4, - 0x6f, 0x6a, 0x50, 0x8c, 0x14, 0xee, 0xd2, 0x50, 0x8d, 0x15, 0x38, 0x8b, 0x6e, 0x84, 0xef, 0x79, - 0xb0, 0x63, 0x1f, 0x8e, 0xe3, 0x27, 0x90, 0xad, 0xf0, 0x1c, 0x2e, 0x72, 0x02, 0x49, 0xa1, 0x58, - 0x60, 0xe5, 0x76, 0x35, 0xab, 0xd6, 0xf1, 0x46, 0xb6, 0xab, 0x54, 0x1c, 0xb5, 0x19, 0x62, 0x87, - 0x1c, 0x79, 0x3e, 0xc4, 0xa0, 0x91, 0x21, 0xc3, 0xa1, 0x33, 0x90, 0x25, 0x76, 0x53, 0x04, 0x38, - 0x45, 0x41, 0x92, 0xbd, 0x62, 0x37, 0x31, 0x85, 0xeb, 0x37, 0x61, 0xba, 0x4e, 0x1a, 0x2e, 0xf1, - 0x5f, 0x20, 0xfb, 0xc3, 0x9d, 0x91, 0x9d, 0xe1, 0xb9, 0xc5, 0x8c, 0xca, 0x90, 0x36, 0xa7, 0x70, - 0xfd, 0xf7, 0x35, 0x88, 0xbd, 0xe6, 0x82, 0xf4, 0x58, 0xba, 0x10, 0x06, 0x53, 0x85, 0xca, 0xce, - 0x2d, 0x73, 0xe8, 0xce, 0x6d, 0x1d, 0x50, 0xdb, 0xf0, 0x1b, 0xbb, 0xe2, 0xfb, 0x88, 0x9d, 0x37, - 0x8f, 0x2d, 0xc3, 0x6b, 0x02, 0x03, 0x14, 0x38, 0xa1, 0x95, 0xfe, 0xed, 0x0c, 0x4c, 0x2b, 0x8f, - 0xe8, 0x1e, 0x3d, 0xfc, 0xe1, 0x3b, 0x9a, 0xb0, 0x61, 0xcb, 0x8e, 0xb8, 0x61, 0x3b, 0xe6, 0x7f, - 0xca, 0x10, 0xdd, 0xa5, 0xe6, 0x52, 0xd9, 0xa5, 0xea, 0xdf, 0x9a, 0x80, 0x59, 0xf5, 0x6a, 0xde, - 0x10, 0x73, 0xfa, 0xd1, 0x81, 0x39, 0x1d, 0x31, 0x18, 0xce, 0x8e, 0x1b, 0x0c, 0x4f, 0x8c, 0x1b, - 0x0c, 0xe7, 0x1e, 0x21, 0x18, 0x1e, 0x0c, 0x65, 0x27, 0x87, 0x0e, 0x65, 0x3f, 0x25, 0xcf, 0xdb, - 0xa6, 0x94, 0xa3, 0xd2, 0x30, 0xf3, 0x83, 0xd4, 0xcf, 0xb0, 0xea, 0x34, 0x13, 0x33, 0x68, 0xf9, - 0x23, 0x4e, 0xe1, 0xdc, 0xc4, 0x44, 0xcd, 0xe8, 0x5b, 0xde, 0x0f, 0x0c, 0x9f, 0xa4, 0xd1, 0x5f, - 0xcf, 0x40, 0xf8, 0x2e, 0x2e, 0x7b, 0x20, 0xc7, 0x8b, 0xd8, 0x28, 0xe1, 0xc0, 0xd7, 0xc7, 0x7d, - 0x85, 0x2a, 0xe4, 0x28, 0x32, 0x9d, 0x11, 0x08, 0x56, 0x24, 0xfe, 0x37, 0xbc, 0x87, 0x6b, 0xc0, - 0x5c, 0xac, 0xd4, 0x32, 0xf5, 0xca, 0x89, 0x6f, 0x66, 0xa0, 0x20, 0x8b, 0x55, 0xa9, 0x59, 0xef, - 0xba, 0xc1, 0xfb, 0x26, 0xd2, 0xac, 0xdf, 0xc6, 0x1b, 0x98, 0xc2, 0xd1, 0x03, 0x98, 0xda, 0x25, - 0x46, 0x93, 0xb8, 0xc1, 0xb9, 0xc2, 0x66, 0x4a, 0x55, 0xb2, 0xd7, 0x19, 0xd7, 0x70, 0x2c, 0xfc, - 0xb7, 0x87, 0x03, 0x71, 0x74, 0xb3, 0xee, 0x9b, 0x6d, 0x42, 0x83, 0x5a, 0xe5, 0x1f, 0xe3, 0xc8, - 0xcd, 0xfa, 0x96, 0x82, 0xc5, 0x31, 0x6a, 0x6a, 0x5c, 0xee, 0x7a, 0x8e, 0xcd, 0xee, 0x9e, 0x4e, - 0xa8, 0x91, 0xfd, 0x7a, 0xfd, 0xe6, 0x0d, 0x76, 0xf5, 0x54, 0x52, 0x50, 0x6a, 0x93, 0x15, 0xeb, - 0xb9, 0x44, 0xe4, 0x42, 0xe6, 0xc3, 0xab, 0x05, 0x1c, 0x8e, 0x25, 0x85, 0x7e, 0x1b, 0xe6, 0x62, - 0x03, 0x09, 0xdc, 0xa3, 0x96, 0xec, 0x1e, 0x87, 0xfa, 0xb7, 0x1c, 0xd5, 0xe5, 0x77, 0xdf, 0x5f, - 0x7a, 0xe2, 0x3b, 0xef, 0x2f, 0x3d, 0xf1, 0xdd, 0xf7, 0x97, 0x9e, 0x78, 0xbd, 0xbf, 0xa4, 0xbd, - 0xdb, 0x5f, 0xd2, 0xbe, 0xd3, 0x5f, 0xd2, 0xbe, 0xdb, 0x5f, 0xd2, 0xfe, 0xb1, 0xbf, 0xa4, 0xbd, - 0xf3, 0xfd, 0xa5, 0x27, 0x5e, 0xca, 0x07, 0x93, 0xf9, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6c, - 0xdb, 0xb0, 0x09, 0x68, 0x6a, 0x00, 0x00, -} - -func (m *JobSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *JobSpec) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *JobSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.TTLSecondsAfterFinished != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.TTLSecondsAfterFinished)) - i-- - dAtA[i] = 0x40 - } - if m.BackoffLimit != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.BackoffLimit)) - i-- - dAtA[i] = 0x38 - } - { - size, err := m.Template.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - if m.ManualSelector != nil { - i-- - if *m.ManualSelector { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x28 - } - if m.Selector != nil { - { - size, err := m.Selector.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - } - if m.ActiveDeadlineSeconds != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.ActiveDeadlineSeconds)) - i-- - dAtA[i] = 0x18 - } - if m.Completions != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Completions)) - i-- - dAtA[i] = 0x10 - } - if m.Parallelism != nil { - i = encodeVarintGenerated(dAtA, i, uint64(*m.Parallelism)) - i-- - dAtA[i] = 0x8 - } - return len(dAtA) - i, nil + // 5540 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x5b, 0x6c, 0x24, 0xd9, + 0x55, 0x5b, 0xdd, 0x6e, 0xbb, 0x7d, 0xda, 0xcf, 0x3b, 0x9e, 0x4c, 0x67, 0x76, 0xc6, 0x3d, 0xa9, + 0x8d, 0x86, 0x0d, 0x24, 0xed, 0x64, 0x76, 0x17, 0x86, 0x6c, 0xb4, 0xa2, 0xdb, 0x33, 0xb3, 0x63, + 0xaf, 0x3d, 0xe3, 0xb9, 0xed, 0xd9, 0x51, 0xf6, 0x01, 0x29, 0x77, 0x5f, 0xb7, 0x6b, 0xa6, 0xba, + 0xaa, 0x53, 0x55, 0xed, 0x19, 0x6f, 0xa2, 0x64, 0x37, 0xd1, 0x92, 0x05, 0x25, 0xda, 0xe5, 0xf1, + 0x83, 0x10, 0x0f, 0x21, 0x3e, 0x10, 0xfc, 0xf0, 0x91, 0x1f, 0x24, 0x22, 0xa2, 0x00, 0xd2, 0xf2, + 0x01, 0x09, 0x3f, 0x6c, 0x40, 0x4a, 0xc3, 0x3a, 0x48, 0x08, 0x7e, 0x50, 0x50, 0x24, 0x94, 0x11, + 0x1f, 0xe8, 0x3e, 0xea, 0x56, 0xdd, 0xaa, 0xb2, 0xdd, 0xed, 0x2e, 0x0f, 0x11, 0xf0, 0xe7, 0xbe, + 0xe7, 0xdc, 0x73, 0xee, 0xe3, 0xdc, 0xf3, 0xb8, 0xe7, 0xd4, 0x35, 0xac, 0xb5, 0x4d, 0x7f, 0xa7, + 0xb7, 0x55, 0x6d, 0x3a, 0x9d, 0x25, 0xc3, 0x6d, 0x3b, 0x5d, 0xd7, 0xb9, 0xcb, 0xfe, 0xf8, 0x98, + 0xeb, 0x58, 0x96, 0xd3, 0xf3, 0xbd, 0xa5, 0xee, 0xbd, 0xf6, 0x92, 0xd1, 0x35, 0xbd, 0x25, 0xd9, + 0xb2, 0xfb, 0x09, 0xc3, 0xea, 0xee, 0x18, 0x9f, 0x58, 0x6a, 0x13, 0x9b, 0xb8, 0x86, 0x4f, 0x5a, + 0xd5, 0xae, 0xeb, 0xf8, 0x0e, 0xfa, 0x54, 0x48, 0xad, 0x1a, 0x50, 0x63, 0x7f, 0xfc, 0x42, 0xd0, + 0xb7, 0xda, 0xbd, 0xd7, 0xae, 0x52, 0x6a, 0x55, 0xd9, 0x12, 0x50, 0x3b, 0xfb, 0xb1, 0xc8, 0x58, + 0xda, 0x4e, 0xdb, 0x59, 0x62, 0x44, 0xb7, 0x7a, 0xdb, 0xec, 0x17, 0xfb, 0xc1, 0xfe, 0xe2, 0xcc, + 0xce, 0x3e, 0x71, 0xef, 0xb2, 0x57, 0x35, 0x1d, 0x3a, 0xb6, 0xa5, 0x2d, 0xc3, 0x6f, 0xee, 0x2c, + 0xed, 0x26, 0x46, 0x74, 0x56, 0x8f, 0x20, 0x35, 0x1d, 0x97, 0xa4, 0xe1, 0x3c, 0x1d, 0xe2, 0x74, + 0x8c, 0xe6, 0x8e, 0x69, 0x13, 0x77, 0x2f, 0x9c, 0x75, 0x87, 0xf8, 0x46, 0x5a, 0xaf, 0xa5, 0x83, + 0x7a, 0xb9, 0x3d, 0xdb, 0x37, 0x3b, 0x24, 0xd1, 0xe1, 0xa7, 0x8f, 0xea, 0xe0, 0x35, 0x77, 0x48, + 0xc7, 0x48, 0xf4, 0x7b, 0xea, 0xa0, 0x7e, 0x3d, 0xdf, 0xb4, 0x96, 0x4c, 0xdb, 0xf7, 0x7c, 0x37, + 0xde, 0x49, 0xff, 0x0f, 0x0d, 0xe6, 0x6b, 0x6b, 0xf5, 0x4d, 0xd7, 0xd8, 0xde, 0x36, 0x9b, 0xd8, + 0xe9, 0xf9, 0xa6, 0xdd, 0x46, 0x1f, 0x81, 0x09, 0xd3, 0x6e, 0xbb, 0xc4, 0xf3, 0xca, 0xda, 0x05, + 0xed, 0xc9, 0xc9, 0xfa, 0xec, 0xbb, 0xfd, 0xca, 0x63, 0xfb, 0xfd, 0xca, 0xc4, 0x0a, 0x6f, 0xc6, + 0x01, 0x1c, 0x3d, 0x03, 0x25, 0x8f, 0xb8, 0xbb, 0x66, 0x93, 0x6c, 0x38, 0xae, 0x5f, 0xce, 0x5d, + 0xd0, 0x9e, 0x2c, 0xd4, 0x4f, 0x09, 0xf4, 0x52, 0x23, 0x04, 0xe1, 0x28, 0x1e, 0xed, 0xe6, 0x3a, + 0x8e, 0x2f, 0xe0, 0xe5, 0x3c, 0xe3, 0x22, 0xbb, 0xe1, 0x10, 0x84, 0xa3, 0x78, 0xe8, 0x0a, 0xcc, + 0x19, 0xb6, 0xed, 0xf8, 0x86, 0x6f, 0x3a, 0xf6, 0x86, 0x4b, 0xb6, 0xcd, 0x07, 0xe5, 0x31, 0xd6, + 0xb7, 0x2c, 0xfa, 0xce, 0xd5, 0x62, 0x70, 0x9c, 0xe8, 0xa1, 0xff, 0x7d, 0x0e, 0x4a, 0x35, 0xdb, + 0xb0, 0xf6, 0x3c, 0xd3, 0xc3, 0x3d, 0x1b, 0x7d, 0x06, 0x8a, 0x74, 0xf7, 0x5a, 0x86, 0x6f, 0xb0, + 0xf9, 0x96, 0x2e, 0x7d, 0xbc, 0xca, 0x17, 0xb3, 0x1a, 0x5d, 0xcc, 0x50, 0x26, 0x29, 0x76, 0x75, + 0xf7, 0x13, 0xd5, 0x9b, 0x5b, 0x77, 0x49, 0xd3, 0x5f, 0x27, 0xbe, 0x51, 0x47, 0x82, 0x3f, 0x84, + 0x6d, 0x58, 0x52, 0x45, 0x0e, 0x8c, 0x79, 0x5d, 0xd2, 0x64, 0xcb, 0x53, 0xba, 0xb4, 0x5e, 0x1d, + 0x45, 0xfe, 0xab, 0x91, 0xa1, 0x37, 0xba, 0xa4, 0x59, 0x9f, 0x12, 0xac, 0xc7, 0xe8, 0x2f, 0xcc, + 0x18, 0xa1, 0xfb, 0x30, 0xee, 0xf9, 0x86, 0xdf, 0xf3, 0xd8, 0xd2, 0x96, 0x2e, 0xdd, 0xcc, 0x8e, + 0x25, 0x23, 0x5b, 0x9f, 0x11, 0x4c, 0xc7, 0xf9, 0x6f, 0x2c, 0xd8, 0xe9, 0xff, 0xa0, 0xc1, 0xa9, + 0x08, 0x76, 0xcd, 0x6d, 0xf7, 0x3a, 0xc4, 0xf6, 0xd1, 0x05, 0x18, 0xb3, 0x8d, 0x0e, 0x11, 0xf2, + 0x24, 0x87, 0x7c, 0xc3, 0xe8, 0x10, 0xcc, 0x20, 0xe8, 0x09, 0x28, 0xec, 0x1a, 0x56, 0x8f, 0xb0, + 0x45, 0x9a, 0xac, 0x4f, 0x0b, 0x94, 0xc2, 0x8b, 0xb4, 0x11, 0x73, 0x18, 0xfa, 0x3c, 0x4c, 0xb2, + 0x3f, 0xae, 0xb9, 0x4e, 0x27, 0xa3, 0xa9, 0x89, 0x11, 0xbe, 0x18, 0x90, 0xad, 0x4f, 0xef, 0xf7, + 0x2b, 0x93, 0xf2, 0x27, 0x0e, 0x19, 0xea, 0xff, 0xa8, 0xc1, 0x6c, 0x64, 0x72, 0x6b, 0xa6, 0xe7, + 0xa3, 0x57, 0x12, 0xc2, 0x53, 0x1d, 0x4c, 0x78, 0x68, 0x6f, 0x26, 0x3a, 0x73, 0x62, 0xa6, 0xc5, + 0xa0, 0x25, 0x22, 0x38, 0x36, 0x14, 0x4c, 0x9f, 0x74, 0xbc, 0x72, 0xee, 0x42, 0xfe, 0xc9, 0xd2, + 0xa5, 0x95, 0xcc, 0xb6, 0x31, 0x5c, 0xdf, 0x15, 0x4a, 0x1f, 0x73, 0x36, 0xfa, 0x6f, 0xe5, 0x94, + 0x19, 0x52, 0x89, 0x42, 0x0e, 0x4c, 0x74, 0x88, 0xef, 0x9a, 0x4d, 0xaa, 0x0d, 0xe8, 0x28, 0xae, + 0x8c, 0x36, 0x8a, 0x75, 0x46, 0x2c, 0xd4, 0x29, 0xfc, 0xb7, 0x87, 0x03, 0x2e, 0x68, 0x07, 0xc6, + 0x0c, 0xb7, 0x1d, 0xcc, 0xf9, 0x5a, 0x36, 0xfb, 0x1b, 0xca, 0x5c, 0xcd, 0x6d, 0x7b, 0x98, 0x71, + 0x40, 0x4b, 0x30, 0xe9, 0x13, 0xb7, 0x63, 0xda, 0x86, 0xcf, 0x95, 0x50, 0xb1, 0x3e, 0x2f, 0xd0, + 0x26, 0x37, 0x03, 0x00, 0x0e, 0x71, 0xf4, 0xf7, 0x72, 0x30, 0x9f, 0x38, 0x0c, 0xe8, 0x69, 0x28, + 0x74, 0x77, 0x0c, 0x2f, 0x90, 0xee, 0xc5, 0x60, 0x69, 0x37, 0x68, 0xe3, 0xc3, 0x7e, 0x65, 0x3a, + 0xe8, 0xc2, 0x1a, 0x30, 0x47, 0xa6, 0x5a, 0xb6, 0x43, 0x3c, 0xcf, 0x68, 0x07, 0x22, 0x1f, 0x59, + 0x11, 0xd6, 0x8c, 0x03, 0x38, 0xfa, 0x8a, 0x06, 0xd3, 0x7c, 0x75, 0x30, 0xf1, 0x7a, 0x96, 0x4f, + 0x8f, 0x35, 0x5d, 0x9b, 0xd5, 0x2c, 0x76, 0x82, 0x93, 0xac, 0x9f, 0x16, 0xdc, 0xa7, 0xa3, 0xad, + 0x1e, 0x56, 0xf9, 0xa2, 0x3b, 0x30, 0xe9, 0xf9, 0x86, 0xeb, 0x93, 0x56, 0xcd, 0x67, 0xaa, 0xb7, + 0x74, 0xe9, 0x27, 0x07, 0x93, 0xf7, 0x4d, 0xb3, 0x43, 0xf8, 0xd9, 0x6a, 0x04, 0x04, 0x70, 0x48, + 0x4b, 0xff, 0x37, 0x0d, 0xe6, 0x82, 0x65, 0xda, 0x24, 0x9d, 0xae, 0x65, 0xf8, 0xe4, 0x11, 0x68, + 0x66, 0x5f, 0xd1, 0xcc, 0x38, 0x9b, 0xf3, 0x15, 0x8c, 0xff, 0x20, 0xf5, 0xac, 0xff, 0xab, 0x06, + 0x0b, 0x71, 0xe4, 0x47, 0xa0, 0x4d, 0x3c, 0x55, 0x9b, 0xdc, 0xc8, 0x76, 0xb6, 0x07, 0xa8, 0x94, + 0x1f, 0xa4, 0xcc, 0xf5, 0x7f, 0xb9, 0x5e, 0xd1, 0xff, 0x60, 0x0c, 0xa6, 0x6a, 0xb6, 0x6f, 0xd6, + 0xb6, 0xb7, 0x4d, 0xdb, 0xf4, 0xf7, 0xd0, 0x57, 0x73, 0xb0, 0xd4, 0x75, 0xc9, 0x36, 0x71, 0x5d, + 0xd2, 0xba, 0xd2, 0x73, 0x4d, 0xbb, 0xdd, 0x68, 0xee, 0x90, 0x56, 0xcf, 0x32, 0xed, 0xf6, 0x4a, + 0xdb, 0x76, 0x64, 0xf3, 0xd5, 0x07, 0xa4, 0xd9, 0xa3, 0xce, 0x8a, 0xd8, 0xff, 0xce, 0x68, 0xc3, + 0xdc, 0x18, 0x8e, 0x69, 0xfd, 0xa9, 0xfd, 0x7e, 0x65, 0x69, 0xc8, 0x4e, 0x78, 0xd8, 0xa9, 0xa1, + 0xb7, 0x72, 0x50, 0x75, 0xc9, 0x67, 0x7b, 0xe6, 0xe0, 0xab, 0xc1, 0x0f, 0xa8, 0x35, 0xda, 0x6a, + 0xe0, 0xa1, 0x78, 0xd6, 0x2f, 0xed, 0xf7, 0x2b, 0x43, 0xf6, 0xc1, 0x43, 0xce, 0x4b, 0xff, 0x73, + 0x0d, 0x8a, 0x43, 0x78, 0x49, 0x15, 0xd5, 0x4b, 0x9a, 0x4c, 0x78, 0x48, 0x7e, 0xd2, 0x43, 0x7a, + 0x7e, 0xb4, 0x45, 0x1b, 0xc4, 0x33, 0xfa, 0x77, 0x1a, 0x47, 0xc4, 0x3d, 0x29, 0xb4, 0x03, 0x0b, + 0x5d, 0xa7, 0x15, 0x1c, 0xfa, 0xeb, 0x86, 0xb7, 0xc3, 0x60, 0x62, 0x7a, 0x4f, 0xef, 0xf7, 0x2b, + 0x0b, 0x1b, 0x29, 0xf0, 0x87, 0xfd, 0x4a, 0x59, 0x12, 0x89, 0x21, 0xe0, 0x54, 0x8a, 0xa8, 0x0b, + 0xc5, 0x6d, 0x93, 0x58, 0x2d, 0x4c, 0xb6, 0x85, 0xa4, 0x8c, 0x78, 0xbc, 0xaf, 0x09, 0x6a, 0xf5, + 0x29, 0xaa, 0x4b, 0x83, 0x5f, 0x58, 0x72, 0xd1, 0x7f, 0x34, 0x06, 0xb3, 0x75, 0xab, 0x47, 0x9e, + 0x77, 0x09, 0x09, 0xfc, 0x80, 0x1a, 0xcc, 0x76, 0x5d, 0xb2, 0x6b, 0x92, 0xfb, 0x0d, 0x62, 0x91, + 0xa6, 0xef, 0xb8, 0x62, 0xaa, 0x67, 0xc4, 0x4e, 0xce, 0x6e, 0xa8, 0x60, 0x1c, 0xc7, 0x47, 0xcf, + 0xc1, 0x8c, 0xd1, 0xf4, 0xcd, 0x5d, 0x22, 0x29, 0xf0, 0x8d, 0xfe, 0x80, 0xa0, 0x30, 0x53, 0x53, + 0xa0, 0x38, 0x86, 0x8d, 0x5e, 0x81, 0xb2, 0xd7, 0x34, 0x2c, 0x72, 0xbb, 0x2b, 0x58, 0x2d, 0xef, + 0x90, 0xe6, 0xbd, 0x0d, 0xc7, 0xb4, 0x7d, 0xe1, 0xe0, 0x5c, 0x10, 0x94, 0xca, 0x8d, 0x03, 0xf0, + 0xf0, 0x81, 0x14, 0xd0, 0x9f, 0x69, 0x70, 0xbe, 0xeb, 0x92, 0x0d, 0xd7, 0xe9, 0x38, 0x54, 0x7a, + 0x13, 0xae, 0x90, 0x70, 0x09, 0x5e, 0x1c, 0xf1, 0x98, 0xf2, 0x96, 0x64, 0xd4, 0xf1, 0xa1, 0xfd, + 0x7e, 0xe5, 0xfc, 0xc6, 0x61, 0x03, 0xc0, 0x87, 0x8f, 0x0f, 0x7d, 0x4b, 0x83, 0xc5, 0xae, 0xe3, + 0xf9, 0x87, 0x4c, 0xa1, 0x70, 0xa2, 0x53, 0xd0, 0xf7, 0xfb, 0x95, 0xc5, 0x8d, 0x43, 0x47, 0x80, + 0x8f, 0x18, 0xa1, 0xfe, 0xa5, 0x12, 0xcc, 0x47, 0x64, 0x8f, 0x06, 0xf4, 0xed, 0x3d, 0xf4, 0x2c, + 0x4c, 0x07, 0xc2, 0xc0, 0xa3, 0x6a, 0x2e, 0x7b, 0xd2, 0xaf, 0xab, 0x45, 0x81, 0x58, 0xc5, 0xa5, + 0x72, 0x27, 0x45, 0x91, 0xf7, 0x8e, 0xc9, 0xdd, 0x86, 0x02, 0xc5, 0x31, 0x6c, 0xb4, 0x02, 0xa7, + 0x44, 0x0b, 0x26, 0x5d, 0xcb, 0x6c, 0x1a, 0xcb, 0x4e, 0x4f, 0x88, 0x5c, 0xa1, 0x7e, 0x66, 0xbf, + 0x5f, 0x39, 0xb5, 0x91, 0x04, 0xe3, 0xb4, 0x3e, 0x68, 0x0d, 0x16, 0x8c, 0x9e, 0xef, 0xc8, 0xf9, + 0x5f, 0xb5, 0x8d, 0x2d, 0x8b, 0xb4, 0x98, 0x68, 0x15, 0xeb, 0x65, 0xaa, 0x35, 0x6a, 0x29, 0x70, + 0x9c, 0xda, 0x0b, 0x6d, 0xc4, 0xa8, 0x35, 0x48, 0xd3, 0xb1, 0x5b, 0x7c, 0x97, 0x0b, 0xf5, 0x73, + 0x62, 0x7a, 0x2a, 0x45, 0x81, 0x83, 0x53, 0x7b, 0x22, 0x0b, 0x66, 0x3a, 0xc6, 0x83, 0xdb, 0xb6, + 0xb1, 0x6b, 0x98, 0x16, 0x65, 0x52, 0x1e, 0x3f, 0xc2, 0x35, 0xed, 0xf9, 0xa6, 0x55, 0xe5, 0x37, + 0x30, 0xd5, 0x15, 0xdb, 0xbf, 0xe9, 0x36, 0x7c, 0x6a, 0x04, 0xea, 0x88, 0x2e, 0xec, 0xba, 0x42, + 0x0b, 0xc7, 0x68, 0xa3, 0x9b, 0x70, 0x9a, 0x1d, 0xc7, 0x2b, 0xce, 0x7d, 0xfb, 0x0a, 0xb1, 0x8c, + 0xbd, 0x60, 0x02, 0x13, 0x6c, 0x02, 0x1f, 0xdc, 0xef, 0x57, 0x4e, 0x37, 0xd2, 0x10, 0x70, 0x7a, + 0x3f, 0x64, 0xc0, 0xe3, 0x2a, 0x00, 0x93, 0x5d, 0xd3, 0x33, 0x1d, 0x7b, 0xcd, 0xec, 0x98, 0x7e, + 0xb9, 0xc8, 0xc8, 0x56, 0xf6, 0xfb, 0x95, 0xc7, 0x1b, 0x07, 0xa3, 0xe1, 0xc3, 0x68, 0xa0, 0xdf, + 0xd4, 0x60, 0x21, 0xed, 0x18, 0x96, 0x27, 0xb3, 0xb8, 0xff, 0x88, 0x1d, 0x2d, 0x2e, 0x11, 0xa9, + 0x4a, 0x21, 0x75, 0x10, 0xe8, 0x75, 0x0d, 0xa6, 0x8c, 0x88, 0x73, 0x56, 0x06, 0x36, 0xaa, 0xd5, + 0x51, 0xbd, 0xe1, 0x90, 0x62, 0x7d, 0x6e, 0xbf, 0x5f, 0x51, 0x1c, 0x40, 0xac, 0x70, 0x44, 0xbf, + 0xad, 0xc1, 0xe9, 0xd4, 0x33, 0x5e, 0x2e, 0x9d, 0xc4, 0x0a, 0x31, 0x21, 0x49, 0xd7, 0x39, 0xe9, + 0xc3, 0x40, 0xef, 0x68, 0xd2, 0x94, 0xad, 0x07, 0xf1, 0xc8, 0x14, 0x1b, 0xda, 0xad, 0x11, 0xfd, + 0xd1, 0xd0, 0x7a, 0x07, 0x84, 0xeb, 0xa7, 0x22, 0x96, 0x31, 0x68, 0xc4, 0x71, 0xf6, 0xe8, 0x6b, + 0x5a, 0x60, 0x1a, 0xe5, 0x88, 0xa6, 0x4f, 0x6a, 0x44, 0x28, 0xb4, 0xb4, 0x72, 0x40, 0x31, 0xe6, + 0xfa, 0xbf, 0xe4, 0x61, 0x6a, 0xd9, 0xb0, 0x0d, 0x77, 0x4f, 0x98, 0x96, 0x3f, 0xd5, 0xe0, 0x5c, + 0xb3, 0xe7, 0xba, 0xc4, 0xf6, 0x1b, 0x3e, 0xe9, 0x26, 0x0d, 0x8b, 0x76, 0xa2, 0x86, 0xe5, 0xc2, + 0x7e, 0xbf, 0x72, 0x6e, 0xf9, 0x10, 0xfe, 0xf8, 0xd0, 0xd1, 0xa1, 0xbf, 0xd1, 0x40, 0x17, 0x08, + 0x75, 0xa3, 0x79, 0xaf, 0xed, 0x3a, 0x3d, 0xbb, 0x95, 0x9c, 0x44, 0xee, 0x44, 0x27, 0x71, 0x71, + 0xbf, 0x5f, 0xd1, 0x97, 0x8f, 0x1c, 0x05, 0x1e, 0x60, 0xa4, 0xe8, 0x79, 0x98, 0x17, 0x58, 0x57, + 0x1f, 0x74, 0x89, 0x6b, 0x52, 0xdf, 0x54, 0xdc, 0x34, 0x7f, 0x50, 0xa8, 0xfd, 0xf9, 0xe5, 0x38, + 0x02, 0x4e, 0xf6, 0xd1, 0xff, 0x78, 0x0c, 0x20, 0xd8, 0x69, 0xd2, 0x45, 0x3f, 0x05, 0x93, 0x1e, + 0xf1, 0xef, 0x10, 0xb3, 0xbd, 0xe3, 0xb3, 0x3d, 0x2d, 0x88, 0x6b, 0x8d, 0xa0, 0x11, 0x87, 0x70, + 0x74, 0x0f, 0x0a, 0x5d, 0xa3, 0xe7, 0x11, 0xb1, 0x6e, 0xab, 0x99, 0xac, 0xdb, 0x06, 0xa5, 0xc8, + 0x7d, 0x7f, 0xf6, 0x27, 0xe6, 0x3c, 0xd0, 0x97, 0x35, 0x00, 0xa2, 0xce, 0xb5, 0x74, 0xa9, 0x91, + 0x09, 0xcb, 0x70, 0x39, 0xe8, 0x1a, 0xd4, 0x67, 0xf6, 0xfb, 0x15, 0x88, 0xac, 0x5a, 0x84, 0x2d, + 0xba, 0x0f, 0x45, 0x23, 0x50, 0x67, 0x63, 0x27, 0xa1, 0xce, 0x98, 0x4b, 0x2e, 0xf7, 0x5b, 0x32, + 0x43, 0x6f, 0x69, 0x30, 0xe3, 0x11, 0x5f, 0x6c, 0x15, 0xb5, 0x4f, 0xc2, 0x97, 0x5b, 0x1b, 0x8d, + 0x7f, 0x43, 0xa1, 0xc9, 0x95, 0x83, 0xda, 0x86, 0x63, 0x7c, 0xf5, 0xff, 0x2a, 0xc2, 0x4c, 0x20, + 0x32, 0xa1, 0x7b, 0xd6, 0xe4, 0x2d, 0xe9, 0xee, 0xd9, 0x72, 0x14, 0x88, 0x55, 0x5c, 0xda, 0xd9, + 0xf3, 0xa9, 0x3f, 0xa0, 0x7a, 0x67, 0xb2, 0x73, 0x23, 0x0a, 0xc4, 0x2a, 0x2e, 0xea, 0x40, 0xc1, + 0xf3, 0x49, 0x37, 0xb8, 0x34, 0xbc, 0x3e, 0xda, 0x6a, 0x84, 0x27, 0x21, 0xbc, 0xf0, 0xa1, 0xbf, + 0x3c, 0xcc, 0xb9, 0xa0, 0xb7, 0x35, 0x98, 0xf1, 0x95, 0x84, 0x92, 0x10, 0x83, 0x6c, 0x24, 0x51, + 0xcd, 0x55, 0xf1, 0xdd, 0x50, 0xdb, 0x70, 0x8c, 0x7d, 0x8a, 0xc7, 0x56, 0x38, 0x41, 0x8f, 0xed, + 0x25, 0x28, 0x76, 0x8c, 0x07, 0x8d, 0x9e, 0xdb, 0x3e, 0xbe, 0x67, 0xc8, 0x44, 0x7c, 0x5d, 0x50, + 0xc1, 0x92, 0x1e, 0x7a, 0x43, 0x8b, 0x1c, 0xae, 0x09, 0x46, 0xfc, 0x4e, 0xb6, 0x87, 0x4b, 0x2a, + 0xd4, 0x03, 0x8f, 0x59, 0xc2, 0x7f, 0x2a, 0x3e, 0x72, 0xff, 0x89, 0xfa, 0x02, 0xfc, 0x80, 0x48, + 0x5f, 0x60, 0xf2, 0x44, 0x7d, 0x81, 0x65, 0x85, 0x19, 0x8e, 0x31, 0x67, 0xe3, 0xe1, 0x67, 0x4e, + 0x8e, 0x07, 0x4e, 0x74, 0x3c, 0x0d, 0x85, 0x19, 0x8e, 0x31, 0xd7, 0x7f, 0xa0, 0xc1, 0x99, 0x65, + 0xab, 0xe7, 0xf9, 0xc4, 0xfd, 0x3f, 0x73, 0xa7, 0xfe, 0x9f, 0x1a, 0x3c, 0x7e, 0xc0, 0x9c, 0x1f, + 0xc1, 0xd5, 0xfa, 0x6b, 0xea, 0xd5, 0xfa, 0xed, 0x11, 0x75, 0x6c, 0xfa, 0x3c, 0x0e, 0xb8, 0x61, + 0xf7, 0x61, 0xfa, 0x8a, 0xe1, 0x1b, 0x2d, 0xa7, 0xcd, 0xaf, 0xbc, 0xd1, 0x73, 0x50, 0x34, 0x6d, + 0x9f, 0xb8, 0xbb, 0x86, 0x25, 0xac, 0x8c, 0x1e, 0x0c, 0x7d, 0x45, 0xb4, 0x3f, 0xec, 0x57, 0x66, + 0xae, 0xf4, 0x5c, 0x96, 0x16, 0xe7, 0x3a, 0x07, 0xcb, 0x3e, 0xe8, 0x09, 0x28, 0x7c, 0xb6, 0x47, + 0xdc, 0xbd, 0x78, 0x2a, 0xf6, 0x16, 0x6d, 0xc4, 0x1c, 0xa6, 0xff, 0x5d, 0x0e, 0x22, 0x1e, 0xc0, + 0x23, 0x10, 0x2b, 0x5b, 0x11, 0xab, 0x11, 0x6d, 0x7a, 0xc4, 0x9f, 0x39, 0x28, 0x87, 0xbe, 0x1b, + 0xcb, 0xa1, 0xdf, 0xc8, 0x8c, 0xe3, 0xe1, 0x29, 0xf4, 0xf7, 0x34, 0x78, 0x3c, 0x44, 0x4e, 0xfa, + 0xb5, 0x47, 0x5f, 0x12, 0x3f, 0x03, 0x25, 0x23, 0xec, 0x26, 0x76, 0x51, 0x56, 0x57, 0x44, 0x28, + 0xe2, 0x28, 0x5e, 0x98, 0xc6, 0xcc, 0x1f, 0x33, 0x8d, 0x39, 0x76, 0x78, 0x1a, 0x53, 0xff, 0x61, + 0x0e, 0xce, 0x27, 0x67, 0x16, 0x48, 0x37, 0x26, 0xdb, 0x03, 0xcc, 0xed, 0x32, 0x4c, 0xf9, 0xa2, + 0x03, 0x6d, 0x15, 0x93, 0x5b, 0x10, 0x98, 0x53, 0x9b, 0x11, 0x18, 0x56, 0x30, 0x69, 0xcf, 0x26, + 0x3f, 0x57, 0x8d, 0xa6, 0xd3, 0x0d, 0xf2, 0xbd, 0xb2, 0xe7, 0x72, 0x04, 0x86, 0x15, 0x4c, 0x99, + 0x38, 0x1a, 0x3b, 0xf1, 0x84, 0x74, 0x03, 0x4e, 0x07, 0xf9, 0x83, 0x6b, 0x8e, 0xbb, 0xec, 0x74, + 0xba, 0x16, 0x61, 0xe9, 0x8f, 0x02, 0x1b, 0xec, 0x79, 0xd1, 0xe5, 0x34, 0x4e, 0x43, 0xc2, 0xe9, + 0x7d, 0xf5, 0xf7, 0xf2, 0x70, 0x2a, 0x5c, 0xf6, 0x65, 0xc7, 0x6e, 0x99, 0x2c, 0x0b, 0xf3, 0x2c, + 0x8c, 0xf9, 0x7b, 0xdd, 0x60, 0xb1, 0x7f, 0x22, 0x18, 0xce, 0xe6, 0x5e, 0x97, 0xee, 0xf6, 0x99, + 0x94, 0x2e, 0x14, 0x84, 0x59, 0x27, 0xb4, 0x26, 0x4f, 0x07, 0xdf, 0x81, 0xa7, 0x55, 0x69, 0x7e, + 0xd8, 0xaf, 0xa4, 0xd4, 0x54, 0x55, 0x25, 0x25, 0x55, 0xe6, 0xd1, 0x5d, 0x98, 0xb1, 0x0c, 0xcf, + 0xbf, 0xdd, 0x6d, 0x19, 0x3e, 0xd9, 0x34, 0x3b, 0x44, 0x9c, 0xb9, 0x61, 0x72, 0xcb, 0xf2, 0xaa, + 0x72, 0x4d, 0xa1, 0x84, 0x63, 0x94, 0xd1, 0x2e, 0x20, 0xda, 0xb2, 0xe9, 0x1a, 0xb6, 0xc7, 0x67, + 0x45, 0xf9, 0x0d, 0x9f, 0xcb, 0x3e, 0x2b, 0xf8, 0xa1, 0xb5, 0x04, 0x35, 0x9c, 0xc2, 0x01, 0x5d, + 0x84, 0x71, 0x97, 0x18, 0x9e, 0xd8, 0xcc, 0xc9, 0xf0, 0xfc, 0x63, 0xd6, 0x8a, 0x05, 0x34, 0x7a, + 0xa0, 0xc6, 0x8f, 0x38, 0x50, 0xdf, 0xd3, 0x60, 0x26, 0xdc, 0xa6, 0x47, 0x60, 0xe6, 0x3a, 0xaa, + 0x99, 0xbb, 0x9e, 0x95, 0x4a, 0x3c, 0xc0, 0xb2, 0xbd, 0x9f, 0x8f, 0xce, 0x8f, 0x65, 0x8d, 0x3f, + 0x07, 0x93, 0xc1, 0xa9, 0x0e, 0xf2, 0xc6, 0x23, 0x7a, 0x9e, 0x8a, 0x67, 0x11, 0x29, 0xff, 0x10, + 0x4c, 0x70, 0xc8, 0x8f, 0x1a, 0xd6, 0x96, 0x30, 0x9a, 0x42, 0xec, 0xa5, 0x61, 0x0d, 0x8c, 0x69, + 0x9a, 0x61, 0x0d, 0xfa, 0xa0, 0xdb, 0x70, 0xa6, 0xeb, 0x3a, 0xac, 0x72, 0xee, 0x0a, 0x31, 0x5a, + 0x96, 0x69, 0x93, 0xe0, 0x3a, 0x97, 0xdf, 0x94, 0x3f, 0xbe, 0xdf, 0xaf, 0x9c, 0xd9, 0x48, 0x47, + 0xc1, 0x07, 0xf5, 0x55, 0xcb, 0x58, 0xc6, 0x8e, 0x2e, 0x63, 0x41, 0xbf, 0x24, 0xc3, 0x08, 0xe2, + 0x95, 0x0b, 0x6c, 0x11, 0x5f, 0xce, 0x6a, 0x2b, 0x53, 0xd4, 0x7a, 0x28, 0x52, 0x35, 0xc1, 0x14, + 0x4b, 0xf6, 0xfa, 0x9b, 0x05, 0x98, 0x8b, 0xdb, 0xc6, 0x93, 0xaf, 0xa8, 0xf9, 0x55, 0x0d, 0xe6, + 0x82, 0x7d, 0xe5, 0x3c, 0x49, 0x10, 0x1f, 0xaf, 0x65, 0x24, 0x4e, 0xdc, 0xca, 0xcb, 0xc2, 0xc4, + 0xcd, 0x18, 0x37, 0x9c, 0xe0, 0x8f, 0x5e, 0x85, 0x92, 0x0c, 0x23, 0x8f, 0x55, 0x5e, 0x33, 0xcb, + 0xec, 0x7b, 0x48, 0x02, 0x47, 0xe9, 0xa1, 0x37, 0x35, 0x80, 0x66, 0xa0, 0x80, 0x83, 0x7d, 0xbf, + 0x95, 0xd5, 0xbe, 0x4b, 0xd5, 0x1e, 0xba, 0x71, 0xb2, 0xc9, 0xc3, 0x11, 0xc6, 0xe8, 0xd7, 0x58, + 0x00, 0x29, 0xfd, 0x0e, 0xaf, 0x3c, 0xce, 0x46, 0xf2, 0xe9, 0xac, 0x25, 0x30, 0xbc, 0x56, 0x94, + 0x46, 0x3e, 0x02, 0xf2, 0xb0, 0x32, 0x08, 0xfd, 0x59, 0x90, 0x69, 0x5e, 0x7a, 0xa0, 0x58, 0xa2, + 0x77, 0xc3, 0xf0, 0x77, 0x84, 0x08, 0xca, 0x03, 0x75, 0x2d, 0x00, 0xe0, 0x10, 0x47, 0xff, 0x0b, + 0x0d, 0x16, 0x56, 0x3c, 0xdf, 0x74, 0xae, 0x10, 0xcf, 0xa7, 0x67, 0x8c, 0x9a, 0xe3, 0x9e, 0x45, + 0x06, 0x70, 0x68, 0xae, 0xc0, 0x9c, 0xb8, 0xeb, 0xe9, 0x6d, 0x79, 0xc4, 0x8f, 0x38, 0x35, 0x52, + 0x74, 0x96, 0x63, 0x70, 0x9c, 0xe8, 0x41, 0xa9, 0x88, 0x4b, 0x9f, 0x90, 0x4a, 0x5e, 0xa5, 0xd2, + 0x88, 0xc1, 0x71, 0xa2, 0x87, 0xfe, 0x8d, 0x1c, 0x9c, 0x62, 0xd3, 0x88, 0x15, 0x04, 0xff, 0x8a, + 0x06, 0x33, 0xbb, 0xa6, 0xeb, 0xf7, 0x0c, 0x2b, 0x7a, 0x7b, 0x35, 0xb2, 0xf4, 0x30, 0x5e, 0x2f, + 0x2a, 0x84, 0x43, 0x33, 0xae, 0xb6, 0xe3, 0xd8, 0x00, 0xe8, 0x98, 0x66, 0x5b, 0xea, 0x6a, 0x67, + 0x13, 0x71, 0xa6, 0xed, 0x23, 0xcf, 0x51, 0xc4, 0x1a, 0x71, 0x9c, 0xbf, 0xfe, 0xb2, 0x58, 0x3e, + 0x75, 0xe8, 0x03, 0x08, 0x81, 0x0e, 0xe3, 0xae, 0xd3, 0xa3, 0x26, 0x8d, 0x1a, 0xd6, 0xc9, 0x3a, + 0x30, 0xbf, 0x80, 0xb5, 0x60, 0x01, 0xd1, 0xff, 0x48, 0x83, 0xc9, 0x55, 0x67, 0x4b, 0xc4, 0x78, + 0x3f, 0x9f, 0x41, 0xbc, 0x25, 0xd5, 0xb2, 0xbc, 0x48, 0x08, 0x2d, 0xfd, 0x73, 0x4a, 0xb4, 0x75, + 0x2e, 0x42, 0xbb, 0xca, 0xaa, 0xe8, 0x29, 0xa9, 0x55, 0x67, 0xeb, 0xc0, 0x70, 0xfc, 0xf7, 0x0a, + 0x30, 0xfd, 0x82, 0xb1, 0x47, 0x6c, 0xdf, 0x10, 0x23, 0xfe, 0x08, 0x4c, 0x18, 0xad, 0x56, 0x5a, + 0x55, 0x79, 0x8d, 0x37, 0xe3, 0x00, 0xce, 0x02, 0x98, 0x2e, 0x4b, 0x09, 0x47, 0x4c, 0x6d, 0x18, + 0xc0, 0x84, 0x20, 0x1c, 0xc5, 0x0b, 0x8f, 0xd2, 0xb2, 0x63, 0x6f, 0x9b, 0xed, 0xb4, 0x43, 0xb0, + 0x1c, 0x83, 0xe3, 0x44, 0x0f, 0xb4, 0x0a, 0x48, 0x54, 0x8c, 0xd5, 0x9a, 0x4d, 0xa7, 0x67, 0xf3, + 0xc3, 0xc4, 0x63, 0x1b, 0xe9, 0xf3, 0xad, 0x27, 0x30, 0x70, 0x4a, 0x2f, 0xf4, 0x0a, 0x94, 0x9b, + 0x8c, 0xb2, 0xf0, 0x00, 0xa2, 0x14, 0xb9, 0x17, 0x28, 0xcb, 0x31, 0x96, 0x0f, 0xc0, 0xc3, 0x07, + 0x52, 0xa0, 0x23, 0xf5, 0x7c, 0xc7, 0x35, 0xda, 0x24, 0x4a, 0x77, 0x5c, 0x1d, 0x69, 0x23, 0x81, + 0x81, 0x53, 0x7a, 0xa1, 0x2f, 0xc2, 0xa4, 0xbf, 0xe3, 0x12, 0x6f, 0xc7, 0xb1, 0x5a, 0xe2, 0x66, + 0x71, 0xc4, 0x80, 0x57, 0xec, 0xfe, 0x66, 0x40, 0x35, 0xe2, 0x93, 0x04, 0x4d, 0x38, 0xe4, 0x89, + 0x5c, 0x18, 0xf7, 0x68, 0xb4, 0xe5, 0x95, 0x8b, 0x59, 0x78, 0x75, 0x82, 0x3b, 0x0b, 0xe0, 0x22, + 0xa1, 0x36, 0xe3, 0x80, 0x05, 0x27, 0xfd, 0x2f, 0x73, 0x30, 0x15, 0x45, 0x1c, 0xe0, 0xa4, 0x7e, + 0x59, 0x83, 0xa9, 0xa6, 0x63, 0xfb, 0xae, 0x63, 0xf1, 0x30, 0x92, 0x1f, 0x90, 0x11, 0x2b, 0xb3, + 0x19, 0xa9, 0x2b, 0xc4, 0x37, 0x4c, 0x2b, 0x12, 0x91, 0x46, 0xd8, 0x60, 0x85, 0x29, 0xfa, 0xaa, + 0x06, 0xb3, 0x61, 0xca, 0x25, 0x8c, 0x67, 0x33, 0x1d, 0x88, 0xac, 0x5a, 0xba, 0xaa, 0x72, 0xc2, + 0x71, 0xd6, 0xfa, 0x16, 0xcc, 0xc5, 0x77, 0x9b, 0x2e, 0x65, 0xd7, 0x10, 0x67, 0x3d, 0x1f, 0x2e, + 0xe5, 0x86, 0xe1, 0x79, 0x98, 0x41, 0xd0, 0x47, 0xa1, 0xd8, 0x31, 0xdc, 0xb6, 0x69, 0x1b, 0x16, + 0x5b, 0xc5, 0x7c, 0x44, 0x21, 0x89, 0x76, 0x2c, 0x31, 0xf4, 0xef, 0x8f, 0x41, 0x69, 0x9d, 0x18, + 0x5e, 0xcf, 0x25, 0xec, 0xc2, 0xe9, 0xc4, 0x5d, 0x44, 0xa5, 0xd4, 0x39, 0x9f, 0x5d, 0xa9, 0x33, + 0x7a, 0x09, 0x60, 0xdb, 0xb4, 0x4d, 0x6f, 0xe7, 0x98, 0x45, 0xd4, 0x2c, 0xf9, 0x76, 0x4d, 0x52, + 0xc0, 0x11, 0x6a, 0xe1, 0x57, 0x14, 0x85, 0x43, 0xbe, 0xa2, 0x78, 0x53, 0x8b, 0x18, 0x0f, 0xee, + 0x7c, 0xdd, 0x19, 0xb5, 0xf6, 0x56, 0x6e, 0x4c, 0x35, 0x30, 0x26, 0x57, 0x6d, 0xdf, 0xdd, 0x3b, + 0xd4, 0xc6, 0x6c, 0x42, 0xd1, 0x25, 0x5e, 0xaf, 0x43, 0x9d, 0xdd, 0x89, 0xa1, 0x97, 0x81, 0xe5, + 0x27, 0xb0, 0xe8, 0x8f, 0x25, 0xa5, 0xb3, 0xcf, 0xc2, 0xb4, 0x32, 0x04, 0x34, 0x07, 0xf9, 0x7b, + 0x64, 0x8f, 0xcb, 0x09, 0xa6, 0x7f, 0xa2, 0x05, 0xa5, 0x8a, 0x52, 0x2c, 0xcb, 0x27, 0x73, 0x97, + 0x35, 0xfd, 0x87, 0xe3, 0x30, 0x2e, 0xec, 0xd5, 0xd1, 0xba, 0x20, 0x7a, 0xcf, 0x9a, 0x3b, 0xc6, + 0x3d, 0xeb, 0x2a, 0x4c, 0x99, 0xb6, 0xe9, 0x9b, 0x86, 0xc5, 0x8a, 0x68, 0x84, 0xad, 0xba, 0x18, + 0x9c, 0xff, 0x95, 0x08, 0x2c, 0x85, 0x8e, 0xd2, 0x17, 0xdd, 0x82, 0x02, 0x53, 0xe6, 0x42, 0x9e, + 0x86, 0x4f, 0x39, 0xb1, 0x74, 0x32, 0x2f, 0xcb, 0xe2, 0x94, 0x98, 0x4f, 0xd9, 0x6b, 0x36, 0x89, + 0xe7, 0x49, 0x47, 0x5e, 0x88, 0x55, 0xe8, 0x53, 0xc6, 0xe0, 0x38, 0xd1, 0x83, 0x52, 0xd9, 0x36, + 0x4c, 0xab, 0xe7, 0x92, 0x90, 0xca, 0xb8, 0x4a, 0xe5, 0x5a, 0x0c, 0x8e, 0x13, 0x3d, 0xd0, 0x36, + 0x4c, 0x89, 0x36, 0x5e, 0xa6, 0x34, 0x71, 0xcc, 0x59, 0xb2, 0xcc, 0xd2, 0xb5, 0x08, 0x25, 0xac, + 0xd0, 0x45, 0x3d, 0x98, 0x37, 0xed, 0xa6, 0x63, 0x37, 0xad, 0x9e, 0x67, 0xee, 0x92, 0xb0, 0x26, + 0xea, 0x38, 0xcc, 0x4e, 0xef, 0xf7, 0x2b, 0xf3, 0x2b, 0x71, 0x72, 0x38, 0xc9, 0x01, 0xbd, 0xa1, + 0xc1, 0xe9, 0xa6, 0x63, 0x7b, 0xac, 0x2a, 0x78, 0x97, 0x5c, 0x75, 0x5d, 0xc7, 0xe5, 0xbc, 0x27, + 0x8f, 0xc9, 0x9b, 0xd5, 0xfc, 0x2c, 0xa7, 0x91, 0xc4, 0xe9, 0x9c, 0xd0, 0x6b, 0x50, 0xec, 0xba, + 0xce, 0xae, 0xd9, 0x22, 0xae, 0xc8, 0x5e, 0xad, 0x65, 0x51, 0x90, 0xbf, 0x21, 0x68, 0x86, 0x9a, + 0x20, 0x68, 0xc1, 0x92, 0x9f, 0xfe, 0xf5, 0x71, 0x98, 0x51, 0xd1, 0xd1, 0x17, 0x00, 0xba, 0xae, + 0xd3, 0x21, 0xfe, 0x0e, 0x91, 0xb5, 0x33, 0x37, 0x46, 0x2d, 0x86, 0x0f, 0xe8, 0x89, 0x6f, 0x05, + 0x98, 0x26, 0x0d, 0x5b, 0x71, 0x84, 0x23, 0x72, 0x61, 0xe2, 0x1e, 0xb7, 0x69, 0xc2, 0xc4, 0xbf, + 0x90, 0x89, 0x43, 0x22, 0x38, 0x97, 0xa8, 0xc9, 0x11, 0x4d, 0x38, 0x60, 0x84, 0xb6, 0x20, 0x7f, + 0x9f, 0x6c, 0x65, 0x53, 0xb6, 0x7d, 0x87, 0x88, 0x50, 0xa1, 0x3e, 0xb1, 0xdf, 0xaf, 0xe4, 0xef, + 0x90, 0x2d, 0x4c, 0x89, 0xd3, 0x79, 0xb5, 0x78, 0xb6, 0x48, 0xa8, 0x8a, 0x11, 0xe7, 0xa5, 0xa4, + 0x9e, 0xf8, 0xbc, 0x44, 0x13, 0x0e, 0x18, 0xa1, 0xd7, 0x60, 0xf2, 0xbe, 0xb1, 0x4b, 0xb6, 0x5d, + 0xc7, 0xf6, 0x45, 0xee, 0x7d, 0xc4, 0x9a, 0x90, 0x3b, 0x01, 0x39, 0xc1, 0x97, 0x59, 0x5b, 0xd9, + 0x88, 0x43, 0x76, 0x68, 0x17, 0x8a, 0x36, 0xb9, 0x8f, 0x89, 0x65, 0x36, 0x45, 0x3a, 0x7e, 0x44, + 0xb1, 0xbe, 0x21, 0xa8, 0x09, 0xce, 0xcc, 0x0c, 0x05, 0x6d, 0x58, 0xf2, 0xa2, 0x7b, 0x79, 0xd7, + 0xd9, 0x12, 0x8a, 0x6a, 0xc4, 0xbd, 0x94, 0x61, 0x1f, 0xdf, 0xcb, 0x55, 0x67, 0x0b, 0x53, 0xe2, + 0xfa, 0x37, 0xc6, 0x60, 0x2a, 0xfa, 0xb9, 0xd6, 0x00, 0x36, 0x4b, 0xba, 0x4d, 0xb9, 0x61, 0xdc, + 0x26, 0xea, 0xf5, 0x76, 0x42, 0x1b, 0x1f, 0x5c, 0x95, 0xad, 0x64, 0xe6, 0x35, 0x84, 0x5e, 0x6f, + 0xa4, 0xd1, 0xc3, 0x0a, 0xd3, 0x21, 0x52, 0x4d, 0xd4, 0x0f, 0xe2, 0xe6, 0x90, 0xd7, 0xf9, 0x4a, + 0x3f, 0x48, 0x31, 0x70, 0x97, 0x00, 0x84, 0xb9, 0xda, 0xee, 0x59, 0x4c, 0x38, 0x0a, 0xe1, 0xe5, + 0x55, 0x43, 0x42, 0x70, 0x04, 0x0b, 0x5d, 0x84, 0x71, 0x6a, 0x30, 0x48, 0x4b, 0x14, 0xe0, 0xca, + 0xd0, 0xe2, 0x1a, 0x6b, 0xc5, 0x02, 0x8a, 0x2e, 0x53, 0xdb, 0x1e, 0xaa, 0x79, 0x51, 0x57, 0xbb, + 0x10, 0xda, 0xf6, 0x10, 0x86, 0x15, 0x4c, 0x3a, 0x74, 0x42, 0xb5, 0x32, 0x53, 0xfd, 0x91, 0xa1, + 0x33, 0x55, 0x8d, 0x39, 0x8c, 0x85, 0xba, 0x31, 0x2d, 0xce, 0x94, 0x76, 0x21, 0x12, 0xea, 0xc6, + 0xe0, 0x38, 0xd1, 0x43, 0xff, 0x0c, 0xcc, 0xa8, 0xd2, 0x4c, 0x97, 0xb8, 0xeb, 0x3a, 0xdb, 0xa6, + 0x45, 0xe2, 0x41, 0xfa, 0x06, 0x6f, 0xc6, 0x01, 0x7c, 0xb0, 0x2c, 0xf1, 0x5f, 0xe5, 0xe1, 0xd4, + 0x8d, 0xb6, 0x69, 0x3f, 0x88, 0xdd, 0x28, 0xa5, 0x7d, 0xc9, 0xad, 0x0d, 0xfb, 0x25, 0x77, 0x58, + 0x16, 0x25, 0xbe, 0x4b, 0x4f, 0x2f, 0x8b, 0x0a, 0x3e, 0x5a, 0x57, 0x71, 0xd1, 0xf7, 0x34, 0x38, + 0x67, 0xb4, 0xb8, 0x7f, 0x61, 0x58, 0xa2, 0x35, 0x64, 0x1a, 0xc8, 0xb8, 0x37, 0xa2, 0xb6, 0x48, + 0x4e, 0xbe, 0x5a, 0x3b, 0x84, 0x2b, 0xf7, 0x9a, 0x3f, 0x2c, 0x66, 0x70, 0xee, 0x30, 0x54, 0x7c, + 0xe8, 0xf0, 0xcf, 0xde, 0x84, 0x0f, 0x1d, 0xc9, 0x68, 0x28, 0xdf, 0xf8, 0xf7, 0x35, 0x98, 0x61, + 0xf5, 0x86, 0xa1, 0x5b, 0xf6, 0x8c, 0xcc, 0x69, 0xf1, 0xcd, 0x3b, 0xaf, 0xe6, 0xb4, 0x1e, 0xf6, + 0x2b, 0x25, 0x5e, 0xa1, 0xa8, 0xa6, 0xb8, 0x5e, 0x16, 0xa1, 0x15, 0xcb, 0xbc, 0xe5, 0x86, 0xf6, + 0xfc, 0xe5, 0x45, 0x42, 0x23, 0x20, 0x82, 0x43, 0x7a, 0xfa, 0xd7, 0xf3, 0x70, 0x2a, 0xa5, 0x70, + 0x86, 0x46, 0x3d, 0xe3, 0x96, 0xb1, 0x45, 0xac, 0x20, 0x6f, 0xf4, 0x6a, 0xe6, 0xc5, 0x39, 0xd5, + 0x35, 0x46, 0x9f, 0xef, 0xa1, 0xd4, 0x0c, 0xbc, 0x11, 0x0b, 0xe6, 0xe8, 0x37, 0x34, 0x28, 0x19, + 0x11, 0x31, 0xe3, 0xa9, 0xb4, 0xad, 0xec, 0x07, 0x93, 0x90, 0xaa, 0x48, 0x09, 0x40, 0x28, 0x44, + 0xd1, 0xb1, 0x9c, 0xfd, 0x59, 0x28, 0x45, 0xa6, 0x30, 0x8c, 0x74, 0x9c, 0x7d, 0x0e, 0xe6, 0x46, + 0x92, 0xae, 0x4f, 0xc3, 0xb0, 0xdf, 0x1d, 0x52, 0x5d, 0x7c, 0x3f, 0x5a, 0x86, 0x2b, 0x57, 0x5c, + 0xd4, 0xe1, 0x0a, 0xa8, 0xbe, 0x05, 0x73, 0x71, 0xd7, 0x6f, 0x98, 0xdb, 0xc8, 0x81, 0x14, 0xdd, + 0xc7, 0x61, 0xc8, 0x2f, 0x05, 0xf5, 0xbf, 0xce, 0xc1, 0x84, 0xa8, 0xbe, 0x7b, 0x04, 0xd5, 0x33, + 0xf7, 0x94, 0xfb, 0xdc, 0x95, 0x4c, 0x8a, 0x06, 0x0f, 0x2c, 0x9d, 0xf1, 0x62, 0xa5, 0x33, 0x2f, + 0x64, 0xc3, 0xee, 0xf0, 0xba, 0x99, 0xb7, 0x73, 0x30, 0x1b, 0xab, 0x66, 0x44, 0xbf, 0xa8, 0x25, + 0xd3, 0xc5, 0xb7, 0x33, 0x2d, 0x98, 0x94, 0xb5, 0x59, 0x87, 0x67, 0x8e, 0x3d, 0xe5, 0xdb, 0xe3, + 0x5b, 0x99, 0xbd, 0xe3, 0x70, 0xe8, 0x67, 0xc8, 0xff, 0xac, 0xc1, 0x07, 0x0f, 0xac, 0xef, 0x64, + 0xdf, 0x78, 0xb8, 0x2a, 0x54, 0xc8, 0x5e, 0xc6, 0xf5, 0xda, 0xf2, 0x1e, 0x31, 0x5e, 0xf6, 0x1f, + 0x67, 0x8f, 0x9e, 0x86, 0x29, 0xa6, 0xc7, 0xe9, 0xf1, 0xf1, 0x49, 0x57, 0x3c, 0x27, 0xc3, 0x62, + 0xf6, 0x46, 0xa4, 0x1d, 0x2b, 0x58, 0xfa, 0xef, 0x6a, 0x50, 0x3e, 0xe8, 0x8b, 0x82, 0x01, 0x3c, + 0xe2, 0x9f, 0x89, 0x55, 0xb2, 0x54, 0x12, 0x95, 0x2c, 0x31, 0x9f, 0x38, 0x28, 0x5a, 0x89, 0xb8, + 0xa3, 0xf9, 0x23, 0x0a, 0x35, 0xbe, 0xa6, 0xc1, 0x99, 0x03, 0x04, 0x27, 0x51, 0xd1, 0xa4, 0x1d, + 0xbb, 0xa2, 0x29, 0x37, 0x68, 0x45, 0x93, 0xfe, 0xb7, 0x79, 0x98, 0x13, 0xe3, 0x09, 0x8d, 0xf9, + 0x65, 0xa5, 0x1e, 0xe8, 0xc3, 0xb1, 0x7a, 0xa0, 0x85, 0x38, 0xfe, 0xff, 0x17, 0x03, 0xfd, 0x78, + 0x15, 0x03, 0xfd, 0x28, 0x07, 0xa7, 0x53, 0xbf, 0xd6, 0x40, 0x6f, 0xa5, 0x68, 0xc1, 0x3b, 0x19, + 0x7f, 0x16, 0x32, 0xa0, 0x1e, 0x1c, 0xb5, 0x82, 0xe6, 0xd7, 0xa3, 0x95, 0x2b, 0xdc, 0x41, 0xdf, + 0x3e, 0x81, 0x0f, 0x5c, 0x86, 0x2d, 0x62, 0xf9, 0xe5, 0x3c, 0x3c, 0x39, 0x28, 0xa1, 0x1f, 0xd3, + 0x22, 0x47, 0x4f, 0x29, 0x72, 0x7c, 0x34, 0x16, 0xea, 0x64, 0xea, 0x1d, 0xbf, 0x92, 0x97, 0x66, + 0x2f, 0x29, 0x9f, 0x03, 0x5d, 0xeb, 0x4f, 0x50, 0x2f, 0x26, 0x78, 0x4b, 0x20, 0x54, 0x85, 0x13, + 0x0d, 0xde, 0xfc, 0xb0, 0x5f, 0x99, 0x17, 0x9f, 0x2c, 0x37, 0x88, 0x2f, 0x1a, 0x71, 0xd0, 0x09, + 0x3d, 0x09, 0x45, 0x97, 0x43, 0x83, 0xb2, 0x2e, 0x91, 0xaa, 0xe0, 0x6d, 0x58, 0x42, 0xd1, 0x17, + 0x23, 0x6e, 0xdf, 0xd8, 0x49, 0x7d, 0x30, 0x70, 0x58, 0x06, 0xe6, 0x55, 0x28, 0x7a, 0xc1, 0x43, + 0x03, 0xfc, 0x5e, 0xee, 0xa9, 0x01, 0xab, 0x05, 0x69, 0x94, 0x10, 0xbc, 0x3a, 0xc0, 0xe7, 0x27, + 0xdf, 0x24, 0x90, 0x24, 0xf5, 0xdf, 0xc9, 0x43, 0x49, 0xec, 0xc4, 0x8a, 0xbd, 0xed, 0x3c, 0x02, + 0x37, 0xf7, 0x62, 0xcc, 0x12, 0x1d, 0xe0, 0x2c, 0x0e, 0x61, 0xbb, 0xa9, 0xc0, 0x98, 0x4d, 0xc7, + 0x16, 0x57, 0x4e, 0x52, 0x60, 0x56, 0x9a, 0x8e, 0x8d, 0x19, 0x04, 0x7d, 0x14, 0x8a, 0x9e, 0xf8, + 0xcc, 0x4b, 0xa8, 0x73, 0xb9, 0xe6, 0xc1, 0xe7, 0x5f, 0x58, 0x62, 0x50, 0x7a, 0x1e, 0x75, 0x6e, + 0xc6, 0x55, 0x7a, 0xcc, 0xb1, 0x61, 0x10, 0xb4, 0x14, 0xfd, 0xc2, 0x70, 0x42, 0x2d, 0x3f, 0x4a, + 0xfd, 0xca, 0xf0, 0x32, 0x4c, 0x19, 0x4d, 0xbf, 0x67, 0x58, 0xa2, 0x4f, 0x51, 0xd5, 0x17, 0xb5, + 0x08, 0x0c, 0x2b, 0x98, 0xfa, 0x7b, 0x9a, 0xdc, 0xa1, 0x47, 0x50, 0x3e, 0x7a, 0x57, 0x2d, 0x1f, + 0xbd, 0x9a, 0x89, 0xe6, 0x3e, 0xa0, 0x76, 0xf4, 0x2e, 0x4c, 0x45, 0x3f, 0x97, 0x44, 0x2f, 0x45, + 0x2c, 0x8f, 0x36, 0xca, 0x67, 0x59, 0x81, 0x6d, 0x0a, 0xad, 0x92, 0xfe, 0xed, 0x82, 0x5c, 0x45, + 0x56, 0xa4, 0x1a, 0xd5, 0x00, 0xda, 0xa1, 0x1a, 0x20, 0x7a, 0x00, 0x73, 0x99, 0x1f, 0x40, 0x74, + 0x0b, 0x8a, 0x81, 0x79, 0x10, 0x4e, 0xd4, 0x13, 0xd1, 0x4a, 0x1e, 0xea, 0x89, 0x51, 0x62, 0x11, + 0xb5, 0xc1, 0x62, 0x3a, 0xb9, 0x87, 0xd2, 0x6c, 0x49, 0x32, 0xa8, 0x06, 0xb3, 0x1d, 0xd3, 0xc6, + 0xc4, 0x68, 0xc9, 0xa7, 0x08, 0xc6, 0xf8, 0x2b, 0x0f, 0x81, 0x9b, 0xbf, 0xae, 0x82, 0x71, 0x1c, + 0x1f, 0x7d, 0x2e, 0x76, 0x5e, 0xb2, 0x8a, 0x38, 0x82, 0xc3, 0x76, 0xe8, 0xf1, 0x5b, 0x83, 0x05, + 0x57, 0xbc, 0x56, 0x70, 0xdd, 0xf4, 0x7c, 0xc7, 0xdd, 0xe3, 0x89, 0x36, 0x7e, 0xfd, 0xcb, 0x1e, + 0x13, 0xc0, 0x29, 0x70, 0x9c, 0xda, 0x8b, 0xea, 0x1b, 0xf6, 0xed, 0x2d, 0xbf, 0x0e, 0x2e, 0x86, + 0xfa, 0x86, 0x09, 0x5d, 0x0b, 0x0b, 0xe8, 0x61, 0x95, 0xbf, 0xc5, 0x11, 0x2a, 0x7f, 0xef, 0xc0, + 0xa4, 0x4b, 0x58, 0x30, 0x54, 0x0b, 0x52, 0x85, 0x43, 0xd7, 0x28, 0xe0, 0x80, 0x00, 0x0e, 0x69, + 0xe9, 0x7f, 0x32, 0x05, 0xd3, 0x4a, 0xd8, 0x8d, 0x9e, 0x80, 0x82, 0xb1, 0xe5, 0xb8, 0xfc, 0xae, + 0xa5, 0x18, 0x1e, 0xba, 0x1a, 0x6d, 0xc4, 0x1c, 0x86, 0xde, 0xd6, 0x60, 0xb6, 0xab, 0x5c, 0x11, + 0x06, 0x67, 0x7d, 0xc4, 0xa4, 0x8b, 0x7a, 0xef, 0x18, 0x79, 0x50, 0x47, 0x65, 0x86, 0xe3, 0xdc, + 0xa9, 0xb8, 0x8a, 0xca, 0x19, 0x8b, 0xb8, 0x0c, 0x5b, 0xf8, 0x44, 0x92, 0xc4, 0xb2, 0x0a, 0xc6, + 0x71, 0x7c, 0xba, 0xc8, 0x6c, 0x76, 0xa3, 0xbc, 0x79, 0x57, 0x0b, 0x08, 0xe0, 0x90, 0x16, 0x7a, + 0x0e, 0x66, 0xc4, 0xd7, 0xe6, 0x1b, 0x4e, 0xeb, 0xba, 0xe1, 0xed, 0x08, 0xeb, 0x21, 0x83, 0x97, + 0x65, 0x05, 0x8a, 0x63, 0xd8, 0x6c, 0x6e, 0xe1, 0x27, 0xfd, 0x8c, 0xc0, 0xb8, 0xfa, 0xde, 0xd0, + 0xb2, 0x0a, 0xc6, 0x71, 0x7c, 0x6a, 0xba, 0xa4, 0xa6, 0xe2, 0x09, 0x0d, 0x79, 0x76, 0x52, 0xb4, + 0x55, 0x0d, 0x66, 0x7b, 0x2c, 0x76, 0x6a, 0x05, 0x40, 0x21, 0xbd, 0x92, 0xe1, 0x6d, 0x15, 0x8c, + 0xe3, 0xf8, 0xe8, 0x59, 0x98, 0x76, 0xa9, 0x2e, 0x90, 0x04, 0x78, 0x96, 0x43, 0x5e, 0xd9, 0xe3, + 0x28, 0x10, 0xab, 0xb8, 0xe8, 0x79, 0x98, 0x0f, 0xbf, 0xbb, 0x0d, 0x08, 0xf0, 0xb4, 0x87, 0xfc, + 0xa4, 0xbf, 0x16, 0x47, 0xc0, 0xc9, 0x3e, 0xe8, 0xe7, 0x60, 0x2e, 0xb2, 0x12, 0x2b, 0x76, 0x8b, + 0x3c, 0x60, 0x4f, 0x6f, 0x14, 0xea, 0x0b, 0x2c, 0x75, 0x12, 0x83, 0xe1, 0x04, 0x36, 0xfa, 0x24, + 0xcc, 0x34, 0x1d, 0xcb, 0x62, 0x1a, 0x81, 0xbf, 0x75, 0x33, 0xc5, 0xf3, 0x47, 0x6c, 0xdf, 0x14, + 0x08, 0x8e, 0x61, 0xa2, 0x55, 0x40, 0xce, 0x96, 0x47, 0xdc, 0x5d, 0xd2, 0x7a, 0x9e, 0x3f, 0xc8, + 0x4b, 0x8d, 0xd2, 0xb4, 0x5a, 0xb7, 0x77, 0x33, 0x81, 0x81, 0x53, 0x7a, 0xa1, 0x2f, 0xa9, 0x45, + 0xdd, 0x33, 0x59, 0xbc, 0xec, 0x17, 0x8f, 0xf4, 0x8f, 0xac, 0xe8, 0x76, 0x61, 0x9c, 0x97, 0x51, + 0x96, 0x67, 0xb3, 0xf8, 0x16, 0x38, 0xfa, 0xac, 0x46, 0xa8, 0x51, 0x79, 0x2b, 0x16, 0x9c, 0xd0, + 0x17, 0x60, 0x72, 0x2b, 0x78, 0x03, 0xa9, 0x3c, 0x97, 0x85, 0x15, 0x89, 0x3d, 0xe7, 0x15, 0xfa, + 0x5c, 0x12, 0x80, 0x43, 0x96, 0xe8, 0x22, 0x94, 0xae, 0x6f, 0xd4, 0xa4, 0x14, 0xce, 0xb3, 0xdd, + 0x1f, 0xa3, 0x5d, 0x70, 0x14, 0xc0, 0x9c, 0xc3, 0xc0, 0xc2, 0xa3, 0x98, 0x73, 0x98, 0x34, 0xd8, + 0xcc, 0x95, 0x64, 0xa2, 0xda, 0x28, 0x9f, 0x8a, 0xbb, 0x92, 0xbc, 0x1d, 0x4b, 0x0c, 0xf4, 0x2a, + 0x94, 0x84, 0xca, 0x66, 0xba, 0x69, 0xe1, 0x78, 0x1f, 0x0c, 0xe0, 0x90, 0x04, 0x8e, 0xd2, 0x43, + 0xcf, 0x40, 0xa9, 0xcb, 0x9e, 0x86, 0x21, 0xd7, 0x7a, 0x96, 0x55, 0x3e, 0xcd, 0xf4, 0xa6, 0x4c, + 0x22, 0x6c, 0x84, 0x20, 0x1c, 0xc5, 0xd3, 0xdf, 0x08, 0x2f, 0x62, 0xe5, 0xeb, 0x07, 0x9f, 0x8f, + 0xee, 0x96, 0x96, 0xc5, 0xc3, 0xbd, 0x89, 0x07, 0xb0, 0xb8, 0xa2, 0x4d, 0xdd, 0xab, 0xae, 0x94, + 0xcf, 0x4c, 0x3e, 0x1e, 0x55, 0x5f, 0x76, 0xe0, 0xc5, 0xda, 0xaa, 0x74, 0xea, 0xef, 0xe5, 0xe5, + 0x65, 0x4c, 0x2c, 0xf3, 0xe9, 0x42, 0xc1, 0xf4, 0x7c, 0xd3, 0xc9, 0xb0, 0x82, 0x3e, 0xf6, 0x24, + 0x02, 0xab, 0xe4, 0x62, 0x00, 0xcc, 0x59, 0x51, 0x9e, 0x76, 0xdb, 0xb4, 0x1f, 0x88, 0xe9, 0xdf, + 0xca, 0x3c, 0xa5, 0xc9, 0x79, 0x32, 0x00, 0xe6, 0xac, 0xd0, 0x5d, 0xc8, 0x1b, 0xd6, 0x56, 0x46, + 0x8f, 0x34, 0xc7, 0x9f, 0x28, 0xe7, 0x75, 0x10, 0xb5, 0xb5, 0x3a, 0xa6, 0x4c, 0x28, 0x2f, 0xaf, + 0x63, 0x0a, 0xdb, 0x3c, 0x22, 0xaf, 0xc6, 0xfa, 0x4a, 0x1a, 0xaf, 0xc6, 0xfa, 0x0a, 0xa6, 0x4c, + 0xf4, 0x77, 0x34, 0x98, 0x4f, 0xe0, 0xc4, 0x1f, 0x34, 0xd7, 0x06, 0x7f, 0xd0, 0x5c, 0xbc, 0x55, + 0xd1, 0xe8, 0x5a, 0x66, 0xea, 0xc7, 0x1f, 0x9b, 0x31, 0x38, 0x4e, 0xf4, 0xd0, 0xbf, 0xa9, 0x41, + 0x29, 0x52, 0xb8, 0x4b, 0x5d, 0x35, 0x56, 0xe0, 0x2c, 0x86, 0x11, 0x3e, 0xd3, 0xc1, 0xae, 0x7d, + 0x38, 0x8c, 0xdf, 0x40, 0xb6, 0xc3, 0x7b, 0xb8, 0xc8, 0x0d, 0x24, 0x6d, 0xc5, 0x02, 0x2a, 0xc3, + 0xd5, 0xbc, 0x5a, 0xc7, 0x1b, 0x09, 0x57, 0x29, 0x3b, 0xaa, 0x33, 0x44, 0x84, 0x1c, 0x79, 0x15, + 0xc4, 0xa0, 0x9e, 0x21, 0x83, 0xa1, 0xf3, 0x90, 0x27, 0x76, 0x4b, 0x38, 0x38, 0x25, 0x81, 0x92, + 0xbf, 0x6a, 0xb7, 0x30, 0x6d, 0xd7, 0x6f, 0xc2, 0x54, 0x83, 0x34, 0x5d, 0xe2, 0xbf, 0x40, 0xf6, + 0x06, 0xbb, 0x23, 0x3b, 0xcf, 0x73, 0x8b, 0x39, 0x95, 0x20, 0xed, 0x4e, 0xdb, 0xf5, 0x3f, 0xd4, + 0x20, 0xf6, 0x48, 0x0b, 0xd2, 0x63, 0xe9, 0x42, 0x48, 0xa6, 0x0a, 0x95, 0xc8, 0x2d, 0x77, 0x68, + 0xe4, 0xb6, 0x0a, 0xa8, 0x63, 0xf8, 0xcd, 0x1d, 0xb1, 0x3f, 0x22, 0xf2, 0xe6, 0xbe, 0x65, 0xf8, + 0x99, 0x40, 0x02, 0x03, 0xa7, 0xf4, 0xd2, 0xbf, 0x9d, 0x83, 0x29, 0xe5, 0x6d, 0xdc, 0xa3, 0xa7, + 0x3f, 0xf8, 0x40, 0x53, 0x02, 0xb6, 0xfc, 0x90, 0x01, 0x5b, 0x34, 0x4a, 0x1d, 0x3b, 0xd9, 0x28, + 0xb5, 0x90, 0x49, 0x94, 0xaa, 0x7f, 0x6b, 0x0c, 0x66, 0xd4, 0x2f, 0xee, 0x06, 0x58, 0xd3, 0x8f, + 0x26, 0xd6, 0x74, 0x48, 0x67, 0x38, 0x3f, 0xaa, 0x33, 0x3c, 0x36, 0xaa, 0x33, 0x5c, 0x38, 0x86, + 0x33, 0x9c, 0x74, 0x65, 0xc7, 0x07, 0x76, 0x65, 0x3f, 0x25, 0xef, 0xdb, 0x26, 0x94, 0xab, 0xd2, + 0x30, 0xf3, 0x83, 0xd4, 0x6d, 0x58, 0x76, 0x5a, 0xa9, 0x19, 0xb4, 0xe2, 0x11, 0xb7, 0x70, 0x6e, + 0x6a, 0xa2, 0x66, 0xf8, 0x90, 0xf7, 0x03, 0x83, 0x27, 0x69, 0xf4, 0xd7, 0x73, 0x10, 0x3e, 0x77, + 0xcb, 0xde, 0xbd, 0xf1, 0x22, 0x3a, 0x4a, 0x18, 0xf0, 0xd5, 0x51, 0x1f, 0x97, 0x0a, 0x29, 0x8a, + 0x4c, 0x67, 0xa4, 0x05, 0x2b, 0x1c, 0xff, 0x07, 0x9e, 0xb9, 0x35, 0x60, 0x36, 0x56, 0x6a, 0x99, + 0x79, 0xe5, 0xc4, 0x37, 0x73, 0x30, 0x29, 0x8b, 0x55, 0xa9, 0x5a, 0xef, 0xb9, 0xc1, 0xb3, 0x25, + 0x52, 0xad, 0xdf, 0xc6, 0x6b, 0x98, 0xb6, 0xa3, 0x07, 0x30, 0xb1, 0x43, 0x8c, 0x16, 0x71, 0x83, + 0x7b, 0x85, 0xf5, 0x8c, 0xaa, 0x64, 0xaf, 0x33, 0xaa, 0xe1, 0x5c, 0xf8, 0x6f, 0x0f, 0x07, 0xec, + 0x68, 0xb0, 0xee, 0x9b, 0x1d, 0x42, 0x9d, 0xda, 0x88, 0x16, 0xcd, 0x87, 0xc1, 0xfa, 0xa6, 0x02, + 0xc5, 0x31, 0x6c, 0xaa, 0x5c, 0xee, 0x7a, 0x8e, 0xcd, 0x3e, 0x29, 0x1d, 0x53, 0x3d, 0xfb, 0xd5, + 0xc6, 0xcd, 0x1b, 0xec, 0x8b, 0x52, 0x89, 0x41, 0xb1, 0x4d, 0x56, 0xac, 0xe7, 0x12, 0x91, 0x0b, + 0x99, 0x0b, 0x3f, 0x2d, 0xe0, 0xed, 0x58, 0x62, 0xe8, 0xb7, 0x61, 0x36, 0x36, 0x91, 0xc0, 0x3c, + 0x6a, 0xe9, 0xe6, 0x71, 0xa0, 0xff, 0xb6, 0x51, 0xaf, 0xbe, 0xfb, 0xfe, 0xe2, 0x63, 0xdf, 0x79, + 0x7f, 0xf1, 0xb1, 0xef, 0xbe, 0xbf, 0xf8, 0xd8, 0xeb, 0xfb, 0x8b, 0xda, 0xbb, 0xfb, 0x8b, 0xda, + 0x77, 0xf6, 0x17, 0xb5, 0xef, 0xee, 0x2f, 0x6a, 0xff, 0xb4, 0xbf, 0xa8, 0xbd, 0xf3, 0xfd, 0xc5, + 0xc7, 0x5e, 0x2a, 0x06, 0x8b, 0xf9, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x19, 0x80, 0x8e, 0x39, + 0x26, 0x68, 0x00, 0x00, } func (m *ALBTrafficRouting) Marshal() (dAtA []byte, err error) { @@ -6675,39 +6557,6 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *JobSpec) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if m.Parallelism != nil { - n += 1 + sovGenerated(uint64(*m.Parallelism)) - } - if m.Completions != nil { - n += 1 + sovGenerated(uint64(*m.Completions)) - } - if m.ActiveDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.ActiveDeadlineSeconds)) - } - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ManualSelector != nil { - n += 2 - } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.BackoffLimit != nil { - n += 1 + sovGenerated(uint64(*m.BackoffLimit)) - } - if m.TTLSecondsAfterFinished != nil { - n += 1 + sovGenerated(uint64(*m.TTLSecondsAfterFinished)) - } - return n -} - func (m *ALBTrafficRouting) Size() (n int) { if m == nil { return 0 @@ -8177,23 +8026,6 @@ func sovGenerated(x uint64) (n int) { func sozGenerated(x uint64) (n int) { return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (this *JobSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&JobSpec{`, - `Parallelism:` + valueToStringGenerated(this.Parallelism) + `,`, - `Completions:` + valueToStringGenerated(this.Completions) + `,`, - `ActiveDeadlineSeconds:` + valueToStringGenerated(this.ActiveDeadlineSeconds) + `,`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, - `ManualSelector:` + valueToStringGenerated(this.ManualSelector) + `,`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `BackoffLimit:` + valueToStringGenerated(this.BackoffLimit) + `,`, - `TTLSecondsAfterFinished:` + valueToStringGenerated(this.TTLSecondsAfterFinished) + `,`, - `}`, - }, "") - return s -} func (this *ALBTrafficRouting) String() string { if this == nil { return "nil" @@ -8672,7 +8504,7 @@ func (this *JobMetric) String() string { } s := strings.Join([]string{`&JobMetric{`, `Metadata:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Metadata), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "JobSpec", "JobSpec", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Spec), "JobSpec", "v11.JobSpec", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -9099,7 +8931,7 @@ func (this *RolloutSpec) String() string { s := strings.Join([]string{`&RolloutSpec{`, `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v12.PodTemplateSpec", 1), `&`, ``, 1) + `,`, `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "RolloutStrategy", "RolloutStrategy", 1), `&`, ``, 1) + `,`, `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, @@ -9231,7 +9063,7 @@ func (this *TemplateSpec) String() string { `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v11.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `Template:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Template), "PodTemplateSpec", "v12.PodTemplateSpec", 1), `&`, ``, 1) + `,`, `}`, }, "") return s @@ -9314,249 +9146,6 @@ func valueToStringGenerated(v interface{}) string { pv := reflect.Indirect(rv).Interface() return fmt.Sprintf("*%v", pv) } -func (m *JobSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: JobSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: JobSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Parallelism", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Parallelism = &v - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Completions", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.Completions = &v - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ActiveDeadlineSeconds", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int64(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ActiveDeadlineSeconds = &v - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = &v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ManualSelector", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.ManualSelector = &b - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BackoffLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.BackoffLimit = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TTLSecondsAfterFinished", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.TTLSecondsAfterFinished = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *ALBTrafficRouting) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 5b2bd32c92..3094048e37 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -21,6 +21,7 @@ syntax = "proto2"; package github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1; +import "k8s.io/api/batch/v1/generated.proto"; import "k8s.io/api/core/v1/generated.proto"; import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; import "k8s.io/apimachinery/pkg/runtime/generated.proto"; @@ -30,70 +31,6 @@ import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; // Package-wide variables from generator "generated". option go_package = "v1alpha1"; -message JobSpec { - // Specifies the maximum desired number of pods the job should - // run at any given time. The actual number of pods running in steady state will - // be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), - // i.e. when the work left to do is less than max parallelism. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ - // +optional - optional int32 parallelism = 1; - - // Specifies the desired number of successfully finished pods the - // job should be run with. Setting to nil means that the success of any - // pod signals the success of all pods, and allows parallelism to have any positive - // value. Setting to 1 means that parallelism is limited to 1 and the success of that - // pod signals the success of the job. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ - // +optional - optional int32 completions = 2; - - // Specifies the duration in seconds relative to the startTime that the job may be active - // before the system tries to terminate it; value must be positive integer - // +optional - optional int64 activeDeadlineSeconds = 3; - - // Specifies the number of retries before marking this job failed. - // Defaults to 6 - // +optional - optional int32 backoffLimit = 7; - - // A label query over pods that should match the pod count. - // Normally, the system sets this field for you. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4; - - // manualSelector controls generation of pod labels and pod selectors. - // Leave `manualSelector` unset unless you are certain what you are doing. - // When false or unset, the system pick labels unique to this job - // and appends those labels to the pod template. When true, - // the user is responsible for picking unique labels and specifying - // the selector. Failure to pick a unique label may cause this - // and other jobs to not function correctly. However, You may see - // `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` - // API. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector - // +optional - optional bool manualSelector = 5; - - // Describes the pod that will be created when executing a job. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ - optional k8s.io.api.core.v1.PodTemplateSpec template = 6; - - // ttlSecondsAfterFinished limits the lifetime of a Job that has finished - // execution (either Complete or Failed). If this field is set, - // ttlSecondsAfterFinished after the Job finishes, it is eligible to be - // automatically deleted. When the Job is being deleted, its lifecycle - // guarantees (e.g. finalizers) will be honored. If this field is unset, - // the Job won't be automatically deleted. If this field is set to zero, - // the Job becomes eligible to be deleted immediately after it finishes. - // This field is alpha-level and is only honored by servers that enable the - // TTLAfterFinished feature. - // +optional - optional int32 ttlSecondsAfterFinished = 8; -} - // ALBTrafficRouting configuration for ALB ingress controller to control traffic routing message ALBTrafficRouting { // Ingress refers to the name of an `Ingress` resource in the same namespace as the `Rollout` @@ -610,7 +547,7 @@ message IstioVirtualService { message JobMetric { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - optional JobSpec spec = 2; + optional k8s.io.api.batch.v1.JobSpec spec = 2; } message KayentaMetric { diff --git a/server/server.go b/server/server.go index 27321262c4..3bacce10e9 100644 --- a/server/server.go +++ b/server/server.go @@ -8,31 +8,95 @@ import ( "time" "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" + rolloutspkg "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" - "k8s.io/apimachinery/pkg/util/wait" - "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" + "github.com/argoproj/argo-rollouts/utils/json" + "github.com/argoproj/pkg/errors" + "github.com/golang/protobuf/ptypes/empty" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + log "github.com/sirupsen/logrus" + "github.com/soheilhy/cmux" + "google.golang.org/grpc" + "k8s.io/apimachinery/pkg/util/wait" ) +var backoff = wait.Backoff{ + Steps: 5, + Duration: 500 * time.Millisecond, + Factor: 1.0, + Jitter: 0.1, +} + +// ArgoRolloutsServer holds information about rollouts server type ArgoRolloutsServer struct { + Namespace string + stopCh chan struct{} +} + +// NewServer creates an ArgoRolloutsServer +func NewServer(namespace string) *ArgoRolloutsServer { + return &ArgoRolloutsServer{Namespace: namespace}; +} + +// NewRolloutsServer creates a RolloutServiceServer +func NewRolloutsServer(namespace string) rolloutspkg.RolloutServiceServer { + return &ArgoRolloutsServer{Namespace: namespace} +} + +func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http.Server { + mux := http.NewServeMux() + endpoint := fmt.Sprintf("localhost:%d", port) + + httpS := http.Server{ + Addr: endpoint, + Handler: mux, + } + + gwMuxOpts := runtime.WithMarshalerOption(runtime.MIMEWildcard, new(json.JSONMarshaler)) + gwmux := runtime.NewServeMux(gwMuxOpts, + runtime.WithIncomingHeaderMatcher(func(key string) (string, bool) { return key, true }), + runtime.WithProtoErrorHandler(runtime.DefaultHTTPProtoErrorHandler), + ) + + var opts []grpc.DialOption + opts = append(opts, grpc.WithInsecure()) + + err := rolloutspkg.RegisterRolloutServiceHandlerFromEndpoint(ctx, gwmux, endpoint, opts) + if err != nil { + panic(err) + } + + var handler http.Handler = gwmux + mux.Handle("/api/", handler) + + return &httpS +} + +func (s* ArgoRolloutsServer) newGRPCServer() *grpc.Server { + grpcS := grpc.NewServer() + rolloutspkg.RegisterRolloutServiceServer(grpcS, NewRolloutsServer(s.Namespace)) + return grpcS +} + +func (s *ArgoRolloutsServer) checkServeErr(name string, err error) { + if err != nil { + if s.stopCh == nil { + log.Infof("graceful shutdown %s: %v", name, err) + } else { + log.Fatalf("%s: %v", name, err) + } + } else { + log.Infof("graceful shutdown %s", name) + } } // Run starts the server func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { - var httpS *http.Server - httpS = &http.Server{ - Addr: addr, - Handler: http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { - target := "https://" + req.Host - target += req.URL.Path - if len(req.URL.RawQuery) > 0 { - target += "?" + req.URL.RawQuery - } - http.Redirect(w, req, target, http.StatusTemporaryRedirect) - }), - } + httpServer := s.newHTTPServer(ctx, port) + grpcServer := s.newGRPCServer() // Start listener var conn net.Listener @@ -40,19 +104,26 @@ func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { _ = wait.ExponentialBackoff(backoff, func() (bool, error) { conn, realErr = net.Listen("tcp", fmt.Sprintf(":%d", port)) if realErr != nil { - a.log.Warnf("failed listen: %v", realErr) + log.Warnf("failed listen: %v", realErr) return false, nil } return true, nil }) errors.CheckError(realErr) - log.Infof("argo-rollouts %s serving on port %d (url: %s, tls: false, namespace: %s)", - common.GetVersion(), port, s.settings.URL, s.Namespace) + log.Infof("Argo Rollouts api-server serving on port %d (namespace: %s)", port, s.Namespace) + + tcpm := cmux.New(conn) + httpL := tcpm.Match(cmux.HTTP1Fast()) + grpcL := tcpm.Match(cmux.HTTP2HeaderField("content-type", "application/grpc")) + go func () { - httpS.Serve(httpL) - } + s.checkServeErr("httpServer", httpServer.Serve(httpL)) + }() + go func () { + s.checkServeErr("grpcServer", grpcServer.Serve(grpcL)) + }() s.stopCh = make(chan struct{}) <-s.stopCh @@ -60,7 +131,7 @@ func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { } // RolloutInfo returns info stream for requested rollout -func (s* ArgoRolloutsServer) RolloutInfo(q *rollout.RolloutInfoRequest, ws rollout.RolloutService_WatchInfoServer) error { +func (s* ArgoRolloutsServer) WatchInfo(q *rollout.RolloutInfoRequest, ws rollout.RolloutService_WatchInfoServer) error { o := options.ArgoRolloutsOptions{} controller := viewcontroller.NewRolloutViewController(q.Namespace, q.Name, o.KubeClientset(), o.RolloutsClientset()) @@ -96,4 +167,9 @@ func (s* ArgoRolloutsServer) RolloutInfo(q *rollout.RolloutInfoRequest, ws rollo controller.Run(ctx) close(rolloutUpdates) return nil +} + +func (s* ArgoRolloutsServer) Hello(c context.Context, e *empty.Empty) (*rollout.Greeting, error) { + log.Info("Hello") + return &rollout.Greeting{Text: "Hello!"}, nil } \ No newline at end of file diff --git a/utils/json/json.go b/utils/json/json.go index 5e61555b6a..d946ff4621 100644 --- a/utils/json/json.go +++ b/utils/json/json.go @@ -1,6 +1,11 @@ package json -import "encoding/json" +import ( + "encoding/json" + "io" + + gwruntime "github.com/grpc-ecosystem/grpc-gateway/runtime" +) // MustMarshal marshals an object and panics if it failures. This function should only be used // when the object being passed in does not have any chance of failing (i.e. you constructed @@ -12,3 +17,31 @@ func MustMarshal(i interface{}) []byte { } return bytes } + +// JSONMarshaler is a type which satisfies the grpc-gateway Marshaler interface +type JSONMarshaler struct{} + +// ContentType implements gwruntime.Marshaler. +func (j *JSONMarshaler) ContentType() string { + return "application/json" +} + +// Marshal implements gwruntime.Marshaler. +func (j *JSONMarshaler) Marshal(v interface{}) ([]byte, error) { + return json.Marshal(v) +} + +// NewDecoder implements gwruntime.Marshaler. +func (j *JSONMarshaler) NewDecoder(r io.Reader) gwruntime.Decoder { + return json.NewDecoder(r) +} + +// NewEncoder implements gwruntime.Marshaler. +func (j *JSONMarshaler) NewEncoder(w io.Writer) gwruntime.Encoder { + return json.NewEncoder(w) +} + +// Unmarshal implements gwruntime.Marshaler. +func (j *JSONMarshaler) Unmarshal(data []byte, v interface{}) error { + return json.Unmarshal(data, v) +} From 7ef81ac95b5d901bae30771b2f87e2ba5e7f7701 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Tue, 2 Mar 2021 17:11:58 -0800 Subject: [PATCH 004/112] Add working watch and get endpoints for rollout. Add UI stub. Signed-off-by: Remington Breeze --- cmd/rollouts-server/main.go | 20 +- go.mod | 4 - go.sum | 24 - pkg/apiclient/rollout/rollout.pb.go | 456 +- pkg/apiclient/rollout/rollout.pb.gw.go | 136 +- pkg/apiclient/rollout/rollout.proto | 23 +- pkg/apiclient/rollout/rollout.swagger.json | 61 +- .../cmd/get/get_rollout.go | 13 +- server/server.go | 102 +- ui/.gitignore | 23 + ui/.prettierrc | 9 + ui/package.json | 53 + ui/src/app/App.scss | 4 + ui/src/app/App.tsx | 7 + ui/src/app/index.html | 12 + ui/src/app/index.tsx | 10 + ui/src/app/tsconfig.json | 15 + ui/src/app/webpack.config.js | 97 + ui/tsconfig.json | 1 + ui/yarn.lock | 11720 ++++++++++++++++ 20 files changed, 12266 insertions(+), 524 deletions(-) create mode 100644 ui/.gitignore create mode 100644 ui/.prettierrc create mode 100644 ui/package.json create mode 100644 ui/src/app/App.scss create mode 100644 ui/src/app/App.tsx create mode 100644 ui/src/app/index.html create mode 100644 ui/src/app/index.tsx create mode 100644 ui/src/app/tsconfig.json create mode 100644 ui/src/app/webpack.config.js create mode 100644 ui/tsconfig.json create mode 100644 ui/yarn.lock diff --git a/cmd/rollouts-server/main.go b/cmd/rollouts-server/main.go index 0762bb096b..c9843f1e56 100644 --- a/cmd/rollouts-server/main.go +++ b/cmd/rollouts-server/main.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" + "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "github.com/argoproj/argo-rollouts/server" @@ -37,12 +39,28 @@ func newCommand() *cobra.Command { Use: cliName, Short: "argo-rollouts-server is an API server that provides UI assets and Rollout data", Run: func(c *cobra.Command, args []string) { + config, err := clientConfig.ClientConfig() + errors.CheckError(err) + namespace, _, err := clientConfig.Namespace() errors.CheckError(err) + + kubeclientset := kubernetes.NewForConfigOrDie(config) + + rolloutclientsetConfig, err := clientConfig.ClientConfig() + errors.CheckError(err) + + rolloutclientset := rolloutclientset.NewForConfigOrDie(rolloutclientsetConfig) + + opts := server.ServerOptions{ + Namespace: namespace, + KubeClientset: kubeclientset, + RolloutsClientset: rolloutclientset, + } for { ctx := context.Background() ctx, cancel := context.WithCancel(ctx) - argorollouts := server.NewServer(namespace) + argorollouts := server.NewServer(opts) argorollouts.Run(ctx, listenPort) cancel() } diff --git a/go.mod b/go.mod index 5d22258409..600a48c40c 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,6 @@ require ( github.com/argoproj/pkg v0.7.0 github.com/aws/aws-sdk-go-v2/config v1.0.0 github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.0.0 - github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c // indirect github.com/evanphx/json-patch/v5 v5.2.0 github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 @@ -17,7 +16,6 @@ require ( github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/grpc-ecosystem/grpc-gateway v1.14.6 github.com/hashicorp/golang-lru v0.5.4 // indirect - github.com/improbable-eng/grpc-web v0.14.0 // indirect github.com/jstemmer/go-junit-report v0.9.1 github.com/juju/ansiterm v0.0.0-20180109212912-720a0952cc2a github.com/lunixbochs/vtclean v1.0.0 // indirect @@ -25,7 +23,6 @@ require ( github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.8.0 github.com/prometheus/common v0.15.0 - github.com/rs/cors v1.7.0 // indirect github.com/servicemeshinterface/smi-sdk-go v0.4.1 github.com/sirupsen/logrus v1.7.0 github.com/soheilhy/cmux v0.1.4 @@ -53,7 +50,6 @@ require ( k8s.io/kubectl v0.19.4 k8s.io/kubernetes v1.20.4 k8s.io/utils v0.0.0-20201110183641-67b214c5f920 - nhooyr.io/websocket v1.8.6 // indirect sigs.k8s.io/controller-tools v0.4.1 ) diff --git a/go.sum b/go.sum index 8e6da0fff4..02d33ffb54 100644 --- a/go.sum +++ b/go.sum @@ -264,8 +264,6 @@ 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/daviddengcn/go-colortext v0.0.0-20160507010035-511bcaf42ccd/go.mod h1:dv4zxwHi5C/8AeI+4gX4dCWOIvNi7I6JCSX0HvlKPgE= github.com/denis-tingajkin/go-header v0.3.1/go.mod h1:sq/2IxMhaZX+RRcgHfCRx/m0M5na0fBt4/CRe7Lrji0= -github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= -github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= 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= @@ -330,8 +328,6 @@ github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2H github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32 h1:Mn26/9ZMNWSw9C9ERFA1PUxfmGpolnw2v0bKOREu5ew= github.com/ghodss/yaml v1.0.1-0.20190212211648-25d852aebe32/go.mod h1:GIjDIg/heH5DOkXY3YJ/wNhfHsQHoXGjl8G8amsYQ1I= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/git-chglog/git-chglog v0.0.0-20200414013904-db796966b373/go.mod h1:Dcsy1kii/xFyNad5JqY/d0GO5mu91sungp5xotbm3Yk= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= @@ -407,10 +403,6 @@ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+ github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.5/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -432,9 +424,6 @@ github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzz github.com/gobuffalo/flect v0.2.0 h1:EWCvMGGxOjsgwlWaP+f4+Hh6yrrte7JeFL2S6b+0hdM= github.com/gobuffalo/flect v0.2.0/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= @@ -560,7 +549,6 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= @@ -624,8 +612,6 @@ github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJ github.com/imdario/mergo v0.3.9/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= -github.com/improbable-eng/grpc-web v0.14.0 h1:GdoK+cXABdB+1keuqsV1drSFO2XLYIxqt/4Rj8SWGBk= -github.com/improbable-eng/grpc-web v0.14.0/go.mod h1:6hRR09jOEG81ADP5wCQju1z71g6OL4eEvELdran/3cs= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= @@ -650,7 +636,6 @@ github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= @@ -671,12 +656,10 @@ github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.5/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.10.10/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.11.0 h1:wJbzvpYMVGG9iTI9VxpnNZfd4DzMPoCWze3GgSqz8yg= github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= @@ -694,7 +677,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= github.com/kyoh86/exportloopref v0.1.7/go.mod h1:h1rDl2Kdj97+Kwh4gdz3ujE7XHmH51Q0lUiZ1z4NLj8= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/libopenstorage/openstorage v1.0.0/go.mod h1:Sp1sIObHjat1BeXhfMqLZ14wnOzEhNx2YQedreMcUyc= @@ -952,8 +934,6 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rs/cors v1.7.0 h1:+88SsELBHx5r+hZ8TCkggzSstaWNbDvThkVK8H6f9ik= -github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= @@ -1076,8 +1056,6 @@ github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 h1:nrZ3ySNYwJ github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80/go.mod h1:iFyPdL66DjUD96XmzVL3ZntbzcflLnznH0fr99w5VqE= github.com/tsuyoshiwada/go-gitcmd v0.0.0-20180205145712-5f1f5f9475df/go.mod h1:pnyouUty/nBr/zm3GYwTIt+qFTLWbdjeLjZmJdzJOu8= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ulikunitz/xz v0.5.7/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= @@ -1672,8 +1650,6 @@ mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIa mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= mvdan.cc/unparam v0.0.0-20190720180237-d51796306d8f/go.mod h1:4G1h5nDURzA3bwVMZIVpwbkw+04kSxk3rAtzlimaUJw= mvdan.cc/unparam v0.0.0-20200501210554-b37ab49443f7/go.mod h1:HGC5lll35J70Y5v7vCGb9oLhHoScFwkHDJm/05RdSTc= -nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= -nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index 8591808e9e..c9e0eba05e 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -8,7 +8,6 @@ import ( fmt "fmt" v1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" proto "github.com/gogo/protobuf/proto" - empty "github.com/golang/protobuf/ptypes/empty" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -29,26 +28,25 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -type RolloutInfoRequest struct { - Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` +type RolloutQuery struct { + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *RolloutInfoRequest) Reset() { *m = RolloutInfoRequest{} } -func (m *RolloutInfoRequest) String() string { return proto.CompactTextString(m) } -func (*RolloutInfoRequest) ProtoMessage() {} -func (*RolloutInfoRequest) Descriptor() ([]byte, []int) { +func (m *RolloutQuery) Reset() { *m = RolloutQuery{} } +func (m *RolloutQuery) String() string { return proto.CompactTextString(m) } +func (*RolloutQuery) ProtoMessage() {} +func (*RolloutQuery) Descriptor() ([]byte, []int) { return fileDescriptor_99101d942e8912a7, []int{0} } -func (m *RolloutInfoRequest) XXX_Unmarshal(b []byte) error { +func (m *RolloutQuery) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *RolloutInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *RolloutQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_RolloutInfoRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_RolloutQuery.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -58,82 +56,27 @@ func (m *RolloutInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *RolloutInfoRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_RolloutInfoRequest.Merge(m, src) +func (m *RolloutQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutQuery.Merge(m, src) } -func (m *RolloutInfoRequest) XXX_Size() int { +func (m *RolloutQuery) XXX_Size() int { return m.Size() } -func (m *RolloutInfoRequest) XXX_DiscardUnknown() { - xxx_messageInfo_RolloutInfoRequest.DiscardUnknown(m) +func (m *RolloutQuery) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutQuery.DiscardUnknown(m) } -var xxx_messageInfo_RolloutInfoRequest proto.InternalMessageInfo +var xxx_messageInfo_RolloutQuery proto.InternalMessageInfo -func (m *RolloutInfoRequest) GetNamespace() string { - if m != nil { - return m.Namespace - } - return "" -} - -func (m *RolloutInfoRequest) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -type Greeting struct { - Text string `protobuf:"bytes,1,opt,name=text,proto3" json:"text,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Greeting) Reset() { *m = Greeting{} } -func (m *Greeting) String() string { return proto.CompactTextString(m) } -func (*Greeting) ProtoMessage() {} -func (*Greeting) Descriptor() ([]byte, []int) { - return fileDescriptor_99101d942e8912a7, []int{1} -} -func (m *Greeting) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Greeting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Greeting.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Greeting) XXX_Merge(src proto.Message) { - xxx_messageInfo_Greeting.Merge(m, src) -} -func (m *Greeting) XXX_Size() int { - return m.Size() -} -func (m *Greeting) XXX_DiscardUnknown() { - xxx_messageInfo_Greeting.DiscardUnknown(m) -} - -var xxx_messageInfo_Greeting proto.InternalMessageInfo - -func (m *Greeting) GetText() string { - if m != nil { - return m.Text +func (m *RolloutQuery) GetName() string { + if m != nil && m.Name != nil { + return *m.Name } return "" } func init() { - proto.RegisterType((*RolloutInfoRequest)(nil), "rollout.RolloutInfoRequest") - proto.RegisterType((*Greeting)(nil), "rollout.Greeting") + proto.RegisterType((*RolloutQuery)(nil), "rollout.RolloutQuery") } func init() { @@ -141,31 +84,26 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 370 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0xeb, 0x40, - 0x14, 0xc7, 0x99, 0x72, 0xbf, 0x3a, 0x70, 0xef, 0xe5, 0x0e, 0xdc, 0x52, 0xd2, 0x12, 0x2e, 0xb9, - 0x1b, 0x37, 0xce, 0x58, 0x5d, 0xb8, 0x17, 0xaa, 0x16, 0x5c, 0xd5, 0x85, 0xe0, 0x46, 0xa6, 0xf1, - 0x74, 0x12, 0x9b, 0xcc, 0x8c, 0x93, 0x49, 0xd1, 0xad, 0xaf, 0x20, 0xbe, 0x93, 0x4b, 0xc1, 0x17, - 0x90, 0xe2, 0x1b, 0xf8, 0x02, 0x92, 0x49, 0x26, 0x55, 0xdc, 0xb8, 0xca, 0xf9, 0xc8, 0xf9, 0xff, - 0xcf, 0xf9, 0x25, 0xf8, 0xbf, 0x5e, 0x08, 0xc6, 0x75, 0x1a, 0x67, 0x29, 0x48, 0xcb, 0x8c, 0xca, - 0x32, 0x55, 0xb6, 0x4f, 0xaa, 0x8d, 0xb2, 0x8a, 0x7c, 0x6f, 0xd2, 0x60, 0x28, 0x94, 0x12, 0x19, - 0x54, 0x03, 0x8c, 0x4b, 0xa9, 0x2c, 0xb7, 0xa9, 0x92, 0x45, 0xfd, 0x5a, 0x70, 0x24, 0x52, 0x9b, - 0x94, 0x33, 0x1a, 0xab, 0x9c, 0x71, 0x23, 0x94, 0x36, 0xea, 0xc2, 0x05, 0x9b, 0xcd, 0x7c, 0xc1, - 0x1a, 0xb7, 0x82, 0xb5, 0x95, 0xe5, 0x88, 0x67, 0x3a, 0xe1, 0x23, 0x26, 0x40, 0x82, 0xe1, 0x16, - 0xce, 0x1b, 0xb5, 0x41, 0xe3, 0xe5, 0xb2, 0x59, 0x39, 0x67, 0x90, 0x6b, 0x7b, 0x5d, 0x37, 0xa3, - 0x7d, 0x4c, 0xa6, 0xb5, 0xc2, 0x44, 0xce, 0xd5, 0x14, 0x2e, 0x4b, 0x28, 0x2c, 0x19, 0xe2, 0xae, - 0xe4, 0x39, 0x14, 0x9a, 0xc7, 0xd0, 0x47, 0xff, 0xd0, 0x46, 0x77, 0xba, 0x2e, 0x10, 0x82, 0xbf, - 0x54, 0x49, 0xbf, 0xe3, 0x1a, 0x2e, 0x8e, 0x42, 0xfc, 0xe3, 0xc0, 0x00, 0xd8, 0x54, 0x8a, 0xaa, - 0x6f, 0xe1, 0xca, 0x36, 0x83, 0x2e, 0xde, 0x7e, 0x41, 0xf8, 0x57, 0x63, 0x74, 0x0c, 0x66, 0x99, - 0xc6, 0x40, 0xee, 0x10, 0xee, 0x9e, 0x70, 0x1b, 0x27, 0x95, 0x33, 0x19, 0x50, 0x8f, 0xea, 0xe3, - 0x3e, 0xc1, 0x84, 0xae, 0x89, 0x50, 0x4f, 0xc4, 0x05, 0x67, 0xfe, 0x7e, 0xaa, 0x17, 0x82, 0x56, - 0x44, 0x68, 0x5b, 0xf1, 0x44, 0xde, 0x2a, 0x46, 0xe1, 0xcd, 0xe3, 0xf3, 0x6d, 0xa7, 0x4f, 0x7a, - 0x8e, 0xfd, 0x72, 0xc4, 0x0a, 0x6b, 0x80, 0xe7, 0x9e, 0xe3, 0x16, 0x22, 0x13, 0xfc, 0xf5, 0x10, - 0xb2, 0x4c, 0x91, 0x1e, 0xad, 0xc9, 0x51, 0x4f, 0x8e, 0x8e, 0x2b, 0x72, 0xc1, 0x9f, 0x76, 0x55, - 0x7f, 0x72, 0xf4, 0xd7, 0xa9, 0xfe, 0x26, 0x3f, 0xbd, 0x6a, 0x52, 0x29, 0xec, 0x8d, 0xef, 0x57, - 0x21, 0x7a, 0x58, 0x85, 0xe8, 0x69, 0x15, 0xa2, 0xd3, 0xdd, 0x4f, 0x7f, 0xd6, 0xf7, 0x3f, 0xd1, - 0xec, 0x9b, 0x5b, 0x60, 0xe7, 0x35, 0x00, 0x00, 0xff, 0xff, 0x86, 0xed, 0x97, 0x4a, 0x64, 0x02, - 0x00, 0x00, + // 298 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x2e, 0xc8, 0x4e, 0xd7, + 0x4f, 0x2c, 0xc8, 0x4c, 0xce, 0xc9, 0x4c, 0xcd, 0x2b, 0xd1, 0x2f, 0xca, 0xcf, 0xc9, 0xc9, 0x2f, + 0x85, 0xd3, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xec, 0x50, 0xae, 0x94, 0x4c, 0x7a, 0x7e, + 0x7e, 0x7a, 0x4e, 0x2a, 0x48, 0x83, 0x7e, 0x62, 0x5e, 0x5e, 0x7e, 0x49, 0x62, 0x49, 0x66, 0x7e, + 0x5e, 0x31, 0x44, 0x99, 0x94, 0x4f, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, + 0x7e, 0x62, 0x51, 0x7a, 0x7e, 0x41, 0x51, 0x7e, 0x16, 0x98, 0xa1, 0x0b, 0xd5, 0x5f, 0xac, 0x0f, + 0xb5, 0xad, 0x58, 0x1f, 0x2e, 0x52, 0x66, 0x98, 0x98, 0x53, 0x90, 0x91, 0x68, 0xa8, 0x9f, 0x9e, + 0x9a, 0x97, 0x5a, 0x94, 0x58, 0x92, 0x9a, 0x02, 0x31, 0x4d, 0x49, 0x89, 0x8b, 0x27, 0x08, 0xa2, + 0x28, 0xb0, 0x34, 0xb5, 0xa8, 0x52, 0x48, 0x88, 0x8b, 0x25, 0x2f, 0x31, 0x37, 0x55, 0x82, 0x51, + 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x36, 0x5a, 0xc7, 0xc4, 0xc5, 0x07, 0x55, 0x14, 0x9c, 0x5a, + 0x54, 0x96, 0x99, 0x9c, 0x2a, 0xd4, 0xce, 0xc8, 0xc5, 0xec, 0x9e, 0x5a, 0x22, 0x24, 0xaa, 0x07, + 0xf3, 0x03, 0xb2, 0x29, 0x52, 0x9e, 0x7a, 0x08, 0x47, 0xea, 0xc1, 0x1c, 0x09, 0x66, 0xc4, 0xc3, + 0x9c, 0xa4, 0x57, 0x90, 0x9d, 0xae, 0x07, 0x72, 0xa4, 0x1e, 0x5c, 0x04, 0xe6, 0x48, 0x98, 0x59, + 0x9e, 0x79, 0x69, 0xf9, 0x4a, 0x72, 0x4d, 0x97, 0x9f, 0x4c, 0x66, 0x92, 0x10, 0x12, 0x03, 0x07, + 0x47, 0x99, 0x21, 0x3c, 0xf0, 0xaa, 0x41, 0x6e, 0xab, 0x15, 0x9a, 0xc8, 0xc8, 0xc5, 0x1a, 0x9e, + 0x58, 0x92, 0x9c, 0x41, 0x07, 0xb7, 0xa8, 0x80, 0xdd, 0x22, 0x27, 0x24, 0x83, 0xee, 0x96, 0x72, + 0x90, 0x03, 0xa0, 0x2e, 0x32, 0x60, 0x74, 0x72, 0x3d, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, + 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0xa3, 0xcc, 0x89, 0x8e, 0x30, 0xd4, 0xe4, 0x01, 0x08, 0x00, 0x00, + 0xff, 0xff, 0x86, 0xc3, 0xb5, 0x1b, 0x36, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -180,10 +118,9 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type RolloutServiceClient interface { - // WatchInfo return stream of rollout info - WatchInfo(ctx context.Context, in *RolloutInfoRequest, opts ...grpc.CallOption) (RolloutService_WatchInfoClient, error) - // Hello says hello - Hello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Greeting, error) + // Get returns a rollout + Get(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) + Watch(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchClient, error) } type rolloutServiceClient struct { @@ -194,12 +131,21 @@ func NewRolloutServiceClient(cc *grpc.ClientConn) RolloutServiceClient { return &rolloutServiceClient{cc} } -func (c *rolloutServiceClient) WatchInfo(ctx context.Context, in *RolloutInfoRequest, opts ...grpc.CallOption) (RolloutService_WatchInfoClient, error) { - stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[0], "/rollout.RolloutService/WatchInfo", opts...) +func (c *rolloutServiceClient) Get(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) { + out := new(v1alpha1.RolloutInfo) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/Get", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rolloutServiceClient) Watch(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchClient, error) { + stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[0], "/rollout.RolloutService/Watch", opts...) if err != nil { return nil, err } - x := &rolloutServiceWatchInfoClient{stream} + x := &rolloutServiceWatchClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -209,16 +155,16 @@ func (c *rolloutServiceClient) WatchInfo(ctx context.Context, in *RolloutInfoReq return x, nil } -type RolloutService_WatchInfoClient interface { +type RolloutService_WatchClient interface { Recv() (*v1alpha1.RolloutInfo, error) grpc.ClientStream } -type rolloutServiceWatchInfoClient struct { +type rolloutServiceWatchClient struct { grpc.ClientStream } -func (x *rolloutServiceWatchInfoClient) Recv() (*v1alpha1.RolloutInfo, error) { +func (x *rolloutServiceWatchClient) Recv() (*v1alpha1.RolloutInfo, error) { m := new(v1alpha1.RolloutInfo) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err @@ -226,138 +172,87 @@ func (x *rolloutServiceWatchInfoClient) Recv() (*v1alpha1.RolloutInfo, error) { return m, nil } -func (c *rolloutServiceClient) Hello(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*Greeting, error) { - out := new(Greeting) - err := c.cc.Invoke(ctx, "/rollout.RolloutService/Hello", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { - // WatchInfo return stream of rollout info - WatchInfo(*RolloutInfoRequest, RolloutService_WatchInfoServer) error - // Hello says hello - Hello(context.Context, *empty.Empty) (*Greeting, error) + // Get returns a rollout + Get(context.Context, *RolloutQuery) (*v1alpha1.RolloutInfo, error) + Watch(*RolloutQuery, RolloutService_WatchServer) error } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. type UnimplementedRolloutServiceServer struct { } -func (*UnimplementedRolloutServiceServer) WatchInfo(req *RolloutInfoRequest, srv RolloutService_WatchInfoServer) error { - return status.Errorf(codes.Unimplemented, "method WatchInfo not implemented") +func (*UnimplementedRolloutServiceServer) Get(ctx context.Context, req *RolloutQuery) (*v1alpha1.RolloutInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method Get not implemented") } -func (*UnimplementedRolloutServiceServer) Hello(ctx context.Context, req *empty.Empty) (*Greeting, error) { - return nil, status.Errorf(codes.Unimplemented, "method Hello not implemented") +func (*UnimplementedRolloutServiceServer) Watch(req *RolloutQuery, srv RolloutService_WatchServer) error { + return status.Errorf(codes.Unimplemented, "method Watch not implemented") } func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) } -func _RolloutService_WatchInfo_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(RolloutInfoRequest) +func _RolloutService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).Get(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/Get", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).Get(ctx, req.(*RolloutQuery)) + } + return interceptor(ctx, in, info, handler) +} + +func _RolloutService_Watch_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(RolloutQuery) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(RolloutServiceServer).WatchInfo(m, &rolloutServiceWatchInfoServer{stream}) + return srv.(RolloutServiceServer).Watch(m, &rolloutServiceWatchServer{stream}) } -type RolloutService_WatchInfoServer interface { +type RolloutService_WatchServer interface { Send(*v1alpha1.RolloutInfo) error grpc.ServerStream } -type rolloutServiceWatchInfoServer struct { +type rolloutServiceWatchServer struct { grpc.ServerStream } -func (x *rolloutServiceWatchInfoServer) Send(m *v1alpha1.RolloutInfo) error { +func (x *rolloutServiceWatchServer) Send(m *v1alpha1.RolloutInfo) error { return x.ServerStream.SendMsg(m) } -func _RolloutService_Hello_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(empty.Empty) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(RolloutServiceServer).Hello(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/rollout.RolloutService/Hello", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RolloutServiceServer).Hello(ctx, req.(*empty.Empty)) - } - return interceptor(ctx, in, info, handler) -} - var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "Hello", - Handler: _RolloutService_Hello_Handler, + MethodName: "Get", + Handler: _RolloutService_Get_Handler, }, }, Streams: []grpc.StreamDesc{ { - StreamName: "WatchInfo", - Handler: _RolloutService_WatchInfo_Handler, + StreamName: "Watch", + Handler: _RolloutService_Watch_Handler, ServerStreams: true, }, }, Metadata: "pkg/apiclient/rollout/rollout.proto", } -func (m *RolloutInfoRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RolloutInfoRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RolloutInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if m.XXX_unrecognized != nil { - i -= len(m.XXX_unrecognized) - copy(dAtA[i:], m.XXX_unrecognized) - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = encodeVarintRollout(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0x12 - } - if len(m.Namespace) > 0 { - i -= len(m.Namespace) - copy(dAtA[i:], m.Namespace) - i = encodeVarintRollout(dAtA, i, uint64(len(m.Namespace))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func (m *Greeting) Marshal() (dAtA []byte, err error) { +func (m *RolloutQuery) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -367,12 +262,12 @@ func (m *Greeting) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Greeting) MarshalTo(dAtA []byte) (int, error) { +func (m *RolloutQuery) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Greeting) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *RolloutQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -381,10 +276,10 @@ func (m *Greeting) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if len(m.Text) > 0 { - i -= len(m.Text) - copy(dAtA[i:], m.Text) - i = encodeVarintRollout(dAtA, i, uint64(len(m.Text))) + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintRollout(dAtA, i, uint64(len(*m.Name))) i-- dAtA[i] = 0xa } @@ -402,34 +297,14 @@ func encodeVarintRollout(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *RolloutInfoRequest) Size() (n int) { +func (m *RolloutQuery) Size() (n int) { if m == nil { return 0 } var l int _ = l - l = len(m.Namespace) - if l > 0 { - n += 1 + l + sovRollout(uint64(l)) - } - l = len(m.Name) - if l > 0 { - n += 1 + l + sovRollout(uint64(l)) - } - if m.XXX_unrecognized != nil { - n += len(m.XXX_unrecognized) - } - return n -} - -func (m *Greeting) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Text) - if l > 0 { + if m.Name != nil { + l = len(*m.Name) n += 1 + l + sovRollout(uint64(l)) } if m.XXX_unrecognized != nil { @@ -444,7 +319,7 @@ func sovRollout(x uint64) (n int) { func sozRollout(x uint64) (n int) { return sovRollout(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *RolloutInfoRequest) Unmarshal(dAtA []byte) error { +func (m *RolloutQuery) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -467,45 +342,13 @@ func (m *RolloutInfoRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: RolloutInfoRequest: wiretype end group for non-group") + return fmt.Errorf("proto: RolloutQuery: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: RolloutInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: RolloutQuery: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRollout - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthRollout - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthRollout - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Namespace = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } @@ -535,93 +378,8 @@ func (m *RolloutInfoRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipRollout(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthRollout - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthRollout - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Greeting) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRollout - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Greeting: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Greeting: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Text", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowRollout - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthRollout - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthRollout - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Text = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index 43e81506e8..e5cf024338 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -15,7 +15,6 @@ import ( "github.com/golang/protobuf/descriptor" "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/grpc-ecosystem/grpc-gateway/utilities" "google.golang.org/grpc" @@ -32,49 +31,92 @@ var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -var ( - filter_RolloutService_WatchInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_RolloutService_WatchInfo_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchInfoClient, runtime.ServerMetadata, error) { - var protoReq RolloutInfoRequest +func request_RolloutService_Get_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery var metadata runtime.ServerMetadata - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_RolloutService_WatchInfo_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } + var ( + val string + ok bool + err error + _ = err + ) - stream, err := client.WatchInfo(ctx, &protoReq) - if err != nil { - return nil, metadata, err + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - header, err := stream.Header() + + protoReq.Name, err = runtime.StringP(val) + if err != nil { - return nil, metadata, err + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - metadata.HeaderMD = header - return stream, metadata, nil + + msg, err := client.Get(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err } -func request_RolloutService_Hello_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty +func local_request_RolloutService_Get_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery var metadata runtime.ServerMetadata - msg, err := client.Hello(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.StringP(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.Get(ctx, &protoReq) return msg, metadata, err } -func local_request_RolloutService_Hello_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq empty.Empty +func request_RolloutService_Watch_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchClient, runtime.ServerMetadata, error) { + var protoReq RolloutQuery var metadata runtime.ServerMetadata - msg, err := server.Hello(ctx, &protoReq) - return msg, metadata, err + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.StringP(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + stream, err := client.Watch(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil } @@ -83,14 +125,7 @@ func local_request_RolloutService_Hello_0(ctx context.Context, marshaler runtime // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RolloutServiceServer) error { - mux.Handle("GET", pattern_RolloutService_WatchInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") - _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - }) - - mux.Handle("GET", pattern_RolloutService_Hello_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -99,17 +134,24 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_RolloutService_Hello_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RolloutService_Get_0(rctx, inboundMarshaler, server, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_Hello_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RolloutService_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) + mux.Handle("GET", pattern_RolloutService_Watch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + return nil } @@ -151,7 +193,7 @@ func RegisterRolloutServiceHandler(ctx context.Context, mux *runtime.ServeMux, c // "RolloutServiceClient" to call the correct interceptors. func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RolloutServiceClient) error { - mux.Handle("GET", pattern_RolloutService_WatchInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -160,18 +202,18 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RolloutService_WatchInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RolloutService_Get_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_WatchInfo_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_RolloutService_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RolloutService_Hello_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_Watch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -180,14 +222,14 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RolloutService_Hello_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RolloutService_Watch_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_Hello_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RolloutService_Watch_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -195,13 +237,13 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve } var ( - pattern_RolloutService_WatchInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "stream", "rollout"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_RolloutService_Get_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "rollout", "name"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_RolloutService_Hello_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "hello"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_RolloutService_Watch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "watch", "name"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( - forward_RolloutService_WatchInfo_0 = runtime.ForwardResponseStream + forward_RolloutService_Get_0 = runtime.ForwardResponseMessage - forward_RolloutService_Hello_0 = runtime.ForwardResponseMessage + forward_RolloutService_Watch_0 = runtime.ForwardResponseStream ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index 3e511576c2..ad2cdc386d 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -1,29 +1,22 @@ -syntax = "proto3"; +syntax = "proto2"; option go_package = "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout"; import "google/api/annotations.proto"; import "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto"; -import "google/protobuf/empty.proto"; package rollout; -message RolloutInfoRequest { - string namespace = 1; - string name = 2; -} - -message Greeting { - string text = 1; +message RolloutQuery { + optional string name = 1; } service RolloutService { - // WatchInfo return stream of rollout info - rpc WatchInfo(RolloutInfoRequest) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { - option (google.api.http).get = "/api/v1/stream/rollout"; + // Get returns a rollout + rpc Get(RolloutQuery) returns (github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { + option (google.api.http).get = "/api/v1/rollout/{name}"; } - // Hello says hello - rpc Hello(google.protobuf.Empty) returns (Greeting) { - option (google.api.http).get = "/api/v1/hello"; + rpc Watch(RolloutQuery) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { + option (google.api.http).get = "/api/v1/rollout/watch/{name}"; } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index b0c99b100e..591fd667a0 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -11,27 +11,9 @@ "application/json" ], "paths": { - "/api/v1/hello": { + "/api/v1/rollout/watch/{name}": { "get": { - "summary": "Hello says hello", - "operationId": "Hello", - "responses": { - "200": { - "description": "A successful response.", - "schema": { - "$ref": "#/definitions/rollout.Greeting" - } - } - }, - "tags": [ - "RolloutService" - ] - } - }, - "/api/v1/stream/rollout": { - "get": { - "summary": "WatchInfo return stream of rollout info", - "operationId": "WatchInfo", + "operationId": "Watch", "responses": { "200": { "description": "A successful response.(streaming responses)", @@ -51,15 +33,34 @@ }, "parameters": [ { - "name": "namespace", - "in": "query", - "required": false, + "name": "name", + "in": "path", + "required": true, "type": "string" - }, + } + ], + "tags": [ + "RolloutService" + ] + } + }, + "/api/v1/rollout/{name}": { + "get": { + "summary": "Get returns a rollout", + "operationId": "Get", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo" + } + } + }, + "parameters": [ { "name": "name", - "in": "query", - "required": false, + "in": "path", + "required": true, "type": "string" } ], @@ -312,14 +313,6 @@ } }, "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON. Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" - }, - "rollout.Greeting": { - "type": "object", - "properties": { - "text": { - "type": "string" - } - } } } } diff --git a/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go b/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go index 5b03f75566..31b742e2ce 100644 --- a/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go +++ b/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go @@ -69,7 +69,7 @@ func NewCmdGetRollout(o *options.ArgoRolloutsOptions) *cobra.Command { return cmd } -func (o *GetOptions) WatchRollout(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo) { +func Watch(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo, callback func(*info.RolloutInfo)) { ticker := time.NewTicker(time.Second) var currRolloutInfo *info.RolloutInfo // preventFlicker is used to rate-limit the updates we print to the terminal when updates occur @@ -85,13 +85,20 @@ func (o *GetOptions) WatchRollout(stopCh <-chan struct{}, rolloutUpdates chan *i return } if currRolloutInfo != nil && time.Now().After(preventFlicker.Add(200*time.Millisecond)) { - o.Clear() - o.PrintRollout(currRolloutInfo) + callback(currRolloutInfo) preventFlicker = time.Now() } } } +func (o *GetOptions) WatchRollout(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo) { + Watch(stopCh, rolloutUpdates, + func (i *info.RolloutInfo) { + o.Clear() + o.PrintRollout(i) + }) +} + // formatImage formats an ImageInfo with colorized imageinfo tags (e.g. canary, stable) func (o *GetOptions) formatImage(image info.ImageInfo) string { imageStr := image.Image diff --git a/server/server.go b/server/server.go index 3bacce10e9..f9c40e705d 100644 --- a/server/server.go +++ b/server/server.go @@ -10,17 +10,19 @@ import ( "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" rolloutspkg "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" + rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" - "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" "github.com/argoproj/argo-rollouts/utils/json" "github.com/argoproj/pkg/errors" - "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" log "github.com/sirupsen/logrus" "github.com/soheilhy/cmux" "google.golang.org/grpc" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/kubernetes" ) var backoff = wait.Backoff{ @@ -29,26 +31,31 @@ var backoff = wait.Backoff{ Factor: 1.0, Jitter: 0.1, } +type ServerOptions struct { + KubeClientset kubernetes.Interface + RolloutsClientset rolloutclientset.Interface + Namespace string +} + +const ( + // MaxGRPCMessageSize contains max grpc message size + MaxGRPCMessageSize = 100 * 1024 * 1024 +) // ArgoRolloutsServer holds information about rollouts server type ArgoRolloutsServer struct { - Namespace string + Options ServerOptions stopCh chan struct{} } // NewServer creates an ArgoRolloutsServer -func NewServer(namespace string) *ArgoRolloutsServer { - return &ArgoRolloutsServer{Namespace: namespace}; -} - -// NewRolloutsServer creates a RolloutServiceServer -func NewRolloutsServer(namespace string) rolloutspkg.RolloutServiceServer { - return &ArgoRolloutsServer{Namespace: namespace} +func NewServer(o ServerOptions) *ArgoRolloutsServer { + return &ArgoRolloutsServer{Options: o}; } func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http.Server { mux := http.NewServeMux() - endpoint := fmt.Sprintf("localhost:%d", port) + endpoint := fmt.Sprintf("0.0.0.0:%d", port) httpS := http.Server{ Addr: endpoint, @@ -61,7 +68,9 @@ func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http. runtime.WithProtoErrorHandler(runtime.DefaultHTTPProtoErrorHandler), ) - var opts []grpc.DialOption + opts := []grpc.DialOption{ + grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(MaxGRPCMessageSize)), + } opts = append(opts, grpc.WithInsecure()) err := rolloutspkg.RegisterRolloutServiceHandlerFromEndpoint(ctx, gwmux, endpoint, opts) @@ -77,7 +86,8 @@ func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http. func (s* ArgoRolloutsServer) newGRPCServer() *grpc.Server { grpcS := grpc.NewServer() - rolloutspkg.RegisterRolloutServiceServer(grpcS, NewRolloutsServer(s.Namespace)) + var rolloutsServer rolloutspkg.RolloutServiceServer = NewServer(s.Options) + rolloutspkg.RegisterRolloutServiceServer(grpcS, rolloutsServer) return grpcS } @@ -111,12 +121,12 @@ func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { }) errors.CheckError(realErr) - log.Infof("Argo Rollouts api-server serving on port %d (namespace: %s)", port, s.Namespace) + log.Infof("Argo Rollouts api-server serving on port %d (namespace: %s)", port, s.Options.Namespace) tcpm := cmux.New(conn) httpL := tcpm.Match(cmux.HTTP1Fast()) - grpcL := tcpm.Match(cmux.HTTP2HeaderField("content-type", "application/grpc")) + grpcL := tcpm.Match(cmux.Any()) go func () { s.checkServeErr("httpServer", httpServer.Serve(httpL)) @@ -124,52 +134,50 @@ func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { go func () { s.checkServeErr("grpcServer", grpcServer.Serve(grpcL)) }() + go func() { s.checkServeErr("tcpm", tcpm.Serve()) }() s.stopCh = make(chan struct{}) <-s.stopCh errors.CheckError(conn.Close()) } -// RolloutInfo returns info stream for requested rollout -func (s* ArgoRolloutsServer) WatchInfo(q *rollout.RolloutInfoRequest, ws rollout.RolloutService_WatchInfoServer) error { - o := options.ArgoRolloutsOptions{} +func (s* ArgoRolloutsServer) initRolloutViewController(name string, ctx context.Context) *viewcontroller.RolloutViewController { + controller := viewcontroller.NewRolloutViewController(s.Options.Namespace, name, s.Options.KubeClientset, s.Options.RolloutsClientset) + controller.Start(ctx) + return controller +} + +func infoToResponse(ri *info.RolloutInfo) *v1alpha1.RolloutInfo { + return &v1alpha1.RolloutInfo{ + ObjectMeta: v1.ObjectMeta{ Name: ri.Metadata.Name, Namespace: ri.Metadata.Namespace}, + Status: ri.Status, + } +} + +// Get returns a rollout +func (s* ArgoRolloutsServer) Get(c context.Context, q *rollout.RolloutQuery) (*v1alpha1.RolloutInfo, error) { + controller := s.initRolloutViewController(q.GetName(), context.Background()) + ri, err := controller.GetRolloutInfo() + if (err != nil) { + return nil, err + } + return infoToResponse(ri), nil +} - controller := viewcontroller.NewRolloutViewController(q.Namespace, q.Name, o.KubeClientset(), o.RolloutsClientset()) +// Watch returns a rollout +func (s* ArgoRolloutsServer) Watch(q *rollout.RolloutQuery, ws rollout.RolloutService_WatchServer) error { ctx := context.Background() - controller.Start(ctx) + controller := s.initRolloutViewController(q.GetName(), ctx) rolloutUpdates := make(chan *info.RolloutInfo) controller.RegisterCallback(func(roInfo *info.RolloutInfo) { rolloutUpdates <- roInfo }) - go func() { - rolloutUpdates := make(chan *info.RolloutInfo) - ticker := time.NewTicker(time.Second) - var currRolloutInfo *info.RolloutInfo - var preventFlicker time.Time - - for { - select { - case roInfo := <-rolloutUpdates: - currRolloutInfo = roInfo - case <-ticker.C: - case <-rolloutUpdates: - return - } - if currRolloutInfo != nil && time.Now().After(preventFlicker.Add(200*time.Millisecond)) { - ws.Send(&v1alpha1.RolloutInfo{ - Status: currRolloutInfo.Status, - }); - preventFlicker = time.Now() - } - } - }() + + go get.Watch(ctx.Done(), rolloutUpdates, func(i *info.RolloutInfo) { + ws.Send(infoToResponse(i)) + }) controller.Run(ctx) close(rolloutUpdates) return nil -} - -func (s* ArgoRolloutsServer) Hello(c context.Context, e *empty.Empty) (*rollout.Greeting, error) { - log.Info("Hello") - return &rollout.Greeting{Text: "Hello!"}, nil } \ No newline at end of file diff --git a/ui/.gitignore b/ui/.gitignore new file mode 100644 index 0000000000..4d29575de8 --- /dev/null +++ b/ui/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/ui/.prettierrc b/ui/.prettierrc new file mode 100644 index 0000000000..0abdae70b5 --- /dev/null +++ b/ui/.prettierrc @@ -0,0 +1,9 @@ +{ + "bracketSpacing": false, + "jsxSingleQuote": true, + "printWidth": 180, + "singleQuote": true, + "tabWidth": 4, + "jsxBracketSameLine": true, + "quoteProps": "consistent" +} diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 0000000000..880ced1c77 --- /dev/null +++ b/ui/package.json @@ -0,0 +1,53 @@ +{ + "name": "ui", + "version": "0.1.0", + "private": true, + "dependencies": { + "@fortawesome/fontawesome-free": "^5.15.2", + "@testing-library/jest-dom": "^5.11.4", + "@testing-library/react": "^11.1.0", + "@testing-library/user-event": "^12.1.10", + "@types/jest": "^26.0.15", + "@types/node": "^12.0.0", + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-hot-loader": "^3.1.3", + "react-scripts": "4.0.3", + "typescript": "^4.1.2", + "web-vitals": "^1.0.1", + "webpack-dev-server": "^3.11.2" + }, + "scripts": { + "start": "webpack serve --config ./src/app/webpack.config.js", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "copy-webpack-plugin": "^6.3.2", + "raw-loader": "^4.0.2", + "sass": "^1.32.8", + "ts-loader": "^8.0.17", + "webpack-cli": "^4.5.0" + } +} diff --git a/ui/src/app/App.scss b/ui/src/app/App.scss new file mode 100644 index 0000000000..b4abd5e6fc --- /dev/null +++ b/ui/src/app/App.scss @@ -0,0 +1,4 @@ +.App { + font-family: 'Heebo'; + text-align: center; +} diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx new file mode 100644 index 0000000000..129794ec89 --- /dev/null +++ b/ui/src/app/App.tsx @@ -0,0 +1,7 @@ +import * as React from 'react'; + +import './App.scss'; + +const App = () =>
Argo Rollouts
; + +export default App; diff --git a/ui/src/app/index.html b/ui/src/app/index.html new file mode 100644 index 0000000000..9acb3e1c82 --- /dev/null +++ b/ui/src/app/index.html @@ -0,0 +1,12 @@ + + + + + + Argo Rollouts + + + +
+ + diff --git a/ui/src/app/index.tsx b/ui/src/app/index.tsx new file mode 100644 index 0000000000..3bc5d04223 --- /dev/null +++ b/ui/src/app/index.tsx @@ -0,0 +1,10 @@ +import * as React from 'react'; +import * as ReactDOM from 'react-dom'; +import App from './App'; + +ReactDOM.render( + + + , + document.getElementById('root') +); diff --git a/ui/src/app/tsconfig.json b/ui/src/app/tsconfig.json new file mode 100644 index 0000000000..b7473ce285 --- /dev/null +++ b/ui/src/app/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "outDir": "./../../dist/app", + "sourceMap": true, + "noImplicitAny": true, + "module": "commonjs", + "target": "es5", + "jsx": "react", + "experimentalDecorators": true, + "noUnusedLocals": true, + "declaration": false, + "lib": ["es2017", "dom"] + }, + "include": ["./**/*"] +} diff --git a/ui/src/app/webpack.config.js b/ui/src/app/webpack.config.js new file mode 100644 index 0000000000..ca6d0a19f2 --- /dev/null +++ b/ui/src/app/webpack.config.js @@ -0,0 +1,97 @@ +"use strict;"; + +const CopyWebpackPlugin = require("copy-webpack-plugin"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const webpack = require("webpack"); +const path = require("path"); + +const isProd = process.env.NODE_ENV === "production"; + +console.log( + `Starting webpack in ${process.env.NODE_ENV || "development"} mode` +); + +const config = { + mode: isProd ? "production" : "development", + entry: { + main: "./src/app/index.tsx", + }, + output: { + filename: "[name].[chunkhash].js", + path: __dirname + "/../../dist/app", + }, + + devtool: "source-map", + + resolve: { + extensions: [".ts", ".tsx", ".js", ".json", ".ttf"], + }, + + module: { + rules: [ + { + test: /\.tsx?$/, + loaders: [ + ...(isProd ? [] : ["react-hot-loader/webpack"]), + `ts-loader?transpileOnly=${!isProd}&allowTsInNodeModules=true&configFile=${path.resolve( + "./src/app/tsconfig.json" + )}`, + ], + }, + { + test: /\.scss$/, + loader: "style-loader!raw-loader!sass-loader", + }, + { + test: /\.css$/, + loader: "style-loader!raw-loader", + }, + { + test: /\.ttf$/, + use: ["file-loader"], + }, + ], + }, + node: { + fs: "empty", + }, + plugins: [ + new webpack.DefinePlugin({ + "process.env.NODE_ENV": JSON.stringify( + process.env.NODE_ENV || "development" + ), + SYSTEM_INFO: JSON.stringify({ + version: process.env.VERSION || "latest", + }), + }), + new HtmlWebpackPlugin({ template: "src/app/index.html" }), + new CopyWebpackPlugin({ + patterns: [ + { + from: "node_modules/@fortawesome/fontawesome-free/webfonts", + to: "assets/fonts", + }, + ], + }), + ], + devServer: { + historyApiFallback: { + disableDotRule: true, + }, + watchOptions: { + ignored: [/dist/, /node_modules/], + }, + headers: { + "X-Frame-Options": "SAMEORIGIN", + }, + port: 3101, + proxy: { + "/api/v1": { + target: isProd ? "" : "http://localhost:3100", + secure: false, + }, + }, + }, +}; + +module.exports = config; diff --git a/ui/tsconfig.json b/ui/tsconfig.json new file mode 100644 index 0000000000..06774a244c --- /dev/null +++ b/ui/tsconfig.json @@ -0,0 +1 @@ +src/app/tsconfig.json diff --git a/ui/yarn.lock b/ui/yarn.lock new file mode 100644 index 0000000000..0b966817dc --- /dev/null +++ b/ui/yarn.lock @@ -0,0 +1,11720 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.5.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.12.1", "@babel/compat-data@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.13.tgz#27e19e0ed3726ccf54067ced4109501765e7e2e8" + integrity sha512-U/hshG5R+SIoW7HVWIdmy1cB7s3ki+r3FpyEZiCgpi4tFgPnX/vynY80ZGSASOIrUM6O7VxOgCZgdt7h97bUGg== + +"@babel/core@7.12.3": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.17.tgz#993c5e893333107a2815d8e0d73a2c3755e280b2" + integrity sha512-V3CuX1aBywbJvV2yzJScRxeiiw0v2KZZYYE3giywxzFJL13RiyPjaaDwhDnxmgFTTS7FgvM2ijr4QmKNIu0AtQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.12.17" + "@babel/helper-module-transforms" "^7.12.17" + "@babel/helpers" "^7.12.17" + "@babel/parser" "^7.12.17" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.19" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.12.1", "@babel/generator@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.17.tgz#9ef1dd792d778b32284411df63f4f668a9957287" + integrity sha512-DSA7ruZrY4WI8VxuS1jWSRezFnghEoYEFrZcw9BizQRmOZiUsiHl59+qEARGPqPikwA/GPTyRCi7isuCK/oyqg== + dependencies: + "@babel/types" "^7.12.17" + jsesc "^2.5.1" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-compilation-targets@^7.12.1", "@babel/helper-compilation-targets@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.17.tgz#91d83fae61ef390d39c3f0507cb83979bab837c7" + integrity sha512-5EkibqLVYOuZ89BSg2lv+GG8feywLuvMXNYgf0Im4MssE0mFWPztSpJbildNnUgw0bLI2EsIN4MpSHC2iUJkQA== + dependencies: + "@babel/compat-data" "^7.12.13" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.14.5" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.12.1", "@babel/helper-create-class-features-plugin@^7.12.13", "@babel/helper-create-class-features-plugin@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.17.tgz#704b69c8a78d03fb1c5fcc2e7b593f8a65628944" + integrity sha512-I/nurmTxIxHV0M+rIpfQBF1oN342+yvl2kwZUrQuOClMamHF1w5tknfZubgNOLRoA73SzBFAdFcpb4M9HwOeWQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-member-expression-to-functions" "^7.12.17" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" + integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.13.tgz#0e46990da9e271502f77507efa4c9918d3d8634a" + integrity sha512-5loeRNvMo9mx1dA/d6yNi+YiKziJZFylZnCo1nmFF4qPU4yJ14abhWESuSMQSlQxWdxdOFzxXjk/PpfudTtYyw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" + integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.12.13.tgz#13aba58b7480b502362316ea02f52cca0e9796cd" + integrity sha512-KSC5XSj5HreRhYQtZ3cnSnQwDzgnbdUDEFsxkN0m6Q3WrCRt72xrnZ8+h+pX7YxM7hr87zIO3a/v5p/H3TrnVw== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-member-expression-to-functions@^7.12.13", "@babel/helper-member-expression-to-functions@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.17.tgz#f82838eb06e1235307b6d71457b6670ff71ee5ac" + integrity sha512-Bzv4p3ODgS/qpBE0DiJ9qf5WxSmrQ8gVTe8ClMfwwsY2x/rhykxxy3bXzG7AGTnPB2ij37zGJ/Q/6FruxHxsxg== + dependencies: + "@babel/types" "^7.12.17" + +"@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" + integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.12.13", "@babel/helper-module-transforms@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.17.tgz#7c75b987d6dfd5b48e575648f81eaac891539509" + integrity sha512-sFL+p6zOCQMm9vilo06M4VHuTxUAwa6IxgL56Tq1DVtA0ziAGTH1ThmJq7xwPqdQlgAbKX3fb0oZNbtRIyA5KQ== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb" + integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== + +"@babel/helper-remap-async-to-generator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.13.tgz#170365f4140e2d20e5c88f8ba23c24468c296878" + integrity sha512-Qa6PU9vNcj1NZacZZI1Mvwt+gXDH6CTfgAkSjeRMLE8HxtDK76+YDId6NQR+z7Rgd5arhD2cIbS74r0SxD6PDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-replace-supers@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121" + integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helper-simple-access@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" + integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + +"@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.13.tgz#e3ea8cb3ee0a16911f9c1b50d9e99fe8fe30f9ff" + integrity sha512-t0aZFEmBJ1LojdtJnhOaQEVejnzYhyjWHSsNSNo8vOYRbAJNh6r6GQF7pd36SqG7OKGbn+AewVQ/0IfYfIuGdw== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/helpers@^7.12.1", "@babel/helpers@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.17.tgz#71e03d2981a6b5ee16899964f4101dc8471d60bc" + integrity sha512-tEpjqSBGt/SFEsFikKds1sLNChKKGGR17flIgQKXH4fG6m9gTgl3gnOC1giHNyaBCSKuTfxaSzHi7UnvqiVKxg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.12.17" + "@babel/types" "^7.12.17" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" + integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.12.13", "@babel/parser@^7.12.17", "@babel/parser@^7.12.3", "@babel/parser@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.17.tgz#bc85d2d47db38094e5bb268fc761716e7d693848" + integrity sha512-r1yKkiUTYMQ8LiEI0UcQx5ETw5dpTLn9wijn9hk6KkTtOK95FndDN10M+8/s6k/Ymlbivw0Av9q4SlgF80PtHg== + +"@babel/plugin-proposal-async-generator-functions@^7.12.1", "@babel/plugin-proposal-async-generator-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.13.tgz#d1c6d841802ffb88c64a2413e311f7345b9e66b5" + integrity sha512-1KH46Hx4WqP77f978+5Ye/VUbuwQld2hph70yaw2hXS2v7ER2f3nlpNMu909HO2rbvP0NKLlMVDPh9KXklVMhA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-remap-async-to-generator" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-proposal-class-properties@^7.12.1", "@babel/plugin-proposal-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.13.tgz#3d2ce350367058033c93c098e348161d6dc0d8c8" + integrity sha512-8SCJ0Ddrpwv4T7Gwb33EmW1V9PY5lggTO+A8WjyIwxrSHDUyBw4MtF96ifn1n8H806YlxbVCoKXbbmzD6RD+cA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-proposal-decorators@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz#59271439fed4145456c41067450543aee332d15f" + integrity sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-decorators" "^7.12.1" + +"@babel/plugin-proposal-dynamic-import@^7.12.1", "@babel/plugin-proposal-dynamic-import@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.17.tgz#e0ebd8db65acc37eac518fa17bead2174e224512" + integrity sha512-ZNGoFZqrnuy9H2izB2jLlnNDAfVPlGl5NhFEiFe4D84ix9GQGygF+CWMGHKuE+bpyS/AOuDQCnkiRNqW2IzS1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-export-namespace-from@^7.12.1", "@babel/plugin-proposal-export-namespace-from@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" + integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.12.1", "@babel/plugin-proposal-json-strings@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.13.tgz#ced7888a2db92a3d520a2e35eb421fdb7fcc9b5d" + integrity sha512-v9eEi4GiORDg8x+Dmi5r8ibOe0VXoKDeNPYcTTxdGN4eOWikrJfDJCJrr1l5gKGvsNyGJbrfMftC2dTL6oz7pg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1", "@babel/plugin-proposal-logical-assignment-operators@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.13.tgz#575b5d9a08d8299eeb4db6430da6e16e5cf14350" + integrity sha512-fqmiD3Lz7jVdK6kabeSr1PZlWSUVqSitmHEe3Z00dtGTKieWnX9beafvavc32kjORa5Bai4QNHgFDwWJP+WtSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1", "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.13.tgz#24867307285cee4e1031170efd8a7ac807deefde" + integrity sha512-Qoxpy+OxhDBI5kRqliJFAl4uWXk3Bn24WeFstPH0iLymFehSAUR8MHpqU7njyXv/qbo7oN6yTy5bfCmXdKpo1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" + integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-numeric-separator@^7.12.1", "@babel/plugin-proposal-numeric-separator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" + integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.12.1", "@babel/plugin-proposal-object-rest-spread@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.13.tgz#f93f3116381ff94bc676fdcb29d71045cd1ec011" + integrity sha512-WvA1okB/0OS/N3Ldb3sziSrXg6sRphsBgqiccfcQq7woEn5wQLNX82Oc4PlaFcdwcWHuQXAtb8ftbS8Fbsg/sg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.12.13" + +"@babel/plugin-proposal-optional-catch-binding@^7.12.1", "@babel/plugin-proposal-optional-catch-binding@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.13.tgz#4640520afe57728af14b4d1574ba844f263bcae5" + integrity sha512-9+MIm6msl9sHWg58NvqpNpLtuFbmpFYk37x8kgnGzAHvX35E1FyAwSUt5hIkSoWJFSAH+iwU8bJ4fcD1zKXOzg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" + integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.12.1", "@babel/plugin-proposal-optional-chaining@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.17.tgz#e382becadc2cb16b7913b6c672d92e4b33385b5c" + integrity sha512-TvxwI80pWftrGPKHNfkvX/HnoeSTR7gC4ezWnAL39PuktYUe6r8kEpOLTYnkBTsaoeazXm2jHJ22EQ81sdgfcA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-private-methods@^7.12.1", "@babel/plugin-proposal-private-methods@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.13.tgz#ea78a12554d784ecf7fc55950b752d469d9c4a71" + integrity sha512-sV0V57uUwpauixvR7s2o75LmwJI6JECwm5oPUY5beZB1nBl2i37hc7CJGqB5G+58fur5Y6ugvl3LRONk5x34rg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-decorators@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" + integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-flow@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" + integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" + integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.12.1", "@babel/plugin-syntax-top-level-await@^7.12.13", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-typescript@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz#9dff111ca64154cef0f4dc52cf843d9f12ce4474" + integrity sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-arrow-functions@^7.12.1", "@babel/plugin-transform-arrow-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.13.tgz#eda5670b282952100c229f8a3bd49e0f6a72e9fe" + integrity sha512-tBtuN6qtCTd+iHzVZVOMNp+L04iIJBpqkdY42tWbmjIT5wvR2kx7gxMBsyhQtFzHwBbyGi9h8J8r9HgnOpQHxg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-async-to-generator@^7.12.1", "@babel/plugin-transform-async-to-generator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.13.tgz#fed8c69eebf187a535bfa4ee97a614009b24f7ae" + integrity sha512-psM9QHcHaDr+HZpRuJcE1PXESuGWSCcbiGFFhhwfzdbTxaGDVzuVtdNYliAwcRo3GFg0Bc8MmI+AvIGYIJG04A== + dependencies: + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-remap-async-to-generator" "^7.12.13" + +"@babel/plugin-transform-block-scoped-functions@^7.12.1", "@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-block-scoping@^7.12.1", "@babel/plugin-transform-block-scoping@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" + integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-classes@^7.12.1", "@babel/plugin-transform-classes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.13.tgz#9728edc1838b5d62fc93ad830bd523b1fcb0e1f6" + integrity sha512-cqZlMlhCC1rVnxE5ZGMtIb896ijL90xppMiuWXcwcOAuFczynpd3KYemb91XFFPi3wJSe/OcrX9lXoowatkkxA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.12.1", "@babel/plugin-transform-computed-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.13.tgz#6a210647a3d67f21f699cfd2a01333803b27339d" + integrity sha512-dDfuROUPGK1mTtLKyDPUavmj2b6kFu82SmgpztBFEO974KMjJT+Ytj3/oWsTUMBmgPcp9J5Pc1SlcAYRpJ2hRA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-destructuring@^7.12.1", "@babel/plugin-transform-destructuring@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.13.tgz#fc56c5176940c5b41735c677124d1d20cecc9aeb" + integrity sha512-Dn83KykIFzjhA3FDPA1z4N+yfF3btDGhjnJwxIj0T43tP0flCujnU8fKgEkf0C1biIpSv9NZegPBQ1J6jYkwvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-duplicate-keys@^7.12.1", "@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-exponentiation-operator@^7.12.1", "@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-flow-strip-types@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz#8430decfa7eb2aea5414ed4a3fa6e1652b7d77c4" + integrity sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-flow" "^7.12.1" + +"@babel/plugin-transform-for-of@^7.12.1", "@babel/plugin-transform-for-of@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.13.tgz#561ff6d74d9e1c8879cb12dbaf4a14cd29d15cf6" + integrity sha512-xCbdgSzXYmHGyVX3+BsQjcd4hv4vA/FDy7Kc8eOpzKmBBPEOTurt0w5fCRQaGl+GSBORKgJdstQ1rHl4jbNseQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-function-name@^7.12.1", "@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-literals@^7.12.1", "@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-member-expression-literals@^7.12.1", "@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-modules-amd@^7.12.1", "@babel/plugin-transform-modules-amd@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.13.tgz#43db16249b274ee2e551e2422090aa1c47692d56" + integrity sha512-JHLOU0o81m5UqG0Ulz/fPC68/v+UTuGTWaZBUwpEk1fYQ1D9LfKV6MPn4ttJKqRo5Lm460fkzjLTL4EHvCprvA== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.12.1", "@babel/plugin-transform-modules-commonjs@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.13.tgz#5043b870a784a8421fa1fd9136a24f294da13e50" + integrity sha512-OGQoeVXVi1259HjuoDnsQMlMkT9UkZT9TpXAsqWplS/M0N1g3TJAn/ByOCeQu7mfjc5WpSsRU+jV1Hd89ts0kQ== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-simple-access" "^7.12.13" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.12.1", "@babel/plugin-transform-modules-systemjs@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.13.tgz#351937f392c7f07493fc79b2118201d50404a3c5" + integrity sha512-aHfVjhZ8QekaNF/5aNdStCGzwTbU7SI5hUybBKlMzqIMC7w7Ho8hx5a4R/DkTHfRfLwHGGxSpFt9BfxKCoXKoA== + dependencies: + "@babel/helper-hoist-variables" "^7.12.13" + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-validator-identifier" "^7.12.11" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.12.1", "@babel/plugin-transform-modules-umd@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.13.tgz#26c66f161d3456674e344b4b1255de4d530cfb37" + integrity sha512-BgZndyABRML4z6ibpi7Z98m4EVLFI9tVsZDADC14AElFaNHHBcJIovflJ6wtCqFxwy2YJ1tJhGRsr0yLPKoN+w== + dependencies: + "@babel/helper-module-transforms" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1", "@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + +"@babel/plugin-transform-new-target@^7.12.1", "@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-object-super@^7.12.1", "@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" + +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.13.tgz#461e76dfb63c2dfd327b8a008a9e802818ce9853" + integrity sha512-e7QqwZalNiBRHCpJg/P8s/VJeSRYgmtWySs1JwvfwPqhBbiWfOcHDKdeAi6oAyIimoKWBlwc8oTgbZHdhCoVZA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-property-literals@^7.12.1", "@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-constant-elements@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.12.13.tgz#f8ee56888545d53d80f766b3cc1563ab2c241f92" + integrity sha512-qmzKVTn46Upvtxv8LQoQ8mTCdUC83AOVQIQm57e9oekLT5cmK9GOMOfcWhe8jMNx4UJXn/UDhVZ/7lGofVNeDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-display-name@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz#1cbcd0c3b1d6648c55374a22fc9b6b7e5341c00d" + integrity sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-react-display-name@^7.12.1", "@babel/plugin-transform-react-display-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz#c28effd771b276f4647411c9733dbb2d2da954bd" + integrity sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx-development@^7.12.1", "@babel/plugin-transform-react-jsx-development@^7.12.12": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz#f510c0fa7cd7234153539f9a362ced41a5ca1447" + integrity sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ== + dependencies: + "@babel/plugin-transform-react-jsx" "^7.12.17" + +"@babel/plugin-transform-react-jsx-self@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz#422d99d122d592acab9c35ea22a6cfd9bf189f60" + integrity sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx-source@^7.12.1": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz#051d76126bee5c9a6aa3ba37be2f6c1698856bcb" + integrity sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-react-jsx@^7.12.1", "@babel/plugin-transform-react-jsx@^7.12.13", "@babel/plugin-transform-react-jsx@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" + integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-jsx" "^7.12.13" + "@babel/types" "^7.12.17" + +"@babel/plugin-transform-react-pure-annotations@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz#05d46f0ab4d1339ac59adf20a1462c91b37a1a42" + integrity sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-regenerator@^7.12.1", "@babel/plugin-transform-regenerator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" + integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.12.1", "@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz#04b792057eb460389ff6a4198e377614ea1e7ba5" + integrity sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.12.1", "@babel/plugin-transform-spread@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.13.tgz#ca0d5645abbd560719c354451b849f14df4a7949" + integrity sha512-dUCrqPIowjqk5pXsx1zPftSq4sT0aCeZVAxhdgs3AMgyaDmoUT0G+5h3Dzja27t76aUEIJWlFgPJqJ/d4dbTtg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.1", "@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-template-literals@^7.12.1", "@babel/plugin-transform-template-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.13.tgz#655037b07ebbddaf3b7752f55d15c2fd6f5aa865" + integrity sha512-arIKlWYUgmNsF28EyfmiQHJLJFlAJNYkuQO10jL46ggjBpeb2re1P9K9YGxNJB45BqTbaslVysXDYm/g3sN/Qg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-typeof-symbol@^7.12.1", "@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-typescript@^7.12.1": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.17.tgz#4aa6a5041888dd2e5d316ec39212b0cf855211bb" + integrity sha512-1bIYwnhRoetxkFonuZRtDZPFEjl1l5r+3ITkxLC3mlMaFja+GQFo94b/WHEPjqWLU9Bc+W4oFZbvCGe9eYMu1g== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.12.17" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-syntax-typescript" "^7.12.13" + +"@babel/plugin-transform-unicode-escapes@^7.12.1", "@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.1", "@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/preset-env@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== + dependencies: + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.1" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.1" + core-js-compat "^3.6.2" + semver "^5.5.0" + +"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.8.4": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.17.tgz#94a3793ff089c32ee74d76a3c03a7597693ebaaa" + integrity sha512-9PMijx8zFbCwTHrd2P4PJR5nWGH3zWebx2OcpTjqQrHhCiL2ssSR2Sc9ko2BsI2VmVBfoaQmPrlMTCui4LmXQg== + dependencies: + "@babel/compat-data" "^7.12.13" + "@babel/helper-compilation-targets" "^7.12.17" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-proposal-async-generator-functions" "^7.12.13" + "@babel/plugin-proposal-class-properties" "^7.12.13" + "@babel/plugin-proposal-dynamic-import" "^7.12.17" + "@babel/plugin-proposal-export-namespace-from" "^7.12.13" + "@babel/plugin-proposal-json-strings" "^7.12.13" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.13" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.13" + "@babel/plugin-proposal-numeric-separator" "^7.12.13" + "@babel/plugin-proposal-object-rest-spread" "^7.12.13" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.13" + "@babel/plugin-proposal-optional-chaining" "^7.12.17" + "@babel/plugin-proposal-private-methods" "^7.12.13" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.12.13" + "@babel/plugin-transform-async-to-generator" "^7.12.13" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.12.13" + "@babel/plugin-transform-classes" "^7.12.13" + "@babel/plugin-transform-computed-properties" "^7.12.13" + "@babel/plugin-transform-destructuring" "^7.12.13" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.12.13" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.12.13" + "@babel/plugin-transform-modules-commonjs" "^7.12.13" + "@babel/plugin-transform-modules-systemjs" "^7.12.13" + "@babel/plugin-transform-modules-umd" "^7.12.13" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.12.13" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.12.13" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.12.13" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.12.13" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.12.17" + core-js-compat "^3.8.0" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.1.tgz#7f022b13f55b6dd82f00f16d1c599ae62985358c" + integrity sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-react-display-name" "^7.12.1" + "@babel/plugin-transform-react-jsx" "^7.12.1" + "@babel/plugin-transform-react-jsx-development" "^7.12.1" + "@babel/plugin-transform-react-jsx-self" "^7.12.1" + "@babel/plugin-transform-react-jsx-source" "^7.12.1" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-react@^7.12.5": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.12.13.tgz#5f911b2eb24277fa686820d5bd81cad9a0602a0a" + integrity sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/plugin-transform-react-display-name" "^7.12.13" + "@babel/plugin-transform-react-jsx" "^7.12.13" + "@babel/plugin-transform-react-jsx-development" "^7.12.12" + "@babel/plugin-transform-react-pure-annotations" "^7.12.1" + +"@babel/preset-typescript@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz#86480b483bb97f75036e8864fe404cc782cc311b" + integrity sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.1" + +"@babel/runtime-corejs3@^7.10.2": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.12.18.tgz#e5663237e5658e4c09586995d2dd6d2c8cfd6fc0" + integrity sha512-ngR7yhNTjDxxe1VYmhqQqqXZWujGb6g0IoA4qeG6MxNGRnIw2Zo8ImY8HfaQ7l3T6GklWhdNfyhWk0C0iocdVA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.1.tgz#b4116a6b6711d010b2dad3b7b6e43bf1b9954740" + integrity sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.12.18" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" + integrity sha512-BogPQ7ciE6SYAUPtlm9tWbgI9+2AgqSam6QivMgXgAT+fKbgppaj4ZX15MHeLC1PVF5sNk70huBu20XxWOs8Cg== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" + integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.3.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.13", "@babel/traverse@^7.12.17", "@babel/traverse@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.17.tgz#40ec8c7ffb502c4e54c7f95492dc11b88d718619" + integrity sha512-LGkTqDqdiwC6Q7fWSwQoas/oyiEYw6Hqjve5KOSykXkmFJFqzvGMb9niaUEag3Rlve492Mkye3gLw9FTv94fdQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.12.17" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.12.17" + "@babel/types" "^7.12.17" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.12.6", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.17.tgz#9d711eb807e0934c90b8b1ca0eb1f7230d150963" + integrity sha512-tNMDjcv/4DIcHxErTgwB9q2ZcYyN0sUfgGKUK/mm1FJK7Wz+KstoEekxrl/tBiNDgLK1HGi+sppj1An/1DR4fQ== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cnakazawa/watch@^1.0.3": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a" + integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ== + dependencies: + exec-sh "^0.3.2" + minimist "^1.2.0" + +"@csstools/convert-colors@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + +"@csstools/normalize.css@^10.1.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18" + integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg== + +"@discoveryjs/json-ext@^0.5.0": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" + integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== + +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + lodash "^4.17.20" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@fortawesome/fontawesome-free@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz#218cd7276ab4f9ab57cc3d2efa2697e6a579f25d" + integrity sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA== + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.1.0": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.6.2.tgz#4e04bc464014358b03ab4937805ee36a0aeb98f2" + integrity sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^26.6.2" + jest-util "^26.6.2" + slash "^3.0.0" + +"@jest/core@^26.6.0", "@jest/core@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.6.3.tgz#7639fcb3833d748a4656ada54bde193051e45fad" + integrity sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/reporters" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-changed-files "^26.6.2" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-resolve-dependencies "^26.6.3" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + jest-watcher "^26.6.2" + micromatch "^4.0.2" + p-each-series "^2.1.0" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^26.6.0", "@jest/environment@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.6.2.tgz#ba364cc72e221e79cc8f0a99555bf5d7577cf92c" + integrity sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA== + dependencies: + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + +"@jest/fake-timers@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.6.2.tgz#459c329bcf70cee4af4d7e3f3e67848123535aad" + integrity sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA== + dependencies: + "@jest/types" "^26.6.2" + "@sinonjs/fake-timers" "^6.0.1" + "@types/node" "*" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +"@jest/globals@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.6.2.tgz#5b613b78a1aa2655ae908eba638cc96a20df720a" + integrity sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/types" "^26.6.2" + expect "^26.6.2" + +"@jest/reporters@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.6.2.tgz#1f518b99637a5f18307bd3ecf9275f6882a667f6" + integrity sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.2" + graceful-fs "^4.2.4" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^4.0.3" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + jest-haste-map "^26.6.2" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + slash "^3.0.0" + source-map "^0.6.0" + string-length "^4.0.1" + terminal-link "^2.0.0" + v8-to-istanbul "^7.0.0" + optionalDependencies: + node-notifier "^8.0.0" + +"@jest/source-map@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.6.2.tgz#29af5e1e2e324cafccc936f218309f54ab69d535" + integrity sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.2.4" + source-map "^0.6.0" + +"@jest/test-result@^26.6.0", "@jest/test-result@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.6.2.tgz#55da58b62df134576cc95476efa5f7949e3f5f18" + integrity sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^26.6.3": + version "26.6.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz#98e8a45100863886d074205e8ffdc5a7eb582b17" + integrity sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw== + dependencies: + "@jest/test-result" "^26.6.2" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-runner "^26.6.3" + jest-runtime "^26.6.3" + +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" + pirates "^4.0.1" + slash "^3.0.0" + source-map "^0.6.1" + write-file-atomic "^3.0.0" + +"@jest/types@^26.6.0", "@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@pmmmwh/react-refresh-webpack-plugin@0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766" + integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ== + dependencies: + ansi-html "^0.0.7" + error-stack-parser "^2.0.6" + html-entities "^1.2.1" + native-url "^0.2.6" + schema-utils "^2.6.5" + source-map "^0.7.3" + +"@rollup/plugin-node-resolve@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" + integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== + dependencies: + "@rollup/pluginutils" "^3.0.8" + "@types/resolve" "0.0.8" + builtin-modules "^3.1.0" + is-module "^1.0.0" + resolve "^1.14.2" + +"@rollup/plugin-replace@^2.3.1": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz#c411b5ab72809fb1bfc8b487d8d02eef661460d3" + integrity sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@sinonjs/commons@^1.7.0": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.2.tgz#858f5c4b48d80778fde4b9d541f27edc0d56488b" + integrity sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@surma/rollup-plugin-off-main-thread@^1.1.1": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58" + integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A== + dependencies: + ejs "^2.6.1" + magic-string "^0.25.0" + +"@svgr/babel-plugin-add-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz#81ef61947bb268eb9d50523446f9c638fb355906" + integrity sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg== + +"@svgr/babel-plugin-remove-jsx-attribute@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz#6b2c770c95c874654fd5e1d5ef475b78a0a962ef" + integrity sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg== + +"@svgr/babel-plugin-remove-jsx-empty-expression@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz#25621a8915ed7ad70da6cea3d0a6dbc2ea933efd" + integrity sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA== + +"@svgr/babel-plugin-replace-jsx-attribute-value@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz#0b221fc57f9fcd10e91fe219e2cd0dd03145a897" + integrity sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ== + +"@svgr/babel-plugin-svg-dynamic-title@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz#139b546dd0c3186b6e5db4fefc26cb0baea729d7" + integrity sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg== + +"@svgr/babel-plugin-svg-em-dimensions@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz#6543f69526632a133ce5cabab965deeaea2234a0" + integrity sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw== + +"@svgr/babel-plugin-transform-react-native-svg@^5.4.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz#00bf9a7a73f1cad3948cdab1f8dfb774750f8c80" + integrity sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q== + +"@svgr/babel-plugin-transform-svg-component@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz#583a5e2a193e214da2f3afeb0b9e8d3250126b4a" + integrity sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ== + +"@svgr/babel-preset@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-5.5.0.tgz#8af54f3e0a8add7b1e2b0fcd5a882c55393df327" + integrity sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig== + dependencies: + "@svgr/babel-plugin-add-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-attribute" "^5.4.0" + "@svgr/babel-plugin-remove-jsx-empty-expression" "^5.0.1" + "@svgr/babel-plugin-replace-jsx-attribute-value" "^5.0.1" + "@svgr/babel-plugin-svg-dynamic-title" "^5.4.0" + "@svgr/babel-plugin-svg-em-dimensions" "^5.4.0" + "@svgr/babel-plugin-transform-react-native-svg" "^5.4.0" + "@svgr/babel-plugin-transform-svg-component" "^5.5.0" + +"@svgr/core@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-5.5.0.tgz#82e826b8715d71083120fe8f2492ec7d7874a579" + integrity sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ== + dependencies: + "@svgr/plugin-jsx" "^5.5.0" + camelcase "^6.2.0" + cosmiconfig "^7.0.0" + +"@svgr/hast-util-to-babel-ast@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz#5ee52a9c2533f73e63f8f22b779f93cd432a5461" + integrity sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ== + dependencies: + "@babel/types" "^7.12.6" + +"@svgr/plugin-jsx@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz#1aa8cd798a1db7173ac043466d7b52236b369000" + integrity sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA== + dependencies: + "@babel/core" "^7.12.3" + "@svgr/babel-preset" "^5.5.0" + "@svgr/hast-util-to-babel-ast" "^5.5.0" + svg-parser "^2.0.2" + +"@svgr/plugin-svgo@^5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz#02da55d85320549324e201c7b2e53bf431fcc246" + integrity sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ== + dependencies: + cosmiconfig "^7.0.0" + deepmerge "^4.2.2" + svgo "^1.2.2" + +"@svgr/webpack@5.5.0": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-5.5.0.tgz#aae858ee579f5fa8ce6c3166ef56c6a1b381b640" + integrity sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g== + dependencies: + "@babel/core" "^7.12.3" + "@babel/plugin-transform-react-constant-elements" "^7.12.1" + "@babel/preset-env" "^7.12.1" + "@babel/preset-react" "^7.12.5" + "@svgr/core" "^5.5.0" + "@svgr/plugin-jsx" "^5.5.0" + "@svgr/plugin-svgo" "^5.5.0" + loader-utils "^2.0.0" + +"@testing-library/dom@^7.28.1": + version "7.29.6" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-7.29.6.tgz#eb37844fb431186db7960a7ff6749ea65a19617c" + integrity sha512-vzTsAXa439ptdvav/4lsKRcGpAQX7b6wBIqia7+iNzqGJ5zjswApxA6jDAsexrc6ue9krWcbh8o+LYkBXW+GCQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^4.2.0" + aria-query "^4.2.2" + chalk "^4.1.0" + dom-accessibility-api "^0.5.4" + lz-string "^1.4.4" + pretty-format "^26.6.2" + +"@testing-library/jest-dom@^5.11.4": + version "5.11.9" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz#e6b3cd687021f89f261bd53cbe367041fbd3e975" + integrity sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ== + dependencies: + "@babel/runtime" "^7.9.2" + "@types/testing-library__jest-dom" "^5.9.1" + aria-query "^4.2.2" + chalk "^3.0.0" + css "^3.0.0" + css.escape "^1.5.1" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^11.1.0": + version "11.2.5" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-11.2.5.tgz#ae1c36a66c7790ddb6662c416c27863d87818eb9" + integrity sha512-yEx7oIa/UWLe2F2dqK0FtMF9sJWNXD+2PPtp39BvE0Kh9MJ9Kl0HrZAgEuhUJR+Lx8Di6Xz+rKwSdEPY2UV8ZQ== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^7.28.1" + +"@testing-library/user-event@^12.1.10": + version "12.8.1" + resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.8.1.tgz#aa897d6e7f0cf2208385abc2da2ac3f5844bbd00" + integrity sha512-u521YhkCKip0DQNDpfj9V97PU7UlCTkW5jURUD4JipuVe/xDJ32dJSIHlT2pqAs/I91OFB8p6LtqaLZpOu8BWQ== + dependencies: + "@babel/runtime" "^7.12.5" + +"@types/anymatch@*": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" + integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== + +"@types/aria-query@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.1.tgz#78b5433344e2f92e8b306c06a5622c50c245bf6b" + integrity sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg== + +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": + version "7.1.12" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.12.tgz#4d8e9e51eb265552a7e4f1ff2219ab6133bdfb2d" + integrity sha512-wMTHiiTiBAAPebqaPiPDLFA4LYPKr6Ph0Xq/6rq1Ur3v66HXyG+clfR9CNETkD7MQS8ZHvpQOtA53DLws5WAEQ== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.2" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.2.tgz#f3d71178e187858f7c45e30380f8f1b7415a12d8" + integrity sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.0.tgz#0c888dd70b3ee9eebb6e4f200e809da0076262be" + integrity sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.11.0.tgz#b9a1efa635201ba9bc850323a8793ee2d36c04a0" + integrity sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg== + dependencies: + "@babel/types" "^7.3.0" + +"@types/eslint@^7.2.6": + version "7.2.6" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" + integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*": + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.1": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/graceful-fs@^4.1.2": + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/html-minifier-terser@^5.0.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" + integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz#508b13aa344fa4976234e75dddcc34925737d821" + integrity sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@*", "@types/jest@^26.0.15": + version "26.0.20" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.20.tgz#cd2f2702ecf69e86b586e1f5223a60e454056307" + integrity sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "14.14.31" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" + integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== + +"@types/node@^12.0.0": + version "12.20.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.4.tgz#73687043dd00fcb6962c60fbf499553a24d6bdf2" + integrity sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ== + +"@types/normalize-package-data@^2.4.0": + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" + integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prettier@^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.1.tgz#374e31645d58cb18a07b3ecd8e9dede4deb2cccd" + integrity sha512-DxZZbyMAM9GWEzXL+BMZROWz9oo6A9EilwwOMET2UVu2uZTqMWS5S69KVtuVKaRjCUpcrOXRalet86/OpG4kqw== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/q@^1.5.1": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== + +"@types/react-dom@^17.0.0": + version "17.0.1" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.1.tgz#d92d77d020bfb083e07cc8e0ac9f933599a4d56a" + integrity sha512-yIVyopxQb8IDZ7SOHeTovurFq+fXiPICa+GV3gp0Xedsl+MwQlMLKmvrnEjFbQxjliH5YVAEWFh975eVNmKj7Q== + dependencies: + "@types/react" "*" + +"@types/react@*", "@types/react@^17.0.0": + version "17.0.2" + resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" + integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== + dependencies: + "@types/prop-types" "*" + csstype "^3.0.2" + +"@types/resolve@0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" + integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== + dependencies: + "@types/node" "*" + +"@types/source-list-map@*": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" + integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== + +"@types/stack-utils@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.0.tgz#7036640b4e21cc2f259ae826ce843d277dad8cff" + integrity sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw== + +"@types/tapable@*", "@types/tapable@^1.0.5": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" + integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== + +"@types/testing-library__jest-dom@^5.9.1": + version "5.9.5" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz#5bf25c91ad2d7b38f264b12275e5c92a66d849b0" + integrity sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ== + dependencies: + "@types/jest" "*" + +"@types/uglify-js@*": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.12.0.tgz#2bb061c269441620d46b946350c8f16d52ef37c5" + integrity sha512-sYAF+CF9XZ5cvEBkI7RtrG9g2GtMBkviTnBxYYyq+8BWvO4QtXfwwR6a2LFwCi4evMKZfpv6U43ViYvv17Wz3Q== + dependencies: + source-map "^0.6.1" + +"@types/webpack-sources@*": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" + integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== + dependencies: + "@types/node" "*" + "@types/source-list-map" "*" + source-map "^0.7.3" + +"@types/webpack@^4.41.8": + version "4.41.26" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" + integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== + dependencies: + "@types/anymatch" "*" + "@types/node" "*" + "@types/tapable" "*" + "@types/uglify-js" "*" + "@types/webpack-sources" "*" + source-map "^0.6.0" + +"@types/yargs-parser@*": + version "20.2.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" + integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== + +"@types/yargs@^15.0.0": + version "15.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" + integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^4.5.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.2.tgz#981b26b4076c62a5a55873fbef3fe98f83360c61" + integrity sha512-uiQQeu9tWl3f1+oK0yoAv9lt/KXO24iafxgQTkIYO/kitruILGx3uH+QtIAHqxFV+yIsdnJH+alel9KuE3J15Q== + dependencies: + "@typescript-eslint/experimental-utils" "4.15.2" + "@typescript-eslint/scope-manager" "4.15.2" + debug "^4.1.1" + functional-red-black-tree "^1.0.1" + lodash "^4.17.15" + regexpp "^3.0.0" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@4.15.2", "@typescript-eslint/experimental-utils@^4.0.1": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.2.tgz#5efd12355bd5b535e1831282e6cf465b9a71cf36" + integrity sha512-Fxoshw8+R5X3/Vmqwsjc8nRO/7iTysRtDqx6rlfLZ7HbT8TZhPeQqbPjTyk2RheH3L8afumecTQnUc9EeXxohQ== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/experimental-utils@^3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz#e179ffc81a80ebcae2ea04e0332f8b251345a686" + integrity sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/typescript-estree" "3.10.1" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^4.5.0": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.15.2.tgz#c804474321ef76a3955aec03664808f0d6e7872e" + integrity sha512-SHeF8xbsC6z2FKXsaTb1tBCf0QZsjJ94H6Bo51Y1aVEZ4XAefaw5ZAilMoDPlGghe+qtq7XdTiDlGfVTOmvA+Q== + dependencies: + "@typescript-eslint/scope-manager" "4.15.2" + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/typescript-estree" "4.15.2" + debug "^4.1.1" + +"@typescript-eslint/scope-manager@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.15.2.tgz#5725bda656995960ae1d004bfd1cd70320f37f4f" + integrity sha512-Zm0tf/MSKuX6aeJmuXexgdVyxT9/oJJhaCkijv0DvJVT3ui4zY6XYd6iwIo/8GEZGy43cd7w1rFMiCLHbRzAPQ== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + +"@typescript-eslint/types@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.10.1.tgz#1d7463fa7c32d8a23ab508a803ca2fe26e758727" + integrity sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ== + +"@typescript-eslint/types@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.15.2.tgz#04acf3a2dc8001a88985291744241e732ef22c60" + integrity sha512-r7lW7HFkAarfUylJ2tKndyO9njwSyoy6cpfDKWPX6/ctZA+QyaYscAHXVAfJqtnY6aaTwDYrOhp+ginlbc7HfQ== + +"@typescript-eslint/typescript-estree@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz#fd0061cc38add4fad45136d654408569f365b853" + integrity sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w== + dependencies: + "@typescript-eslint/types" "3.10.1" + "@typescript-eslint/visitor-keys" "3.10.1" + debug "^4.1.1" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/typescript-estree@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.2.tgz#c2f7a1e94f3428d229d5ecff3ead6581ee9b62fa" + integrity sha512-cGR8C2g5SPtHTQvAymEODeqx90pJHadWsgTtx6GbnTWKqsg7yp6Eaya9nFzUd4KrKhxdYTTFBiYeTPQaz/l8bw== + dependencies: + "@typescript-eslint/types" "4.15.2" + "@typescript-eslint/visitor-keys" "4.15.2" + debug "^4.1.1" + globby "^11.0.1" + is-glob "^4.0.1" + semver "^7.3.2" + tsutils "^3.17.1" + +"@typescript-eslint/visitor-keys@3.10.1": + version "3.10.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz#cd4274773e3eb63b2e870ac602274487ecd1e931" + integrity sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ== + dependencies: + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/visitor-keys@4.15.2": + version "4.15.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.2.tgz#3d1c7979ce75bf6acf9691109bd0d6b5706192b9" + integrity sha512-TME1VgSb7wTwgENN5KVj4Nqg25hP8DisXxNBojM4Nn31rYaNDIocNm5cmjOFfh42n7NVERxWrDFoETO/76ePyg== + dependencies: + "@typescript-eslint/types" "4.15.2" + eslint-visitor-keys "^2.0.0" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webpack-cli/configtest@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" + integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== + +"@webpack-cli/info@^1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" + integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== + dependencies: + envinfo "^7.7.3" + +"@webpack-cli/serve@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" + integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abab@^2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-jsx@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^6.4.1: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +adjust-sourcemap-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz#5ae12fb5b7b1c585e80bbb5a63ec163a1a45e61e" + integrity sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw== + dependencies: + loader-utils "^2.0.0" + regex-parser "^2.2.11" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^7.0.2: + version "7.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-7.1.1.tgz#1e6b37a454021fa9941713f38b952fc1c8d32a84" + integrity sha512-ga/aqDYnUy/o7vbsRTFhhTsNeXiYb5JWDIcRIeZfwRNCefwjNTVYCGdGSUrEmiu3yDK3vFvNbgJxvrQW4JXrYQ== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^4.2.1, ansi-escapes@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7, ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@^3.0.3, anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b" + integrity sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA== + dependencies: + "@babel/runtime" "^7.10.2" + "@babel/runtime-corejs3" "^7.10.2" + +arity-n@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/arity-n/-/arity-n-1.0.4.tgz#d9e76b11733e08569c0847ae7b39b2860b30b745" + integrity sha1-2edrEXM+CFacCEeuezmyhgswt0U= + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.1.1, array-includes@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" + is-string "^1.0.5" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +array.prototype.flatmap@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz#94cfd47cc1556ec0747d97f7c7738c58122004c9" + integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + function-bind "^1.1.1" + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +autoprefixer@^9.6.1: + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + dependencies: + browserslist "^4.12.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +axe-core@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.1.2.tgz#7cf783331320098bfbef620df3b3c770147bc224" + integrity sha512-V+Nq70NxKhYt89ArVcaNL9FDryB3vQOd+BFXZIfO3RP6rwtj+2yqqqdHEkacutglPaZLkJeuXKCjCJDMGPtPqg== + +axobject-query@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" + integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-extract-comments@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21" + integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ== + dependencies: + babylon "^6.18.0" + +babel-jest@^26.6.0, babel-jest@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== + dependencies: + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/babel__core" "^7.1.7" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-loader@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" + integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^4.0.0" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-macros@2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-named-asset-import@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz#156cd55d3f1228a5765774340937afc8398067dd" + integrity sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw== + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U= + +babel-plugin-transform-object-rest-spread@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY= + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-react-remove-prop-types@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== + dependencies: + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" + +babel-preset-react-app@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-react-app/-/babel-preset-react-app-10.0.0.tgz#689b60edc705f8a70ce87f47ab0e560a317d7045" + integrity sha512-itL2z8v16khpuKutx5IH8UdCdSTuzrOhRFTEdIhveZ2i1iBKDrVE0ATa4sFVy+02GLucZNVBWtoarXBy0Msdpg== + dependencies: + "@babel/core" "7.12.3" + "@babel/plugin-proposal-class-properties" "7.12.1" + "@babel/plugin-proposal-decorators" "7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "7.12.1" + "@babel/plugin-proposal-numeric-separator" "7.12.1" + "@babel/plugin-proposal-optional-chaining" "7.12.1" + "@babel/plugin-transform-flow-strip-types" "7.12.1" + "@babel/plugin-transform-react-display-name" "7.12.1" + "@babel/plugin-transform-runtime" "7.12.1" + "@babel/preset-env" "7.12.1" + "@babel/preset-react" "7.12.1" + "@babel/preset-typescript" "7.12.1" + "@babel/runtime" "7.12.1" + babel-plugin-macros "2.8.0" + babel-plugin-transform-react-remove-prop-types "0.4.24" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-js@^1.0.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +bfj@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/bfj/-/bfj-7.0.2.tgz#1988ce76f3add9ac2913fd8ba47aad9e651bfbb2" + integrity sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw== + dependencies: + bluebird "^3.5.5" + check-types "^11.1.1" + hoopy "^0.1.4" + tryer "^1.0.1" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bluebird@^3.5.5: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1, brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz#1b3cec458a1ba87588cc5e9be62f19b6d48813ce" + integrity sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw== + dependencies: + caniuse-lite "^1.0.30001125" + electron-to-chromium "^1.3.564" + escalade "^3.0.2" + node-releases "^1.1.61" + +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.3, browserslist@^4.6.2, browserslist@^4.6.4: + version "4.16.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" + integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== + dependencies: + caniuse-lite "^1.0.30001181" + colorette "^1.2.1" + electron-to-chromium "^1.3.649" + escalade "^3.1.1" + node-releases "^1.1.70" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" + integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camel-case@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@5.3.1, camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.1.0, camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001181: + version "1.0.30001191" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz#bacb432b6701f690c8c5f7c680166b9a9f0843d9" + integrity sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw== + +capture-exit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" + integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g== + dependencies: + rsvp "^4.8.4" + +case-sensitive-paths-webpack-plugin@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.0.0, chalk@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +check-types@^11.1.1: + version "11.1.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" + integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== + +"chokidar@>=2.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cjs-module-lexer@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz#4186fcca0eae175970aee870b9fe2d6cf8d5655f" + integrity sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw== + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-css@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78" + integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA== + dependencies: + source-map "~0.6.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" + integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.4" + +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +compose-function@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compose-function/-/compose-function-3.0.3.tgz#9ed675f13cc54501d30950a486ff6a7ba3ab185f" + integrity sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8= + dependencies: + arity-n "^1.0.4" + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@1.7.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + integrity sha1-8dgClQr33SYxof6+BZZVDIarMZA= + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copy-webpack-plugin@^6.3.2: + version "6.4.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz#138cd9b436dbca0a6d071720d5414848992ec47e" + integrity sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA== + dependencies: + cacache "^15.0.5" + fast-glob "^3.2.4" + find-cache-dir "^3.3.1" + glob-parent "^5.1.1" + globby "^11.0.1" + loader-utils "^2.0.0" + normalize-path "^3.0.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + webpack-sources "^1.4.3" + +core-js-compat@^3.6.2, core-js-compat@^3.8.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.0.tgz#29da39385f16b71e1915565aa0385c4e0963ad56" + integrity sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ== + dependencies: + browserslist "^4.16.3" + semver "7.0.0" + +core-js-pure@^3.0.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.9.0.tgz#326cc74e1fef8b7443a6a793ddb0adfcd81f9efb" + integrity sha512-3pEcmMZC9Cq0D4ZBh3pe2HLtqxpGNJBLXF/kZ2YzK17RbKp94w0HFbdbSx8H8kAlZG5k76hvLrkPm57Uyef+kg== + +core-js@^2.4.0: + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== + +core-js@^3.6.5: + version "3.9.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz#790b1bb11553a2272b36e2625c7179db345492f8" + integrity sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ== + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@7.0.3, cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cross-spawn@^6.0.0: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +css-blank-pseudo@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + dependencies: + postcss "^7.0.5" + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-has-pseudo@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^5.0.0-rc.4" + +css-loader@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e" + integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg== + dependencies: + camelcase "^6.0.0" + cssesc "^3.0.0" + icss-utils "^4.1.1" + loader-utils "^2.0.0" + postcss "^7.0.32" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^3.0.3" + postcss-modules-scope "^2.2.0" + postcss-modules-values "^3.0.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.1" + semver "^7.3.2" + +css-prefers-color-scheme@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + dependencies: + postcss "^7.0.5" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^2.0.0, css-select@^2.0.2: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" + integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^3.2.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== + +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s= + +css@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929" + integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw== + dependencies: + inherits "^2.0.3" + source-map "^0.6.1" + source-map-resolve "^0.5.2" + urix "^0.1.0" + +css@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d" + integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ== + dependencies: + inherits "^2.0.4" + source-map "^0.6.1" + source-map-resolve "^0.6.0" + +cssdb@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + +cssesc@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +cssom@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" + integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +csstype@^3.0.2: + version "3.0.7" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.7.tgz#2a5fb75e1015e84dd15692f71e89a1450290950b" + integrity sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g== + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +damerau-levenshtein@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +data-urls@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" + integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decimal.js@^10.2.0: + version "10.2.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.1.tgz#238ae7b0f0c793d3e3cea410108b35a2c01426a3" + integrity sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw== + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-equal@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-is@^0.1.3, deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-accessibility-api@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz#b06d059cdd4a4ad9a79275f9d414a5c126241166" + integrity sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ== + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + +domexception@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" + integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== + dependencies: + webidl-conversions "^5.0.0" + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dot-prop@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" + integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== + +dotenv@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +ejs@^2.6.1: + version "2.7.4" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba" + integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA== + +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.649: + version "1.3.671" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.671.tgz#8feaed6eae42d279fa4611f58c42a5a1eb81b2a0" + integrity sha512-RTD97QkdrJKaKwRv9h/wGAaoR2lGxNXEcBXS31vjitgTPwTWAbLdS7cEsBK68eEQy7p6YyT8D5BxBEYHu2SuwQ== + +elliptic@^6.5.3: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emittery@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" + integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.1" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.1.tgz#c9b25604256bb3428964bead3ab63069d736f7ee" + integrity sha512-117l1H6U4X3Krn+MrzYrL57d5H7siRHWraBs7s+LjRuFK7Fe7hJqnJ0skWlinqsycVLU5YAo6L8CsEYQ0V5prg== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enhanced-resolve@^4.0.0, enhanced-resolve@^4.3.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +enquirer@^2.3.5, enquirer@^2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +envinfo@^7.7.3: + version "7.7.4" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" + integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" + integrity sha1-4Oc7k+QXE40c18C3RrGkoUhUwpI= + dependencies: + stackframe "^0.3.1" + +error-stack-parser@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.2: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2: + version "1.18.0-next.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" + integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.1" + is-regex "^1.1.1" + object-inspect "^1.9.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.3" + string.prototype.trimstart "^1.0.3" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escalade@^3.0.2, escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@2.0.0, escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +escodegen@^1.14.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +eslint-config-react-app@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" + integrity sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A== + dependencies: + confusing-browser-globals "^1.0.10" + +eslint-import-resolver-node@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" + integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-module-utils@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-flowtype@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.2.2.tgz#c6e5dd2fad4e757a1c63e652da6cff597659554f" + integrity sha512-C4PlPYpszr9h1cBfUbTNRI1IdxUCF0qrXAHkXS2+bESp7WUUCnvb3UBBnYlaQLvJYJ2lRz+2SPQQ/WyV7p/Tow== + dependencies: + lodash "^4.17.15" + string-natural-compare "^3.0.1" + +eslint-plugin-import@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" + integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== + dependencies: + array-includes "^3.1.1" + array.prototype.flat "^1.2.3" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.4" + eslint-module-utils "^2.6.0" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.1" + read-pkg-up "^2.0.0" + resolve "^1.17.0" + tsconfig-paths "^3.9.0" + +eslint-plugin-jest@^24.1.0: + version "24.1.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.1.5.tgz#1e866a9f0deac587d0a3d5d7cefe99815a580de2" + integrity sha512-FIP3lwC8EzEG+rOs1y96cOJmMVpdFNreoDJv29B5vIupVssRi8zrSY3QadogT0K3h1Y8TMxJ6ZSAzYUmFCp2hg== + dependencies: + "@typescript-eslint/experimental-utils" "^4.0.1" + +eslint-plugin-jsx-a11y@^6.3.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz#a2d84caa49756942f42f1ffab9002436391718fd" + integrity sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg== + dependencies: + "@babel/runtime" "^7.11.2" + aria-query "^4.2.2" + array-includes "^3.1.1" + ast-types-flow "^0.0.7" + axe-core "^4.0.2" + axobject-query "^2.2.0" + damerau-levenshtein "^1.0.6" + emoji-regex "^9.0.0" + has "^1.0.3" + jsx-ast-utils "^3.1.0" + language-tags "^1.0.5" + +eslint-plugin-react-hooks@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" + integrity sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ== + +eslint-plugin-react@^7.21.5: + version "7.22.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz#3d1c542d1d3169c45421c1215d9470e341707269" + integrity sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA== + dependencies: + array-includes "^3.1.1" + array.prototype.flatmap "^1.2.3" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.4.1 || ^3.0.0" + object.entries "^1.1.2" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.18.1" + string.prototype.matchall "^4.0.2" + +eslint-plugin-testing-library@^3.9.2: + version "3.10.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.1.tgz#4dd02306d601c3238fdabf1d1dbc5f2a8e85d531" + integrity sha512-nQIFe2muIFv2oR2zIuXE4vTbcFNx8hZKRzgHZqJg8rfopIWwoTwtlbCCNELT/jXzVe1uZF68ALGYoDXjLczKiQ== + dependencies: + "@typescript-eslint/experimental-utils" "^3.10.1" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.0.0, eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" + integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== + +eslint-webpack-plugin@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.2.tgz#4ee17577d6392bf72048080a1678d6237183db81" + integrity sha512-ndD9chZ/kaGnjjx7taRg7c6FK/YKb29SSYzaLtPBIYLYJQmZtuKqtQbAvTS2ymiMQT6X0VW9vZIHK0KLstv93Q== + dependencies: + "@types/eslint" "^7.2.6" + arrify "^2.0.1" + jest-worker "^26.6.2" + micromatch "^4.0.2" + schema-utils "^3.0.0" + +eslint@^7.11.0: + version "7.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.20.0.tgz#db07c4ca4eda2e2316e7aa57ac7fc91ec550bdc7" + integrity sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.3.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + file-entry-cache "^6.0.0" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash "^4.17.20" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0, esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1, estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +events@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" + integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +exec-sh@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" + integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expect@^26.6.0, expect@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-26.6.2.tgz#c6b996bf26bf3fe18b67b2d0f51fc981ba934417" + integrity sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA== + dependencies: + "@jest/types" "^26.6.2" + ansi-styles "^4.0.0" + jest-get-type "^26.3.0" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-regex-util "^26.0.0" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.1.1, fast-glob@^3.2.4: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastest-levenshtein@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" + integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== + +fastq@^1.6.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" + integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +file-entry-cache@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +file-loader@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.1.1.tgz#a6f29dfb3f5933a1c350b2dbaa20ac5be0539baa" + integrity sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.1.0.tgz#e81bdaa780e2451d714d71c0d7a4f3238d37ad00" + integrity sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@4.1.0, find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== + +flatten@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@^1.0.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" + integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +fork-ts-checker-webpack-plugin@4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz#5055c703febcf37fa06405d400c122b905167fc5" + integrity sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw== + dependencies: + "@babel/code-frame" "^7.5.5" + chalk "^2.4.1" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-extra@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^9.0.1: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.13" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@^2.1.2, fsevents@^2.1.3, fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-own-enumerable-property-symbols@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" + integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g== + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@^5.1.1, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@11.0.1: + version "11.0.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz#9a2bf107a068f3ffeabc49ad702c79ede8cfd357" + integrity sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^11.0.1: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== + +growly@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +harmony-reflect@^1.4.6: + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoopy@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" + integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ== + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-encoding-sniffer@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" + integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== + dependencies: + whatwg-encoding "^1.0.5" + +html-entities@^1.2.1, html-entities@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +html-minifier-terser@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" + integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== + dependencies: + camel-case "^4.1.1" + clean-css "^4.2.3" + commander "^4.1.1" + he "^1.2.0" + param-case "^3.0.3" + relateurl "^0.2.7" + terser "^4.6.3" + +html-webpack-plugin@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c" + integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw== + dependencies: + "@types/html-minifier-terser" "^5.0.0" + "@types/tapable" "^1.0.5" + "@types/webpack" "^4.41.8" + html-minifier-terser "^5.0.1" + loader-utils "^1.2.3" + lodash "^4.17.15" + pretty-error "^2.1.1" + tapable "^1.1.3" + util.promisify "1.0.0" + +htmlparser2@^3.10.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-parser-js@>=0.5.1: + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.1" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-utils@^4.0.0, icss-utils@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + dependencies: + postcss "^7.0.14" + +identity-obj-proxy@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= + dependencies: + harmony-reflect "^1.4.6" + +ieee754@^1.1.4: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + +immer@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/immer/-/immer-8.0.1.tgz#9c73db683e2b3975c424fb0572af5889877ae656" + integrity sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +import-local@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6" + integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +infer-owner@^1.0.3, infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" + integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-arguments@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-core-module@^2.0.0, is-core-module@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" + integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= + +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-cwd@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-potential-custom-element-name@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" + integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= + +is-regex@^1.0.4, is-regex@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" + integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== + dependencies: + call-bind "^1.0.2" + has-symbols "^1.0.1" + +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1, is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +istanbul-lib-coverage@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" + integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== + dependencies: + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9" + integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b" + integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.6.2.tgz#f6198479e1cc66f22f9ae1e22acaa0b429c042d0" + integrity sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ== + dependencies: + "@jest/types" "^26.6.2" + execa "^4.0.0" + throat "^5.0.0" + +jest-circus@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-26.6.0.tgz#7d9647b2e7f921181869faae1f90a2629fd70705" + integrity sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.0" + "@jest/test-result" "^26.6.0" + "@jest/types" "^26.6.0" + "@types/babel__traverse" "^7.0.4" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^26.6.0" + is-generator-fn "^2.0.0" + jest-each "^26.6.0" + jest-matcher-utils "^26.6.0" + jest-message-util "^26.6.0" + jest-runner "^26.6.0" + jest-runtime "^26.6.0" + jest-snapshot "^26.6.0" + jest-util "^26.6.0" + pretty-format "^26.6.0" + stack-utils "^2.0.2" + throat "^5.0.0" + +jest-cli@^26.6.0: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.6.3.tgz#43117cfef24bc4cd691a174a8796a532e135e92a" + integrity sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg== + dependencies: + "@jest/core" "^26.6.3" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.4" + import-local "^3.0.2" + is-ci "^2.0.0" + jest-config "^26.6.3" + jest-util "^26.6.2" + jest-validate "^26.6.2" + prompts "^2.0.1" + yargs "^15.4.1" + +jest-config@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.6.3.tgz#64f41444eef9eb03dc51d5c53b75c8c71f645349" + integrity sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg== + dependencies: + "@babel/core" "^7.1.0" + "@jest/test-sequencer" "^26.6.3" + "@jest/types" "^26.6.2" + babel-jest "^26.6.3" + chalk "^4.0.0" + deepmerge "^4.2.2" + glob "^7.1.1" + graceful-fs "^4.2.4" + jest-environment-jsdom "^26.6.2" + jest-environment-node "^26.6.2" + jest-get-type "^26.3.0" + jest-jasmine2 "^26.6.3" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + micromatch "^4.0.2" + pretty-format "^26.6.2" + +jest-diff@^26.0.0, jest-diff@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-docblock@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" + integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== + dependencies: + detect-newline "^3.0.0" + +jest-each@^26.6.0, jest-each@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.6.2.tgz#02526438a77a67401c8a6382dfe5999952c167cb" + integrity sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + jest-get-type "^26.3.0" + jest-util "^26.6.2" + pretty-format "^26.6.2" + +jest-environment-jsdom@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz#78d09fe9cf019a357009b9b7e1f101d23bd1da3e" + integrity sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + jsdom "^16.4.0" + +jest-environment-node@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.6.2.tgz#824e4c7fb4944646356f11ac75b229b0035f2b0c" + integrity sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag== + dependencies: + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + jest-mock "^26.6.2" + jest-util "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== + dependencies: + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^2.1.2" + +jest-jasmine2@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz#adc3cf915deacb5212c93b9f3547cd12958f2edd" + integrity sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg== + dependencies: + "@babel/traverse" "^7.1.0" + "@jest/environment" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + expect "^26.6.2" + is-generator-fn "^2.0.0" + jest-each "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-runtime "^26.6.3" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + pretty-format "^26.6.2" + throat "^5.0.0" + +jest-leak-detector@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz#7717cf118b92238f2eba65054c8a0c9c653a91af" + integrity sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg== + dependencies: + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-matcher-utils@^26.6.0, jest-matcher-utils@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz#8e6fd6e863c8b2d31ac6472eeb237bc595e53e7a" + integrity sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw== + dependencies: + chalk "^4.0.0" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-message-util@^26.6.0, jest-message-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.6.2.tgz#58173744ad6fc0506b5d21150b9be56ef001ca07" + integrity sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + micromatch "^4.0.2" + pretty-format "^26.6.2" + slash "^3.0.0" + stack-utils "^2.0.2" + +jest-mock@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.6.2.tgz#d6cb712b041ed47fe0d9b6fc3474bc6543feb302" + integrity sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^26.0.0: + version "26.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" + integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== + +jest-resolve-dependencies@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz#6680859ee5d22ee5dcd961fe4871f59f4c784fb6" + integrity sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg== + dependencies: + "@jest/types" "^26.6.2" + jest-regex-util "^26.0.0" + jest-snapshot "^26.6.2" + +jest-resolve@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.0.tgz#070fe7159af87b03e50f52ea5e17ee95bbee40e1" + integrity sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ== + dependencies: + "@jest/types" "^26.6.0" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.0" + read-pkg-up "^7.0.1" + resolve "^1.17.0" + slash "^3.0.0" + +jest-resolve@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.6.2.tgz#a3ab1517217f469b504f1b56603c5bb541fbb507" + integrity sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ== + dependencies: + "@jest/types" "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + jest-pnp-resolver "^1.2.2" + jest-util "^26.6.2" + read-pkg-up "^7.0.1" + resolve "^1.18.1" + slash "^3.0.0" + +jest-runner@^26.6.0, jest-runner@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.6.3.tgz#2d1fed3d46e10f233fd1dbd3bfaa3fe8924be159" + integrity sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.7.1" + exit "^0.1.2" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-docblock "^26.0.0" + jest-haste-map "^26.6.2" + jest-leak-detector "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + jest-runtime "^26.6.3" + jest-util "^26.6.2" + jest-worker "^26.6.2" + source-map-support "^0.5.6" + throat "^5.0.0" + +jest-runtime@^26.6.0, jest-runtime@^26.6.3: + version "26.6.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.6.3.tgz#4f64efbcfac398331b74b4b3c82d27d401b8fa2b" + integrity sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw== + dependencies: + "@jest/console" "^26.6.2" + "@jest/environment" "^26.6.2" + "@jest/fake-timers" "^26.6.2" + "@jest/globals" "^26.6.2" + "@jest/source-map" "^26.6.2" + "@jest/test-result" "^26.6.2" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + cjs-module-lexer "^0.6.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.4" + jest-config "^26.6.3" + jest-haste-map "^26.6.2" + jest-message-util "^26.6.2" + jest-mock "^26.6.2" + jest-regex-util "^26.0.0" + jest-resolve "^26.6.2" + jest-snapshot "^26.6.2" + jest-util "^26.6.2" + jest-validate "^26.6.2" + slash "^3.0.0" + strip-bom "^4.0.0" + yargs "^15.4.1" + +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== + dependencies: + "@types/node" "*" + graceful-fs "^4.2.4" + +jest-snapshot@^26.6.0, jest-snapshot@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.6.2.tgz#f3b0af1acb223316850bd14e1beea9837fb39c84" + integrity sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og== + dependencies: + "@babel/types" "^7.0.0" + "@jest/types" "^26.6.2" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.0.0" + chalk "^4.0.0" + expect "^26.6.2" + graceful-fs "^4.2.4" + jest-diff "^26.6.2" + jest-get-type "^26.3.0" + jest-haste-map "^26.6.2" + jest-matcher-utils "^26.6.2" + jest-message-util "^26.6.2" + jest-resolve "^26.6.2" + natural-compare "^1.4.0" + pretty-format "^26.6.2" + semver "^7.3.2" + +jest-util@^26.6.0, jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== + dependencies: + "@jest/types" "^26.6.2" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^2.0.0" + micromatch "^4.0.2" + +jest-validate@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" + integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== + dependencies: + "@jest/types" "^26.6.2" + camelcase "^6.0.0" + chalk "^4.0.0" + jest-get-type "^26.3.0" + leven "^3.1.0" + pretty-format "^26.6.2" + +jest-watch-typeahead@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63" + integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg== + dependencies: + ansi-escapes "^4.3.1" + chalk "^4.0.0" + jest-regex-util "^26.0.0" + jest-watcher "^26.3.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + +jest-watcher@^26.3.0, jest-watcher@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.6.2.tgz#a5b683b8f9d68dbcb1d7dae32172d2cca0592975" + integrity sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ== + dependencies: + "@jest/test-result" "^26.6.2" + "@jest/types" "^26.6.2" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + jest-util "^26.6.2" + string-length "^4.0.1" + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest-worker@^26.5.0, jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +jest@26.6.0: + version "26.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-26.6.0.tgz#546b25a1d8c888569dbbe93cae131748086a4a25" + integrity sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA== + dependencies: + "@jest/core" "^26.6.0" + import-local "^3.0.2" + jest-cli "^26.6.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +jsdom@^16.4.0: + version "16.4.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.4.0.tgz#36005bde2d136f73eee1a830c6d45e55408edddb" + integrity sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w== + dependencies: + abab "^2.0.3" + acorn "^7.1.1" + acorn-globals "^6.0.0" + cssom "^0.4.4" + cssstyle "^2.2.0" + data-urls "^2.0.0" + decimal.js "^10.2.0" + domexception "^2.0.1" + escodegen "^1.14.1" + html-encoding-sniffer "^2.0.1" + is-potential-custom-element-name "^1.0.0" + nwsapi "^2.2.0" + parse5 "5.1.1" + request "^2.88.2" + request-promise-native "^1.0.8" + saxes "^5.0.0" + symbol-tree "^3.2.4" + tough-cookie "^3.0.1" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^2.0.0" + webidl-conversions "^6.1.0" + whatwg-encoding "^1.0.5" + whatwg-mimetype "^2.3.0" + whatwg-url "^8.0.0" + ws "^7.2.3" + xml-name-validator "^3.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz#41108d2cec408c3453c1bbe8a4aae9e1e2bd8f82" + integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== + dependencies: + array-includes "^3.1.2" + object.assign "^4.1.2" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== + +language-subtag-registry@~0.3.2: + version "0.3.21" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" + integrity sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg== + +language-tags@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a" + integrity sha1-0yHbxNowuovzAk4ED6XBRmH5GTo= + dependencies: + language-subtag-registry "~0.3.2" + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@2.0.0, loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= + +lodash.template@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +"lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.5, lodash@^4.6.1: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loglevel@^1.6.8: + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== + +loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lz-string@^1.4.4: + version "1.4.4" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26" + integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY= + +magic-string@^0.25.0, magic-string@^0.25.7: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +makeerror@1.0.x: + version "1.0.11" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= + dependencies: + tmpl "1.0.x" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.0, micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.46.0, "mime-db@>= 1.43.0 < 2": + version "1.46.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" + integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== + +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.29" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" + integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== + dependencies: + mime-db "1.46.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.4.4: + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +mini-css-extract-plugin@0.11.3: + version "0.11.3" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" + integrity sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== + +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +native-url@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae" + integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA== + dependencies: + querystring "^0.2.0" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + +node-notifier@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-8.0.1.tgz#f86e89bbc925f2b068784b31f382afdc6ca56be1" + integrity sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA== + dependencies: + growly "^1.3.0" + is-wsl "^2.2.0" + semver "^7.3.2" + shellwords "^0.1.1" + uuid "^8.3.0" + which "^2.0.2" + +node-releases@^1.1.61, node-releases@^1.1.70: + version "1.1.70" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" + integrity sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw== + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +nth-check@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-inspect@^1.8.0, object-inspect@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" + integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +object.entries@^1.1.0, object.entries@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.3.tgz#c601c7f168b62374541a07ddbd3e2d5e4f7711a6" + integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +object.fromentries@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8" + integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has "^1.0.3" + +object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.2.tgz#7a2015e06fcb0f546bd652486ce8583a4731c731" + integrity sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.0.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz#85883c6528aaa02e30bbad9908c92926bb52dc90" + integrity sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +p-each-series@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +param-case@^3.0.3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pirates@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== + dependencies: + node-modules-regexp "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-3.1.0.tgz#100ec235cc150e4fd42519412596a28512a0def5" + integrity sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA== + dependencies: + find-up "^3.0.0" + +pnp-webpack-plugin@1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.26: + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.5" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-attribute-case-insensitive@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^6.0.2" + +postcss-browser-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz#1248d2d935fb72053c8e1f61a84a57292d9f65e9" + integrity sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig== + dependencies: + postcss "^7" + +postcss-calc@^7.0.1: + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-color-functional-notation@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-gray@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-color-hex-alpha@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + dependencies: + postcss "^7.0.14" + postcss-values-parser "^2.0.1" + +postcss-color-mod-function@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-color-rebeccapurple@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-custom-media@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + dependencies: + postcss "^7.0.14" + +postcss-custom-properties@^8.0.11: + version "8.0.11" + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + dependencies: + postcss "^7.0.17" + postcss-values-parser "^2.0.1" + +postcss-custom-selectors@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-dir-pseudo-class@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-double-position-gradients@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + dependencies: + postcss "^7.0.5" + postcss-values-parser "^2.0.0" + +postcss-env-function@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-flexbugs-fixes@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== + dependencies: + postcss "^7.0.26" + +postcss-focus-visible@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + dependencies: + postcss "^7.0.2" + +postcss-focus-within@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + dependencies: + postcss "^7.0.2" + +postcss-font-variant@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" + integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== + dependencies: + postcss "^7.0.2" + +postcss-gap-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + dependencies: + postcss "^7.0.2" + +postcss-image-set-function@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-initial@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA== + dependencies: + lodash.template "^4.5.0" + postcss "^7.0.2" + +postcss-lab-function@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + dependencies: + "@csstools/convert-colors" "^1.4.0" + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-load-config@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-logical@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + dependencies: + postcss "^7.0.2" + +postcss-media-minmax@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + dependencies: + postcss "^7.0.2" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + dependencies: + postcss "^7.0.5" + +postcss-modules-local-by-default@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== + dependencies: + icss-utils "^4.1.1" + postcss "^7.0.32" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== + dependencies: + postcss "^7.0.6" + postcss-selector-parser "^6.0.0" + +postcss-modules-values@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + dependencies: + icss-utils "^4.0.0" + postcss "^7.0.6" + +postcss-nesting@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + dependencies: + postcss "^7.0.2" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize/-/postcss-normalize-8.0.1.tgz#90e80a7763d7fdf2da6f2f0f82be832ce4f66776" + integrity sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ== + dependencies: + "@csstools/normalize.css" "^10.1.0" + browserslist "^4.6.2" + postcss "^7.0.17" + postcss-browser-comments "^3.0.0" + sanitize.css "^10.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-overflow-shorthand@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + dependencies: + postcss "^7.0.2" + +postcss-page-break@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + dependencies: + postcss "^7.0.2" + +postcss-place@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + dependencies: + postcss "^7.0.2" + postcss-values-parser "^2.0.0" + +postcss-preset-env@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + dependencies: + autoprefixer "^9.6.1" + browserslist "^4.6.4" + caniuse-lite "^1.0.30000981" + css-blank-pseudo "^0.1.4" + css-has-pseudo "^0.10.0" + css-prefers-color-scheme "^3.1.1" + cssdb "^4.4.0" + postcss "^7.0.17" + postcss-attribute-case-insensitive "^4.0.1" + postcss-color-functional-notation "^2.0.1" + postcss-color-gray "^5.0.0" + postcss-color-hex-alpha "^5.0.3" + postcss-color-mod-function "^3.0.3" + postcss-color-rebeccapurple "^4.0.1" + postcss-custom-media "^7.0.8" + postcss-custom-properties "^8.0.11" + postcss-custom-selectors "^5.1.2" + postcss-dir-pseudo-class "^5.0.0" + postcss-double-position-gradients "^1.0.0" + postcss-env-function "^2.0.2" + postcss-focus-visible "^4.0.0" + postcss-focus-within "^3.0.0" + postcss-font-variant "^4.0.0" + postcss-gap-properties "^2.0.0" + postcss-image-set-function "^3.0.1" + postcss-initial "^3.0.0" + postcss-lab-function "^2.0.1" + postcss-logical "^3.0.0" + postcss-media-minmax "^4.0.0" + postcss-nesting "^7.0.0" + postcss-overflow-shorthand "^2.0.0" + postcss-page-break "^2.0.0" + postcss-place "^4.0.1" + postcss-pseudo-class-any-link "^6.0.0" + postcss-replace-overflow-wrap "^3.0.0" + postcss-selector-matches "^4.0.0" + postcss-selector-not "^4.0.0" + +postcss-pseudo-class-any-link@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + dependencies: + postcss "^7.0.2" + postcss-selector-parser "^5.0.0-rc.3" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-replace-overflow-wrap@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + dependencies: + postcss "^7.0.2" + +postcss-safe-parser@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz#459dd27df6bc2ba64608824ba39e45dacf5e852d" + integrity sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ== + dependencies: + postcss "^8.1.0" + +postcss-selector-matches@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-not@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" + integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== + dependencies: + balanced-match "^1.0.0" + postcss "^7.0.2" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + dependencies: + cssesc "^2.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" + integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + util-deprecate "^1.0.2" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + +postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss@7.0.21: + version "7.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" + integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +postcss@^8.1.0: + version "8.2.6" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.6.tgz#5d69a974543b45f87e464bc4c3e392a97d6be9fe" + integrity sha512-xpB8qYxgPuly166AGlpRjUdEYtmOWx2iCwGmrv4vqZL9YPVviDVPZPRXxnXr6xPZOdxQ9lp3ZBFCRgWJ7LE3Sg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +pretty-error@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" + integrity sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw== + dependencies: + lodash "^4.17.20" + renderkid "^2.0.4" + +pretty-format@^26.0.0, pretty-format@^26.6.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +promise@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/promise/-/promise-8.1.0.tgz#697c25c3dfe7435dd79fcd58c38a135888eaf05e" + integrity sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q== + dependencies: + asap "~2.0.6" + +prompts@2.4.0, prompts@^2.0.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.0.tgz#4aa5de0723a231d1ee9121c40fdf663df73f61d7" + integrity sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +prop-types@^15.5.4, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" + integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + +raf@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39" + integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA== + dependencies: + performance-now "^2.1.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-loader@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-4.0.2.tgz#1aac6b7d1ad1501e66efdac1522c73e59a584eb6" + integrity sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + +react-app-polyfill@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz#a0bea50f078b8a082970a9d853dc34b6dcc6a3cf" + integrity sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA== + dependencies: + core-js "^3.6.5" + object-assign "^4.1.1" + promise "^8.1.0" + raf "^3.4.1" + regenerator-runtime "^0.13.7" + whatwg-fetch "^3.4.1" + +react-deep-force-update@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.1.3.tgz#740612322e617bcced38f61794a4af75dc3d98e7" + integrity sha512-lqD4eHKVuB65RyO/hGbEST53E2/GPbcIPcFYyeW/p4vNngtH4G7jnKGlU6u1OqrFo0uNfIvwuBOg98IbLHlNEA== + +react-dev-utils@^11.0.3: + version "11.0.3" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-11.0.3.tgz#b61ed499c7d74f447d4faddcc547e5e671e97c08" + integrity sha512-4lEA5gF4OHrcJLMUV1t+4XbNDiJbsAWCH5Z2uqlTqW6dD7Cf5nEASkeXrCI/Mz83sI2o527oBIFKVMXtRf1Vtg== + dependencies: + "@babel/code-frame" "7.10.4" + address "1.1.2" + browserslist "4.14.2" + chalk "2.4.2" + cross-spawn "7.0.3" + detect-port-alt "1.1.6" + escape-string-regexp "2.0.0" + filesize "6.1.0" + find-up "4.1.0" + fork-ts-checker-webpack-plugin "4.1.6" + global-modules "2.0.0" + globby "11.0.1" + gzip-size "5.1.1" + immer "8.0.1" + is-root "2.1.0" + loader-utils "2.0.0" + open "^7.0.2" + pkg-up "3.1.0" + prompts "2.4.0" + react-error-overlay "^6.0.9" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + strip-ansi "6.0.0" + text-table "0.2.0" + +react-dom@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.1.tgz#1de2560474ec9f0e334285662ede52dbc5426fc6" + integrity sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler "^0.20.1" + +react-error-overlay@^6.0.9: + version "6.0.9" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" + integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== + +react-hot-loader@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.1.3.tgz#6f92877326958c7cb0134b512474517869126082" + integrity sha512-d7nZf78irxoGN5PY4zd6CSgZiroOhvIWzRast3qwTn4sSnBwlt08kV8WMQ9mitmxEdlCTwZt+5ClrRSjxWguMQ== + dependencies: + global "^4.3.0" + react-deep-force-update "^2.1.1" + react-proxy "^3.0.0-alpha.0" + redbox-react "^1.3.6" + source-map "^0.6.1" + +react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.1.tgz#5b3531bd76a645a4c9fb6e693ed36419e3301339" + integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA== + +react-proxy@^3.0.0-alpha.0: + version "3.0.0-alpha.1" + resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-3.0.0-alpha.1.tgz#4400426bcfa80caa6724c7755695315209fa4b07" + integrity sha1-RABCa8+oDKpnJMd1VpUxUgn6Swc= + dependencies: + lodash "^4.6.1" + +react-refresh@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" + integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== + +react-scripts@4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.3.tgz#b1cafed7c3fa603e7628ba0f187787964cb5d345" + integrity sha512-S5eO4vjUzUisvkIPB7jVsKtuH2HhWcASREYWHAQ1FP5HyCv3xgn+wpILAEWkmy+A+tTNbSZClhxjT3qz6g4L1A== + dependencies: + "@babel/core" "7.12.3" + "@pmmmwh/react-refresh-webpack-plugin" "0.4.3" + "@svgr/webpack" "5.5.0" + "@typescript-eslint/eslint-plugin" "^4.5.0" + "@typescript-eslint/parser" "^4.5.0" + babel-eslint "^10.1.0" + babel-jest "^26.6.0" + babel-loader "8.1.0" + babel-plugin-named-asset-import "^0.3.7" + babel-preset-react-app "^10.0.0" + bfj "^7.0.2" + camelcase "^6.1.0" + case-sensitive-paths-webpack-plugin "2.3.0" + css-loader "4.3.0" + dotenv "8.2.0" + dotenv-expand "5.1.0" + eslint "^7.11.0" + eslint-config-react-app "^6.0.0" + eslint-plugin-flowtype "^5.2.0" + eslint-plugin-import "^2.22.1" + eslint-plugin-jest "^24.1.0" + eslint-plugin-jsx-a11y "^6.3.1" + eslint-plugin-react "^7.21.5" + eslint-plugin-react-hooks "^4.2.0" + eslint-plugin-testing-library "^3.9.2" + eslint-webpack-plugin "^2.5.2" + file-loader "6.1.1" + fs-extra "^9.0.1" + html-webpack-plugin "4.5.0" + identity-obj-proxy "3.0.0" + jest "26.6.0" + jest-circus "26.6.0" + jest-resolve "26.6.0" + jest-watch-typeahead "0.6.1" + mini-css-extract-plugin "0.11.3" + optimize-css-assets-webpack-plugin "5.0.4" + pnp-webpack-plugin "1.6.4" + postcss-flexbugs-fixes "4.2.1" + postcss-loader "3.0.0" + postcss-normalize "8.0.1" + postcss-preset-env "6.7.0" + postcss-safe-parser "5.0.2" + prompts "2.4.0" + react-app-polyfill "^2.0.0" + react-dev-utils "^11.0.3" + react-refresh "^0.8.3" + resolve "1.18.1" + resolve-url-loader "^3.1.2" + sass-loader "^10.0.5" + semver "7.3.2" + style-loader "1.3.0" + terser-webpack-plugin "4.2.3" + ts-pnp "1.2.0" + url-loader "4.1.1" + webpack "4.44.2" + webpack-dev-server "3.11.1" + webpack-manifest-plugin "2.2.0" + workbox-webpack-plugin "5.1.4" + optionalDependencies: + fsevents "^2.1.3" + +react@^17.0.1: + version "17.0.1" + resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" + integrity sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca" + integrity sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q== + dependencies: + resolve "^1.9.0" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redbox-react@^1.3.6: + version "1.6.0" + resolved "https://registry.yarnpkg.com/redbox-react/-/redbox-react-1.6.0.tgz#e753ac02595bc1bf695b3935889a4f5b1b5a21a1" + integrity sha512-mLjM5eYR41yOp5YKHpd3syFeGq6B4Wj5vZr64nbLvTZW5ZLff4LYk7VE4ITpVxkZpCY6OZuqh0HiP3A3uEaCpg== + dependencies: + error-stack-parser "^1.3.6" + object-assign "^4.0.1" + prop-types "^15.5.4" + sourcemapped-stacktrace "^1.1.6" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== + +regenerator-transform@^0.14.2: + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== + dependencies: + "@babel/runtime" "^7.8.4" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regex-parser@^2.2.11: + version "2.2.11" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" + integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q== + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +regexpp@^3.0.0, regexpp@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== + +regjsparser@^0.6.4: + version "0.6.7" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" + integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + dependencies: + jsesc "~0.5.0" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.5.tgz#483b1ac59c6601ab30a7a596a5965cabccfdd0a5" + integrity sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ== + dependencies: + css-select "^2.0.2" + dom-converter "^0.2" + htmlparser2 "^3.10.1" + lodash "^4.17.20" + strip-ansi "^3.0.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +request-promise-core@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" + integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== + dependencies: + lodash "^4.17.19" + +request-promise-native@^1.0.8: + version "1.0.9" + resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" + integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== + dependencies: + request-promise-core "1.1.4" + stealthy-require "^1.1.1" + tough-cookie "^2.3.3" + +request@^2.88.2: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-url-loader@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" + integrity sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ== + dependencies: + adjust-sourcemap-loader "3.0.0" + camelcase "5.3.1" + compose-function "3.0.3" + convert-source-map "1.7.0" + es6-iterator "2.0.3" + loader-utils "1.2.3" + postcss "7.0.21" + rework "1.0.1" + rework-visit "1.0.0" + source-map "0.6.1" + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@1.18.1: + version "1.18.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130" + integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA== + dependencies: + is-core-module "^2.0.0" + path-parse "^1.0.6" + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.3.2, resolve@^1.8.1, resolve@^1.9.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== + dependencies: + is-core-module "^2.2.0" + path-parse "^1.0.6" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rework-visit@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + integrity sha1-mUWygD8hni96ygCtuLyfZA+ELJo= + +rework@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + integrity sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc= + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@^2.5.4, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rollup-plugin-babel@^4.3.3: + version "4.4.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb" + integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + rollup-pluginutils "^2.8.1" + +rollup-plugin-terser@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413" + integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w== + dependencies: + "@babel/code-frame" "^7.5.5" + jest-worker "^24.9.0" + rollup-pluginutils "^2.8.2" + serialize-javascript "^4.0.0" + terser "^4.6.2" + +rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^1.31.1: + version "1.32.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" + integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== + dependencies: + "@types/estree" "*" + "@types/node" "*" + acorn "^7.1.0" + +rsvp@^4.8.4: + version "4.8.5" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" + integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sane@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded" + integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA== + dependencies: + "@cnakazawa/watch" "^1.0.3" + anymatch "^2.0.0" + capture-exit "^2.0.0" + exec-sh "^0.3.2" + execa "^1.0.0" + fb-watchman "^2.0.0" + micromatch "^3.1.4" + minimist "^1.1.1" + walker "~1.0.5" + +sanitize.css@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-10.0.0.tgz#b5cb2547e96d8629a60947544665243b1dc3657a" + integrity sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg== + +sass-loader@^10.0.5: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== + dependencies: + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" + +sass@^1.32.8: + version "1.32.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc" + integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ== + dependencies: + chokidar ">=2.0.0 <4.0.0" + +sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +saxes@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +scheduler@^0.20.1: + version "0.20.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.1.tgz#da0b907e24026b01181ecbc75efdc7f27b5a000c" + integrity sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5, schema-utils@^2.7.0, schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + dependencies: + node-forge "^0.10.0" + +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^6.0.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.2.1, semver@^7.3.2, semver@^7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +shellwords@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== + dependencies: + debug "^3.2.6" + eventsource "^1.0.7" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" + +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== + dependencies: + faye-websocket "^0.11.3" + uuid "^3.4.0" + websocket-driver "^0.7.4" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0, source-map-resolve@^0.5.2: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== + +source-map@0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + integrity sha1-dc449SvwczxafwwRjYEzSiu19BI= + +source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.7.3, source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +sourcemapped-stacktrace@^1.1.6: + version "1.1.11" + resolved "https://registry.yarnpkg.com/sourcemapped-stacktrace/-/sourcemapped-stacktrace-1.1.11.tgz#e2dede7fc148599c52a4f883276e527f8452657d" + integrity sha512-O0pcWjJqzQFVsisPlPXuNawJHHg9N9UgpJ/aDmvi9+vnS3x1C0NhwkVFzzZ1VN0Xo+bekyweoqYvBw5ZBKiNnQ== + dependencies: + source-map "0.5.6" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" + integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +ssri@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-utils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== + dependencies: + escape-string-regexp "^2.0.0" + +stackframe@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" + integrity sha1-M6qE8Rd6VUjIk1Uzy/6zQgl19aQ= + +stackframe@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303" + integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stealthy-require@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" + integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +string-natural-compare@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/string-natural-compare/-/string-natural-compare-3.0.1.tgz#7a42d58474454963759e8e8b7ae63d71c1e7fdf4" + integrity sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw== + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.2: + version "4.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz#608f255e93e072107f5de066f81a2dfb78cf6b29" + integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.18.0-next.2" + has-symbols "^1.0.1" + internal-slot "^1.0.3" + regexp.prototype.flags "^1.3.1" + side-channel "^1.0.4" + +string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz#a22bd53cca5c7cf44d7c9d5c732118873d6cd18b" + integrity sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz#9b4cb590e123bb36564401d59824298de50fd5aa" + integrity sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-object@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" + integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw== + dependencies: + get-own-enumerable-property-symbols "^3.0.0" + is-obj "^1.0.1" + is-regexp "^1.0.0" + +strip-ansi@6.0.0, strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-comments@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d" + integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw== + dependencies: + babel-extract-comments "^1.0.0" + babel-plugin-transform-object-rest-spread "^6.26.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +style-loader@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== + dependencies: + loader-utils "^2.0.0" + schema-utils "^2.7.0" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svg-parser@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== + +svgo@^1.0.0, svgo@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +table@^6.0.4: + version "6.0.7" + resolved "https://registry.yarnpkg.com/table/-/table-6.0.7.tgz#e45897ffbcc1bcf9e8a87bf420f2c9e5a7a52a34" + integrity sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g== + dependencies: + ajv "^7.0.2" + lodash "^4.17.20" + slice-ansi "^4.0.0" + string-width "^4.2.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^6.0.2: + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +temp-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0= + +tempy@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8" + integrity sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ== + dependencies: + temp-dir "^1.0.0" + type-fest "^0.3.1" + unique-string "^1.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== + dependencies: + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" + source-map "^0.6.1" + terser "^5.3.4" + webpack-sources "^1.4.3" + +terser-webpack-plugin@^1.4.3: + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^4.0.0" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2, terser@^4.6.2, terser@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +terser@^5.3.4: + version "5.6.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.6.0.tgz#138cdf21c5e3100b1b3ddfddf720962f88badcd2" + integrity sha512-vyqLMoqadC1uR0vywqOZzriDYzgEkNJFK4q9GeyOBHIbiECHiWLKcWfbQWAUaPfxkjDhapSlZB9f7fkMrvkVjA== + dependencies: + commander "^2.20.0" + source-map "~0.7.2" + source-map-support "~0.5.19" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +throat@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" + integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timers-browserify@^2.0.4: + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmpl@1.0.x: + version "1.0.4" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@^2.3.3, tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" + integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== + dependencies: + ip-regex "^2.1.0" + psl "^1.1.28" + punycode "^2.1.1" + +tr46@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" + integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== + dependencies: + punycode "^2.1.1" + +tryer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" + integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== + +ts-loader@^8.0.17: + version "8.0.17" + resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.0.17.tgz#98f2ccff9130074f4079fd89b946b4c637b1f2fc" + integrity sha512-OeVfSshx6ot/TCxRwpBHQ/4lRzfgyTkvi7ghDVrLXOHzTbSK413ROgu/xNqM72i3AFeAIJgQy78FwSMKmOW68w== + dependencies: + chalk "^4.1.0" + enhanced-resolve "^4.0.0" + loader-utils "^2.0.0" + micromatch "^4.0.0" + semver "^7.3.4" + +ts-pnp@1.2.0, ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tsconfig-paths@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" + integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.1" + minimist "^1.2.0" + strip-bom "^3.0.0" + +tslib@^1.8.1, tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + +tsutils@^3.17.1: + version "3.20.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.20.0.tgz#ea03ea45462e146b53d70ce0893de453ff24f698" + integrity sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.3.0.tgz#ada7c045f07ead08abf9e2edd29be1a0c0661132" + integrity sha512-rgPIqOdfK/4J9FhiVrZ3cveAjRRo5rsQBAIhnylX874y1DX/kEKSVdLsnuHB6l1KTjHyU01VjiMBHgU2adejyg== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +typescript@^4.1.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.2.tgz#1450f020618f872db0ea17317d16d8da8ddb8c4c" + integrity sha512-tbb+NVrLfnsJy3M59lsDgrzWIflR4d4TIUjz+heUnHZwdF7YsrMTKoRERiIvI2lvBG95dfpLxB21WZhys1bgaQ== + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1, upath@^1.1.2, upath@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-4.1.1.tgz#28505e905cae158cf07c92ca622d7f237e70a4e2" + integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA== + dependencies: + loader-utils "^2.0.0" + mime-types "^2.1.27" + schema-utils "^3.0.0" + +url-parse@^1.4.3, url-parse@^1.4.7: + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + dependencies: + define-properties "^1.1.2" + object.getownpropertydescriptors "^2.0.3" + +util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3, v8-compile-cache@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" + integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== + +v8-to-istanbul@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" + integrity sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + source-map "^0.7.3" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" + integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== + dependencies: + xml-name-validator "^3.0.0" + +walker@^1.0.7, walker@~1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= + dependencies: + makeerror "1.0.x" + +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== + dependencies: + chokidar "^2.1.8" + +watchpack@^1.7.4: + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== + dependencies: + graceful-fs "^4.1.2" + neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.1" + watchpack-chokidar2 "^2.0.1" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-vitals@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.0.tgz#7f410d9a1f7a1cd5d952806b45776204b47dc274" + integrity sha512-1cx54eRxY/+M0KNKdNpNnuXAXG+vJEvwScV4DiV9rOYDguHoeDIzm09ghBohOPtkqPO5OtPC14FWkNva3SDisg== + +webidl-conversions@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" + integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== + +webidl-conversions@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" + integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== + +webpack-cli@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" + integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== + dependencies: + "@discoveryjs/json-ext" "^0.5.0" + "@webpack-cli/configtest" "^1.0.1" + "@webpack-cli/info" "^1.2.2" + "@webpack-cli/serve" "^1.3.0" + colorette "^1.2.1" + commander "^7.0.0" + enquirer "^2.3.6" + execa "^5.0.0" + fastest-levenshtein "^1.0.12" + import-local "^3.0.2" + interpret "^2.2.0" + rechoir "^0.7.0" + v8-compile-cache "^2.2.0" + webpack-merge "^5.7.3" + +webpack-dev-middleware@^3.7.2: + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@3.11.1: + version "3.11.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz#c74028bf5ba8885aaf230e48a20e8936ab8511f0" + integrity sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.3.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.8" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.26" + schema-utils "^1.0.0" + selfsigned "^1.10.8" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "^0.3.21" + sockjs-client "^1.5.0" + spdy "^4.0.2" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "^13.3.2" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-manifest-plugin@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz#19ca69b435b0baec7e29fbe90fb4015de2de4f16" + integrity sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ== + dependencies: + fs-extra "^7.0.0" + lodash ">=3.5 <5" + object.entries "^1.1.0" + tapable "^1.0.0" + +webpack-merge@^5.7.3: + version "5.7.3" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.7.3.tgz#2a0754e1877a25a8bbab3d2475ca70a052708213" + integrity sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA== + dependencies: + clone-deep "^4.0.1" + wildcard "^2.0.0" + +webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@4.44.2: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.4.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.3.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.7.4" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: + version "0.7.4" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== + dependencies: + http-parser-js ">=0.5.1" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +whatwg-encoding@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== + dependencies: + iconv-lite "0.4.24" + +whatwg-fetch@^3.4.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.1.tgz#93bc4005af6c2cc30ba3e42ec3125947c8f54ed3" + integrity sha512-IEmN/ZfmMw6G1hgZpVd0LuZXOQDisrMOZrzYd5x3RAK4bMPlJohKUZWZ9t/QsTvH0dV9TbPDcc2OSuIDcihnHA== + +whatwg-mimetype@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== + +whatwg-url@^8.0.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.4.0.tgz#50fb9615b05469591d2b2bd6dfaed2942ed72837" + integrity sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^2.0.2" + webidl-conversions "^6.1.0" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wildcard@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" + integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== + +word-wrap@^1.2.3, word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workbox-background-sync@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12" + integrity sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA== + dependencies: + workbox-core "^5.1.4" + +workbox-broadcast-update@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc" + integrity sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA== + dependencies: + workbox-core "^5.1.4" + +workbox-build@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7" + integrity sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow== + dependencies: + "@babel/core" "^7.8.4" + "@babel/preset-env" "^7.8.4" + "@babel/runtime" "^7.8.4" + "@hapi/joi" "^15.1.0" + "@rollup/plugin-node-resolve" "^7.1.1" + "@rollup/plugin-replace" "^2.3.1" + "@surma/rollup-plugin-off-main-thread" "^1.1.1" + common-tags "^1.8.0" + fast-json-stable-stringify "^2.1.0" + fs-extra "^8.1.0" + glob "^7.1.6" + lodash.template "^4.5.0" + pretty-bytes "^5.3.0" + rollup "^1.31.1" + rollup-plugin-babel "^4.3.3" + rollup-plugin-terser "^5.3.1" + source-map "^0.7.3" + source-map-url "^0.4.0" + stringify-object "^3.3.0" + strip-comments "^1.0.2" + tempy "^0.3.0" + upath "^1.2.0" + workbox-background-sync "^5.1.4" + workbox-broadcast-update "^5.1.4" + workbox-cacheable-response "^5.1.4" + workbox-core "^5.1.4" + workbox-expiration "^5.1.4" + workbox-google-analytics "^5.1.4" + workbox-navigation-preload "^5.1.4" + workbox-precaching "^5.1.4" + workbox-range-requests "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + workbox-streams "^5.1.4" + workbox-sw "^5.1.4" + workbox-window "^5.1.4" + +workbox-cacheable-response@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54" + integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA== + dependencies: + workbox-core "^5.1.4" + +workbox-core@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4" + integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg== + +workbox-expiration@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163" + integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ== + dependencies: + workbox-core "^5.1.4" + +workbox-google-analytics@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517" + integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA== + dependencies: + workbox-background-sync "^5.1.4" + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + workbox-strategies "^5.1.4" + +workbox-navigation-preload@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a" + integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ== + dependencies: + workbox-core "^5.1.4" + +workbox-precaching@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b" + integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA== + dependencies: + workbox-core "^5.1.4" + +workbox-range-requests@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859" + integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw== + dependencies: + workbox-core "^5.1.4" + +workbox-routing@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970" + integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw== + dependencies: + workbox-core "^5.1.4" + +workbox-strategies@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c" + integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-streams@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0" + integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw== + dependencies: + workbox-core "^5.1.4" + workbox-routing "^5.1.4" + +workbox-sw@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db" + integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA== + +workbox-webpack-plugin@5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz#7bfe8c16e40fe9ed8937080ac7ae9c8bde01e79c" + integrity sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ== + dependencies: + "@babel/runtime" "^7.5.5" + fast-json-stable-stringify "^2.0.0" + source-map-url "^0.4.0" + upath "^1.1.2" + webpack-sources "^1.3.0" + workbox-build "^5.1.4" + +workbox-window@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863" + integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw== + dependencies: + workbox-core "^5.1.4" + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.2.3: + version "7.4.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" + integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== + +xml-name-validator@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@^4.0.0, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.0, yaml@^1.7.2: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^15.4.1: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 5352e395346c37134d62282dee8600f78d560bf0 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Wed, 3 Mar 2021 17:51:31 -0800 Subject: [PATCH 005/112] Functional UI list. API streaming endpoints Signed-off-by: Remington Breeze --- Makefile | 2 + go.sum | 1 + pkg/apiclient/rollout/forwarder_overwrite.go | 10 + pkg/apiclient/rollout/rollout.pb.go | 471 +- pkg/apiclient/rollout/rollout.pb.gw.go | 157 +- pkg/apiclient/rollout/rollout.proto | 22 +- pkg/apiclient/rollout/rollout.swagger.json | 3482 +++++++++++- pkg/apis/rollouts/v1alpha1/generated.pb.go | 820 +-- pkg/apis/rollouts/v1alpha1/generated.proto | 10 + pkg/apis/rollouts/v1alpha1/types.go | 10 +- .../cmd/list/list_rollouts.go | 28 +- server/server.go | 66 +- ui/package.json | 109 +- ui/src/app/App.scss | 14 +- ui/src/app/App.tsx | 10 +- ui/src/app/components/header/header.scss | 22 + ui/src/app/components/header/header.tsx | 13 + .../rollouts-list/rollouts-list.scss | 37 + .../rollouts-list/rollouts-list.tsx | 45 + ui/src/app/shared/services/rollout.ts | 15 + ui/src/app/shared/styles/colors.scss | 54 + ui/src/app/shared/utils/watch.ts | 57 + ui/src/app/tsconfig.json | 27 +- ui/src/app/webpack.config.js | 159 +- .../assets/images/argo-icon-white-square.svg | 14 + ui/src/assets/images/argo-icon-white.svg | 1 + ui/src/models/rollout/generated/.gitignore | 3 + .../rollout/generated/.swagger-codegen-ignore | 23 + .../generated/.swagger-codegen/VERSION | 1 + ui/src/models/rollout/generated/api.ts | 5023 +++++++++++++++++ .../models/rollout/generated/api_test.spec.ts | 39 + .../models/rollout/generated/configuration.ts | 65 + ui/src/models/rollout/generated/custom.d.ts | 2 + ui/src/models/rollout/generated/git_push.sh | 51 + ui/src/models/rollout/generated/index.ts | 15 + ui/src/models/rollout/rollout.tsx | 3 + ui/yarn.lock | 79 +- 37 files changed, 10313 insertions(+), 647 deletions(-) create mode 100644 pkg/apiclient/rollout/forwarder_overwrite.go create mode 100644 ui/src/app/components/header/header.scss create mode 100644 ui/src/app/components/header/header.tsx create mode 100644 ui/src/app/components/rollouts-list/rollouts-list.scss create mode 100644 ui/src/app/components/rollouts-list/rollouts-list.tsx create mode 100644 ui/src/app/shared/services/rollout.ts create mode 100644 ui/src/app/shared/styles/colors.scss create mode 100644 ui/src/app/shared/utils/watch.ts create mode 100644 ui/src/assets/images/argo-icon-white-square.svg create mode 100644 ui/src/assets/images/argo-icon-white.svg create mode 100644 ui/src/models/rollout/generated/.gitignore create mode 100644 ui/src/models/rollout/generated/.swagger-codegen-ignore create mode 100644 ui/src/models/rollout/generated/.swagger-codegen/VERSION create mode 100644 ui/src/models/rollout/generated/api.ts create mode 100644 ui/src/models/rollout/generated/api_test.spec.ts create mode 100644 ui/src/models/rollout/generated/configuration.ts create mode 100644 ui/src/models/rollout/generated/custom.d.ts create mode 100644 ui/src/models/rollout/generated/git_push.sh create mode 100644 ui/src/models/rollout/generated/index.ts create mode 100644 ui/src/models/rollout/rollout.tsx diff --git a/Makefile b/Makefile index efb0981c7b..c72788a495 100644 --- a/Makefile +++ b/Makefile @@ -84,6 +84,7 @@ ifneq ("$(PWD)","$(LEGACY_PATH)") @exit 1 endif +UI_PROTOGEN_CMD=yarn run protogen .PHONY: protogen protogen: \ pkg/apis/rollouts/v1alpha1/generated.proto \ @@ -92,6 +93,7 @@ protogen: \ go generate ./pkg/apiclient/rollout rm -Rf vendor go mod tidy + cd ui && ${UI_PROTOGEN_CMD} && cd .. PROTO_BINARIES := $(GOPATH)/bin/protoc-gen-gogo $(GOPATH)/bin/protoc-gen-gogofast $(GOPATH)/bin/goimports $(GOPATH)/bin/protoc-gen-grpc-gateway $(GOPATH)/bin/protoc-gen-swagger TYPES := $(shell find pkg/apis/rollouts/v1alpha1 -type f -name '*.go' -not -name openapi_generated.go -not -name '*generated*' -not -name '*test.go') diff --git a/go.sum b/go.sum index 02d33ffb54..b9801945d0 100644 --- a/go.sum +++ b/go.sum @@ -310,6 +310,7 @@ github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5Kwzbycv github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= diff --git a/pkg/apiclient/rollout/forwarder_overwrite.go b/pkg/apiclient/rollout/forwarder_overwrite.go new file mode 100644 index 0000000000..fd7bda8443 --- /dev/null +++ b/pkg/apiclient/rollout/forwarder_overwrite.go @@ -0,0 +1,10 @@ +package rollout + +import ( + "github.com/argoproj/pkg/grpc/http" +) + +func init() { + forward_RolloutService_WatchRollouts_0 = http.StreamForwarder + forward_RolloutService_WatchRollout_0 = http.StreamForwarder +} \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index c9e0eba05e..799fe6eed3 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -8,6 +8,7 @@ import ( fmt "fmt" v1alpha1 "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" proto "github.com/gogo/protobuf/proto" + empty "github.com/golang/protobuf/ptypes/empty" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -29,7 +30,7 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type RolloutQuery struct { - Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -69,14 +70,70 @@ func (m *RolloutQuery) XXX_DiscardUnknown() { var xxx_messageInfo_RolloutQuery proto.InternalMessageInfo func (m *RolloutQuery) GetName() string { - if m != nil && m.Name != nil { - return *m.Name + if m != nil { + return m.Name } return "" } +type RolloutWatchEvent struct { + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Rollout *v1alpha1.Rollout `protobuf:"bytes,2,opt,name=rollout,proto3" json:"rollout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *RolloutWatchEvent) Reset() { *m = RolloutWatchEvent{} } +func (m *RolloutWatchEvent) String() string { return proto.CompactTextString(m) } +func (*RolloutWatchEvent) ProtoMessage() {} +func (*RolloutWatchEvent) Descriptor() ([]byte, []int) { + return fileDescriptor_99101d942e8912a7, []int{1} +} +func (m *RolloutWatchEvent) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RolloutWatchEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RolloutWatchEvent.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *RolloutWatchEvent) XXX_Merge(src proto.Message) { + xxx_messageInfo_RolloutWatchEvent.Merge(m, src) +} +func (m *RolloutWatchEvent) XXX_Size() int { + return m.Size() +} +func (m *RolloutWatchEvent) XXX_DiscardUnknown() { + xxx_messageInfo_RolloutWatchEvent.DiscardUnknown(m) +} + +var xxx_messageInfo_RolloutWatchEvent proto.InternalMessageInfo + +func (m *RolloutWatchEvent) GetType() string { + if m != nil { + return m.Type + } + return "" +} + +func (m *RolloutWatchEvent) GetRollout() *v1alpha1.Rollout { + if m != nil { + return m.Rollout + } + return nil +} + func init() { proto.RegisterType((*RolloutQuery)(nil), "rollout.RolloutQuery") + proto.RegisterType((*RolloutWatchEvent)(nil), "rollout.RolloutWatchEvent") } func init() { @@ -84,26 +141,34 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 298 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x2e, 0xc8, 0x4e, 0xd7, - 0x4f, 0x2c, 0xc8, 0x4c, 0xce, 0xc9, 0x4c, 0xcd, 0x2b, 0xd1, 0x2f, 0xca, 0xcf, 0xc9, 0xc9, 0x2f, - 0x85, 0xd3, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xec, 0x50, 0xae, 0x94, 0x4c, 0x7a, 0x7e, - 0x7e, 0x7a, 0x4e, 0x2a, 0x48, 0x83, 0x7e, 0x62, 0x5e, 0x5e, 0x7e, 0x49, 0x62, 0x49, 0x66, 0x7e, - 0x5e, 0x31, 0x44, 0x99, 0x94, 0x4f, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, - 0x7e, 0x62, 0x51, 0x7a, 0x7e, 0x41, 0x51, 0x7e, 0x16, 0x98, 0xa1, 0x0b, 0xd5, 0x5f, 0xac, 0x0f, - 0xb5, 0xad, 0x58, 0x1f, 0x2e, 0x52, 0x66, 0x98, 0x98, 0x53, 0x90, 0x91, 0x68, 0xa8, 0x9f, 0x9e, - 0x9a, 0x97, 0x5a, 0x94, 0x58, 0x92, 0x9a, 0x02, 0x31, 0x4d, 0x49, 0x89, 0x8b, 0x27, 0x08, 0xa2, - 0x28, 0xb0, 0x34, 0xb5, 0xa8, 0x52, 0x48, 0x88, 0x8b, 0x25, 0x2f, 0x31, 0x37, 0x55, 0x82, 0x51, - 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x36, 0x5a, 0xc7, 0xc4, 0xc5, 0x07, 0x55, 0x14, 0x9c, 0x5a, - 0x54, 0x96, 0x99, 0x9c, 0x2a, 0xd4, 0xce, 0xc8, 0xc5, 0xec, 0x9e, 0x5a, 0x22, 0x24, 0xaa, 0x07, - 0xf3, 0x03, 0xb2, 0x29, 0x52, 0x9e, 0x7a, 0x08, 0x47, 0xea, 0xc1, 0x1c, 0x09, 0x66, 0xc4, 0xc3, - 0x9c, 0xa4, 0x57, 0x90, 0x9d, 0xae, 0x07, 0x72, 0xa4, 0x1e, 0x5c, 0x04, 0xe6, 0x48, 0x98, 0x59, - 0x9e, 0x79, 0x69, 0xf9, 0x4a, 0x72, 0x4d, 0x97, 0x9f, 0x4c, 0x66, 0x92, 0x10, 0x12, 0x03, 0x07, - 0x47, 0x99, 0x21, 0x3c, 0xf0, 0xaa, 0x41, 0x6e, 0xab, 0x15, 0x9a, 0xc8, 0xc8, 0xc5, 0x1a, 0x9e, - 0x58, 0x92, 0x9c, 0x41, 0x07, 0xb7, 0xa8, 0x80, 0xdd, 0x22, 0x27, 0x24, 0x83, 0xee, 0x96, 0x72, - 0x90, 0x03, 0xa0, 0x2e, 0x32, 0x60, 0x74, 0x72, 0x3d, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, - 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0xa3, 0xcc, 0x89, 0x8e, 0x30, 0xd4, 0xe4, 0x01, 0x08, 0x00, 0x00, - 0xff, 0xff, 0x86, 0xc3, 0xb5, 0x1b, 0x36, 0x02, 0x00, 0x00, + // 424 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0x41, 0xab, 0x13, 0x31, + 0x10, 0xc7, 0x49, 0x29, 0x8a, 0xb1, 0x8a, 0x06, 0x2c, 0xcb, 0x5a, 0x96, 0xb2, 0x7a, 0xe8, 0xc5, + 0xa4, 0xad, 0x07, 0xef, 0xc2, 0x22, 0x85, 0x5e, 0xac, 0x07, 0xc1, 0x4b, 0x49, 0xd7, 0x74, 0xbb, + 0x76, 0x9b, 0x84, 0xdd, 0xec, 0x4a, 0x11, 0x2f, 0x9e, 0x04, 0xc1, 0x8b, 0x17, 0xbf, 0x86, 0xdf, + 0xc2, 0xa3, 0xe0, 0x17, 0x78, 0x94, 0xf7, 0x41, 0x1e, 0xc9, 0x26, 0xdb, 0xbe, 0x42, 0xe1, 0x1d, + 0xca, 0x3b, 0xed, 0x64, 0x76, 0x32, 0xf3, 0xfb, 0xcf, 0x4c, 0xe0, 0x33, 0xb9, 0x4e, 0x08, 0x95, + 0x69, 0x9c, 0xa5, 0x8c, 0x2b, 0x92, 0x8b, 0x2c, 0x13, 0x65, 0xf3, 0xc5, 0x32, 0x17, 0x4a, 0xa0, + 0xbb, 0xf6, 0xe8, 0xf7, 0x12, 0x21, 0x92, 0x8c, 0xe9, 0x0b, 0x84, 0x72, 0x2e, 0x14, 0x55, 0xa9, + 0xe0, 0x45, 0x1d, 0xe6, 0x4f, 0x93, 0x54, 0xad, 0xca, 0x05, 0x8e, 0xc5, 0x86, 0xd0, 0x3c, 0x11, + 0x32, 0x17, 0x9f, 0x8c, 0xf1, 0xc2, 0xde, 0x2f, 0x88, 0xad, 0x56, 0x90, 0xc6, 0x53, 0x8d, 0x68, + 0x26, 0x57, 0x74, 0x44, 0x12, 0xc6, 0x59, 0x4e, 0x15, 0xfb, 0x68, 0xb3, 0x3d, 0xb5, 0xb5, 0xcc, + 0x69, 0x51, 0x2e, 0x09, 0xdb, 0x48, 0xb5, 0xad, 0x7f, 0x86, 0x21, 0xec, 0xcc, 0xea, 0x0c, 0x6f, + 0x4b, 0x96, 0x6f, 0x11, 0x82, 0x6d, 0x4e, 0x37, 0xcc, 0x03, 0x7d, 0x30, 0xb8, 0x37, 0x33, 0x76, + 0xf8, 0x1d, 0xc0, 0xc7, 0x36, 0xe8, 0x3d, 0x55, 0xf1, 0x2a, 0xaa, 0x18, 0x57, 0x3a, 0x52, 0x6d, + 0x65, 0x13, 0xa9, 0x6d, 0x34, 0x87, 0x4e, 0xa1, 0xd7, 0xea, 0x83, 0xc1, 0xfd, 0x71, 0x84, 0xf7, + 0x52, 0xb0, 0x93, 0x62, 0x8c, 0xb9, 0x03, 0xc7, 0x72, 0x9d, 0x60, 0x2d, 0x05, 0x37, 0x1e, 0x27, + 0x05, 0xdb, 0xaa, 0x33, 0x97, 0x75, 0xfc, 0xa7, 0x0d, 0x1f, 0x5a, 0xe7, 0x3b, 0x96, 0x57, 0x69, + 0xcc, 0xd0, 0x4f, 0x00, 0xe1, 0x1b, 0xa6, 0xac, 0x17, 0x3d, 0x71, 0x69, 0xf0, 0xa1, 0x2e, 0x7f, + 0x72, 0x16, 0x90, 0x09, 0x5f, 0x8a, 0x30, 0xf8, 0xf6, 0xff, 0xf2, 0x57, 0xcb, 0x43, 0x5d, 0x33, + 0xbd, 0x6a, 0xd4, 0xcc, 0xfa, 0x8b, 0xee, 0xd6, 0x57, 0xf4, 0x1b, 0xc0, 0x8e, 0xe9, 0xd3, 0xed, + 0x21, 0x3d, 0x37, 0x48, 0x01, 0xea, 0x1d, 0x23, 0x7d, 0xd6, 0x1c, 0x16, 0x6c, 0x08, 0xd0, 0x0f, + 0x00, 0x3b, 0xd3, 0xb4, 0x70, 0xcd, 0x2a, 0x50, 0x17, 0xd7, 0xcb, 0x81, 0xdd, 0x72, 0xe0, 0x48, + 0x2f, 0xc7, 0x99, 0xd8, 0x74, 0xa9, 0xd0, 0x33, 0x6c, 0x08, 0x3d, 0x3a, 0x62, 0x2b, 0x10, 0x83, + 0x0f, 0x0e, 0xfb, 0x74, 0x9a, 0xc6, 0x3f, 0x6e, 0xe0, 0x7e, 0x0d, 0x4f, 0x4e, 0xa3, 0xa8, 0xb5, + 0x0f, 0xc1, 0xeb, 0xe8, 0xef, 0x2e, 0x00, 0xff, 0x76, 0x01, 0xb8, 0xd8, 0x05, 0xe0, 0xc3, 0xab, + 0x1b, 0xbf, 0xad, 0xeb, 0x2f, 0x79, 0x71, 0xc7, 0x40, 0xbd, 0xbc, 0x0a, 0x00, 0x00, 0xff, 0xff, + 0xa3, 0x62, 0x27, 0x72, 0xe9, 0x03, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -119,8 +184,10 @@ const _ = grpc.SupportPackageIsVersion4 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type RolloutServiceClient interface { // Get returns a rollout - Get(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) - Watch(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchClient, error) + GetRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) + WatchRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchRolloutClient, error) + ListRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*v1alpha1.RolloutList, error) + WatchRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (RolloutService_WatchRolloutsClient, error) } type rolloutServiceClient struct { @@ -131,21 +198,21 @@ func NewRolloutServiceClient(cc *grpc.ClientConn) RolloutServiceClient { return &rolloutServiceClient{cc} } -func (c *rolloutServiceClient) Get(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) { +func (c *rolloutServiceClient) GetRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*v1alpha1.RolloutInfo, error) { out := new(v1alpha1.RolloutInfo) - err := c.cc.Invoke(ctx, "/rollout.RolloutService/Get", in, out, opts...) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/GetRollout", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *rolloutServiceClient) Watch(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchClient, error) { - stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[0], "/rollout.RolloutService/Watch", opts...) +func (c *rolloutServiceClient) WatchRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchRolloutClient, error) { + stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[0], "/rollout.RolloutService/WatchRollout", opts...) if err != nil { return nil, err } - x := &rolloutServiceWatchClient{stream} + x := &rolloutServiceWatchRolloutClient{stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -155,16 +222,16 @@ func (c *rolloutServiceClient) Watch(ctx context.Context, in *RolloutQuery, opts return x, nil } -type RolloutService_WatchClient interface { +type RolloutService_WatchRolloutClient interface { Recv() (*v1alpha1.RolloutInfo, error) grpc.ClientStream } -type rolloutServiceWatchClient struct { +type rolloutServiceWatchRolloutClient struct { grpc.ClientStream } -func (x *rolloutServiceWatchClient) Recv() (*v1alpha1.RolloutInfo, error) { +func (x *rolloutServiceWatchRolloutClient) Recv() (*v1alpha1.RolloutInfo, error) { m := new(v1alpha1.RolloutInfo) if err := x.ClientStream.RecvMsg(m); err != nil { return nil, err @@ -172,64 +239,152 @@ func (x *rolloutServiceWatchClient) Recv() (*v1alpha1.RolloutInfo, error) { return m, nil } +func (c *rolloutServiceClient) ListRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*v1alpha1.RolloutList, error) { + out := new(v1alpha1.RolloutList) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/ListRollouts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rolloutServiceClient) WatchRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (RolloutService_WatchRolloutsClient, error) { + stream, err := c.cc.NewStream(ctx, &_RolloutService_serviceDesc.Streams[1], "/rollout.RolloutService/WatchRollouts", opts...) + if err != nil { + return nil, err + } + x := &rolloutServiceWatchRolloutsClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type RolloutService_WatchRolloutsClient interface { + Recv() (*RolloutWatchEvent, error) + grpc.ClientStream +} + +type rolloutServiceWatchRolloutsClient struct { + grpc.ClientStream +} + +func (x *rolloutServiceWatchRolloutsClient) Recv() (*RolloutWatchEvent, error) { + m := new(RolloutWatchEvent) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // Get returns a rollout - Get(context.Context, *RolloutQuery) (*v1alpha1.RolloutInfo, error) - Watch(*RolloutQuery, RolloutService_WatchServer) error + GetRollout(context.Context, *RolloutQuery) (*v1alpha1.RolloutInfo, error) + WatchRollout(*RolloutQuery, RolloutService_WatchRolloutServer) error + ListRollouts(context.Context, *empty.Empty) (*v1alpha1.RolloutList, error) + WatchRollouts(*empty.Empty, RolloutService_WatchRolloutsServer) error } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. type UnimplementedRolloutServiceServer struct { } -func (*UnimplementedRolloutServiceServer) Get(ctx context.Context, req *RolloutQuery) (*v1alpha1.RolloutInfo, error) { - return nil, status.Errorf(codes.Unimplemented, "method Get not implemented") +func (*UnimplementedRolloutServiceServer) GetRollout(ctx context.Context, req *RolloutQuery) (*v1alpha1.RolloutInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRollout not implemented") +} +func (*UnimplementedRolloutServiceServer) WatchRollout(req *RolloutQuery, srv RolloutService_WatchRolloutServer) error { + return status.Errorf(codes.Unimplemented, "method WatchRollout not implemented") } -func (*UnimplementedRolloutServiceServer) Watch(req *RolloutQuery, srv RolloutService_WatchServer) error { - return status.Errorf(codes.Unimplemented, "method Watch not implemented") +func (*UnimplementedRolloutServiceServer) ListRollouts(ctx context.Context, req *empty.Empty) (*v1alpha1.RolloutList, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRollouts not implemented") +} +func (*UnimplementedRolloutServiceServer) WatchRollouts(req *empty.Empty, srv RolloutService_WatchRolloutsServer) error { + return status.Errorf(codes.Unimplemented, "method WatchRollouts not implemented") } func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) } -func _RolloutService_Get_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _RolloutService_GetRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RolloutQuery) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(RolloutServiceServer).Get(ctx, in) + return srv.(RolloutServiceServer).GetRollout(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/rollout.RolloutService/Get", + FullMethod: "/rollout.RolloutService/GetRollout", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(RolloutServiceServer).Get(ctx, req.(*RolloutQuery)) + return srv.(RolloutServiceServer).GetRollout(ctx, req.(*RolloutQuery)) } return interceptor(ctx, in, info, handler) } -func _RolloutService_Watch_Handler(srv interface{}, stream grpc.ServerStream) error { +func _RolloutService_WatchRollout_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(RolloutQuery) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(RolloutServiceServer).Watch(m, &rolloutServiceWatchServer{stream}) + return srv.(RolloutServiceServer).WatchRollout(m, &rolloutServiceWatchRolloutServer{stream}) } -type RolloutService_WatchServer interface { +type RolloutService_WatchRolloutServer interface { Send(*v1alpha1.RolloutInfo) error grpc.ServerStream } -type rolloutServiceWatchServer struct { +type rolloutServiceWatchRolloutServer struct { grpc.ServerStream } -func (x *rolloutServiceWatchServer) Send(m *v1alpha1.RolloutInfo) error { +func (x *rolloutServiceWatchRolloutServer) Send(m *v1alpha1.RolloutInfo) error { + return x.ServerStream.SendMsg(m) +} + +func _RolloutService_ListRollouts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).ListRollouts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/ListRollouts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).ListRollouts(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + +func _RolloutService_WatchRollouts_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(empty.Empty) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RolloutServiceServer).WatchRollouts(m, &rolloutServiceWatchRolloutsServer{stream}) +} + +type RolloutService_WatchRolloutsServer interface { + Send(*RolloutWatchEvent) error + grpc.ServerStream +} + +type rolloutServiceWatchRolloutsServer struct { + grpc.ServerStream +} + +func (x *rolloutServiceWatchRolloutsServer) Send(m *RolloutWatchEvent) error { return x.ServerStream.SendMsg(m) } @@ -238,14 +393,23 @@ var _RolloutService_serviceDesc = grpc.ServiceDesc{ HandlerType: (*RolloutServiceServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "Get", - Handler: _RolloutService_Get_Handler, + MethodName: "GetRollout", + Handler: _RolloutService_GetRollout_Handler, + }, + { + MethodName: "ListRollouts", + Handler: _RolloutService_ListRollouts_Handler, }, }, Streams: []grpc.StreamDesc{ { - StreamName: "Watch", - Handler: _RolloutService_Watch_Handler, + StreamName: "WatchRollout", + Handler: _RolloutService_WatchRollout_Handler, + ServerStreams: true, + }, + { + StreamName: "WatchRollouts", + Handler: _RolloutService_WatchRollouts_Handler, ServerStreams: true, }, }, @@ -276,10 +440,56 @@ func (m *RolloutQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Name != nil { - i -= len(*m.Name) - copy(dAtA[i:], *m.Name) - i = encodeVarintRollout(dAtA, i, uint64(len(*m.Name))) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RolloutWatchEvent) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RolloutWatchEvent) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RolloutWatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if m.Rollout != nil { + { + size, err := m.Rollout.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRollout(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Type))) i-- dAtA[i] = 0xa } @@ -303,8 +513,28 @@ func (m *RolloutQuery) Size() (n int) { } var l int _ = l - if m.Name != nil { - l = len(*m.Name) + l = len(m.Name) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + +func (m *RolloutWatchEvent) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.Rollout != nil { + l = m.Rollout.Size() n += 1 + l + sovRollout(uint64(l)) } if m.XXX_unrecognized != nil { @@ -378,8 +608,129 @@ func (m *RolloutQuery) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - s := string(dAtA[iNdEx:postIndex]) - m.Name = &s + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRollout(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RolloutWatchEvent) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RolloutWatchEvent: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RolloutWatchEvent: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rollout", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Rollout == nil { + m.Rollout = &v1alpha1.Rollout{} + } + if err := m.Rollout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index e5cf024338..38f5bf999b 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -15,6 +15,7 @@ import ( "github.com/golang/protobuf/descriptor" "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/grpc-ecosystem/grpc-gateway/utilities" "google.golang.org/grpc" @@ -31,7 +32,7 @@ var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage -func request_RolloutService_Get_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_RolloutService_GetRollout_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RolloutQuery var metadata runtime.ServerMetadata @@ -47,18 +48,18 @@ func request_RolloutService_Get_0(ctx context.Context, marshaler runtime.Marshal return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Name, err = runtime.StringP(val) + protoReq.Name, err = runtime.String(val) if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - msg, err := client.Get(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetRollout(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_RolloutService_Get_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func local_request_RolloutService_GetRollout_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq RolloutQuery var metadata runtime.ServerMetadata @@ -74,18 +75,18 @@ func local_request_RolloutService_Get_0(ctx context.Context, marshaler runtime.M return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Name, err = runtime.StringP(val) + protoReq.Name, err = runtime.String(val) if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - msg, err := server.Get(ctx, &protoReq) + msg, err := server.GetRollout(ctx, &protoReq) return msg, metadata, err } -func request_RolloutService_Watch_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchClient, runtime.ServerMetadata, error) { +func request_RolloutService_WatchRollout_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchRolloutClient, runtime.ServerMetadata, error) { var protoReq RolloutQuery var metadata runtime.ServerMetadata @@ -101,13 +102,48 @@ func request_RolloutService_Watch_0(ctx context.Context, marshaler runtime.Marsh return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Name, err = runtime.StringP(val) + protoReq.Name, err = runtime.String(val) if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } - stream, err := client.Watch(ctx, &protoReq) + stream, err := client.WatchRollout(ctx, &protoReq) + if err != nil { + return nil, metadata, err + } + header, err := stream.Header() + if err != nil { + return nil, metadata, err + } + metadata.HeaderMD = header + return stream, metadata, nil + +} + +func request_RolloutService_ListRollouts_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.ListRollouts(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_ListRollouts_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := server.ListRollouts(ctx, &protoReq) + return msg, metadata, err + +} + +func request_RolloutService_WatchRollouts_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (RolloutService_WatchRolloutsClient, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + stream, err := client.WatchRollouts(ctx, &protoReq) if err != nil { return nil, metadata, err } @@ -125,7 +161,7 @@ func request_RolloutService_Watch_0(ctx context.Context, marshaler runtime.Marsh // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server RolloutServiceServer) error { - mux.Handle("GET", pattern_RolloutService_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_GetRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -134,18 +170,45 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_RolloutService_Get_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_RolloutService_GetRollout_0(rctx, inboundMarshaler, server, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RolloutService_GetRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RolloutService_Watch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_WatchRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") + _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + }) + + mux.Handle("GET", pattern_RolloutService_ListRollouts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_ListRollouts_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_ListRollouts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_RolloutService_WatchRollouts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { err := status.Error(codes.Unimplemented, "streaming calls are not yet supported in the in-process transport") _, outboundMarshaler := runtime.MarshalerForRequest(mux, req) runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -193,7 +256,27 @@ func RegisterRolloutServiceHandler(ctx context.Context, mux *runtime.ServeMux, c // "RolloutServiceClient" to call the correct interceptors. func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client RolloutServiceClient) error { - mux.Handle("GET", pattern_RolloutService_Get_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_GetRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_GetRollout_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_GetRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_RolloutService_WatchRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -202,18 +285,18 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RolloutService_Get_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RolloutService_WatchRollout_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_Get_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_RolloutService_WatchRollout_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_RolloutService_Watch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_RolloutService_ListRollouts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -222,14 +305,34 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_RolloutService_Watch_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_RolloutService_ListRollouts_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_RolloutService_Watch_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) + forward_RolloutService_ListRollouts_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_RolloutService_WatchRollouts_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_WatchRollouts_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_WatchRollouts_0(ctx, mux, outboundMarshaler, w, req, func() (proto.Message, error) { return resp.Recv() }, mux.GetForwardResponseOptions()...) }) @@ -237,13 +340,21 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve } var ( - pattern_RolloutService_Get_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "rollout", "name"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_RolloutService_GetRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "rollout", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_WatchRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "watch", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_ListRollouts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "rollouts"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_RolloutService_Watch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "watch", "name"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_RolloutService_WatchRollouts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rollouts", "watch"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( - forward_RolloutService_Get_0 = runtime.ForwardResponseMessage + forward_RolloutService_GetRollout_0 = runtime.ForwardResponseMessage + + forward_RolloutService_WatchRollout_0 = runtime.ForwardResponseStream + + forward_RolloutService_ListRollouts_0 = runtime.ForwardResponseMessage - forward_RolloutService_Watch_0 = runtime.ForwardResponseStream + forward_RolloutService_WatchRollouts_0 = runtime.ForwardResponseStream ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index ad2cdc386d..6542ddae37 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -1,22 +1,36 @@ -syntax = "proto2"; +syntax = "proto3"; option go_package = "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout"; import "google/api/annotations.proto"; import "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1/generated.proto"; +import "google/protobuf/empty.proto"; package rollout; message RolloutQuery { - optional string name = 1; + string name = 1; +} + +message RolloutWatchEvent { + string type = 1; + github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout rollout = 2; } service RolloutService { // Get returns a rollout - rpc Get(RolloutQuery) returns (github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { + rpc GetRollout(RolloutQuery) returns (github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { option (google.api.http).get = "/api/v1/rollout/{name}"; } - rpc Watch(RolloutQuery) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { + rpc WatchRollout(RolloutQuery) returns (stream github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { option (google.api.http).get = "/api/v1/rollout/watch/{name}"; } + + rpc ListRollouts(google.protobuf.Empty) returns (github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutList) { + option (google.api.http).get = "/api/v1/rollouts"; + } + + rpc WatchRollouts(google.protobuf.Empty) returns (stream RolloutWatchEvent) { + option (google.api.http).get = "/api/v1/rollouts/watch"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 591fd667a0..1e32f76951 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -13,7 +13,7 @@ "paths": { "/api/v1/rollout/watch/{name}": { "get": { - "operationId": "Watch", + "operationId": "WatchRollout", "responses": { "200": { "description": "A successful response.(streaming responses)", @@ -47,7 +47,7 @@ "/api/v1/rollout/{name}": { "get": { "summary": "Get returns a rollout", - "operationId": "Get", + "operationId": "GetRollout", "responses": { "200": { "description": "A successful response.", @@ -68,75 +68,3382 @@ "RolloutService" ] } + }, + "/api/v1/rollouts": { + "get": { + "operationId": "ListRollouts", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutList" + } + } + }, + "tags": [ + "RolloutService" + ] + } + }, + "/api/v1/rollouts/watch": { + "get": { + "operationId": "WatchRollouts", + "responses": { + "200": { + "description": "A successful response.(streaming responses)", + "schema": { + "type": "object", + "properties": { + "result": { + "$ref": "#/definitions/rollout.RolloutWatchEvent" + }, + "error": { + "$ref": "#/definitions/grpc.gateway.runtime.StreamError" + } + }, + "title": "Stream result of rollout.RolloutWatchEvent" + } + } + }, + "tags": [ + "RolloutService" + ] + } } }, "definitions": { - "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo": { + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ALBTrafficRouting": { + "type": "object", + "properties": { + "ingress": { + "type": "string", + "title": "Ingress refers to the name of an `Ingress` resource in the same namespace as the `Rollout`" + }, + "servicePort": { + "type": "integer", + "format": "int32", + "title": "ServicePort refers to the port that the Ingress action should route traffic to" + }, + "rootService": { + "type": "string", + "title": "RootService references the service in the ingress to the controller should add the action to" + }, + "annotationPrefix": { + "type": "string", + "title": "AnnotationPrefix has to match the configured annotation prefix on the alb ingress controller\n+optional" + } + }, + "title": "ALBTrafficRouting configuration for ALB ingress controller to control traffic routing" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name argument name" + }, + "value": { + "type": "string", + "title": "Value a hardcoded value for the argument. This field is a one of field with valueFrom" + }, + "valueFrom": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ArgumentValueFrom", + "title": "ValueFrom A reference to where the value is stored. This field is a one of field with valueFrom" + } + }, + "title": "AnalysisRunArgument argument to add to analysisRun" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AntiAffinity": { + "type": "object", + "properties": { + "preferredDuringSchedulingIgnoredDuringExecution": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PreferredDuringSchedulingIgnoredDuringExecution", + "title": "+optional" + }, + "requiredDuringSchedulingIgnoredDuringExecution": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RequiredDuringSchedulingIgnoredDuringExecution", + "title": "+optional" + } + }, + "title": "AntiAffinity defines which inter-pod scheduling rule to use for anti-affinity injection" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ArgumentValueFrom": { + "type": "object", + "properties": { + "podTemplateHashValue": { + "type": "string", + "title": "PodTemplateHashValue gets the value from one of the children ReplicaSet's Pod Template Hash" + }, + "fieldRef": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.FieldRef", + "title": "FieldRef" + } + }, + "title": "ArgumentValueFrom defines references to fields within resources to grab for the value (i.e. Pod Template Hash)" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStatus": { + "type": "object", + "properties": { + "previewSelector": { + "type": "string", + "title": "PreviewSelector indicates which replicas set the preview service is serving traffic to\n+optional" + }, + "activeSelector": { + "type": "string", + "title": "ActiveSelector indicates which replicas set the active service is serving traffic to\n+optional" + }, + "scaleUpPreviewCheckPoint": { + "type": "boolean", + "format": "boolean", + "title": "ScaleUpPreviewCheckPoint indicates that the Replicaset receiving traffic from the preview service is ready to be scaled up after the rollout is unpaused\n+optional" + }, + "prePromotionAnalysisRunStatus": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus", + "title": "PrePromotionAnalysisRunStatus indicates the status of the current prepromotion analysis run" + }, + "postPromotionAnalysisRunStatus": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus", + "title": "PostPromotionAnalysisRunStatus indicates the status of the current post promotion analysis run" + } + }, + "title": "BlueGreenStatus status fields that only pertain to the blueGreen rollout" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStrategy": { + "type": "object", + "properties": { + "activeService": { + "type": "string", + "description": "Name of the service that the rollout modifies as the active service." + }, + "previewService": { + "type": "string", + "title": "Name of the service that the rollout modifies as the preview service.\n+optional" + }, + "previewReplicaCount": { + "type": "integer", + "format": "int32", + "title": "PreviewReplicaCount is the number of replicas to run for the preview stack before the\nswitchover. Once the rollout is resumed the desired replicaset will be full scaled up before the switch occurs\n+optional" + }, + "autoPromotionEnabled": { + "type": "boolean", + "format": "boolean", + "title": "AutoPromotionEnabled indicates if the rollout should automatically promote the new ReplicaSet\nto the active service or enter a paused state. If not specified, the default value is true.\n+optional" + }, + "autoPromotionSeconds": { + "type": "integer", + "format": "int32", + "title": "AutoPromotionSeconds is a duration in seconds in which to delay auto-promotion (default: 0).\nThe countdown begins after the preview ReplicaSet have reached full availability.\nThis option is ignored if autoPromotionEnabled is set to false.\n+optional" + }, + "maxUnavailable": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "title": "MaxUnavailable The maximum number of pods that can be unavailable during a restart operation.\nDefaults to 25% of total replicas.\n+optional" + }, + "scaleDownDelaySeconds": { + "type": "integer", + "format": "int32", + "title": "ScaleDownDelaySeconds adds a delay before scaling down the previous replicaset.\nIf omitted, the Rollout waits 30 seconds before scaling down the previous ReplicaSet.\nA minimum of 30 seconds is recommended to ensure IP table propagation across the nodes in\na cluster. See https://github.com/argoproj/argo-rollouts/issues/19#issuecomment-476329960 for\nmore information\n+optional" + }, + "scaleDownDelayRevisionLimit": { + "type": "integer", + "format": "int32", + "title": "ScaleDownDelayRevisionLimit limits the number of old RS that can run at one time before getting scaled down\n+optional" + }, + "prePromotionAnalysis": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis", + "title": "PrePromotionAnalysis configuration to run analysis before a selector switch" + }, + "antiAffinity": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AntiAffinity", + "title": "AntiAffinity enables anti-affinity rules for Blue Green deployment\n+optional" + }, + "postPromotionAnalysis": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis", + "title": "PostPromotionAnalysis configuration to run analysis after a selector switch" + }, + "previewMetadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata", + "title": "PreviewMetadata specify labels and annotations which will be attached to the preview pods for\nthe duration which they act as a preview pod, and will be removed after" + }, + "activeMetadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata", + "title": "ActiveMetadata specify labels and annotations which will be attached to the active pods for\nthe duration which they act as a active pod, and will be removed after" + } + }, + "title": "BlueGreenStrategy defines parameters for Blue Green deployment" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStatus": { + "type": "object", + "properties": { + "currentStepAnalysisRunStatus": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus", + "title": "CurrentStepAnalysisRunStatus indicates the status of the current step analysis run" + }, + "currentBackgroundAnalysisRunStatus": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus", + "title": "CurrentBackgroundAnalysisRunStatus indicates the status of the current background analysis run" + }, + "currentExperiment": { + "type": "string", + "title": "CurrentExperiment indicates the running experiment" + } + }, + "title": "CanaryStatus status fields that only pertain to the canary rollout" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStep": { + "type": "object", + "properties": { + "setWeight": { + "type": "integer", + "format": "int32", + "title": "SetWeight sets what percentage of the newRS should receive" + }, + "pause": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutPause", + "title": "Pause freezes the rollout by setting spec.Paused to true.\nA Rollout will resume when spec.Paused is reset to false.\n+optional" + }, + "experiment": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStep", + "title": "Experiment defines the experiment object that should be created" + }, + "analysis": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis", + "title": "Analysis defines the AnalysisRun that will run for a step" + }, + "setCanaryScale": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SetCanaryScale", + "title": "SetCanaryScale defines how to scale the newRS without changing traffic weight\n+optional" + } + }, + "description": "CanaryStep defines a step of a canary deployment." + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStrategy": { + "type": "object", + "properties": { + "canaryService": { + "type": "string", + "title": "CanaryService holds the name of a service which selects pods with canary version and don't select any pods with stable version.\n+optional" + }, + "stableService": { + "type": "string", + "title": "StableService holds the name of a service which selects pods with stable version and don't select any pods with canary version.\n+optional" + }, + "steps": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStep" + }, + "title": "Steps define the order of phases to execute the canary deployment\n+optional" + }, + "trafficRouting": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutTrafficRouting", + "title": "TrafficRouting hosts all the supported service meshes supported to enable more fine-grained traffic routing" + }, + "maxUnavailable": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "title": "MaxUnavailable The maximum number of pods that can be unavailable during the update.\nValue can be an absolute number (ex: 5) or a percentage of total pods at the start of update (ex: 10%).\nAbsolute number is calculated from percentage by rounding down.\nThis can not be 0 if MaxSurge is 0.\nBy default, a fixed value of 25% is used.\nExample: when this is set to 30%, the old RC can be scaled down by 30%\nimmediately when the rolling update starts. Once new pods are ready, old RC\ncan be scaled down further, followed by scaling up the new RC, ensuring\nthat at least 70% of original number of pods are available at all times\nduring the update.\n+optional" + }, + "maxSurge": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "title": "MaxSurge The maximum number of pods that can be scheduled above the original number of\npods.\nValue can be an absolute number (ex: 5) or a percentage of total pods at\nthe start of the update (ex: 10%). This can not be 0 if MaxUnavailable is 0.\nAbsolute number is calculated from percentage by rounding up.\nBy default, a value of 25% is used.\nExample: when this is set to 30%, the new RC can be scaled up by 30%\nimmediately when the rolling update starts. Once old pods have been killed,\nnew RC can be scaled up further, ensuring that total number of pods running\nat any time during the update is at most 130% of original pods.\n+optional" + }, + "analysis": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisBackground", + "title": "Analysis runs a separate analysisRun while all the steps execute. This is intended to be a continuous validation of the new ReplicaSet" + }, + "antiAffinity": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AntiAffinity", + "title": "AntiAffinity enables anti-affinity rules for Canary deployment\n+optional" + }, + "canaryMetadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata", + "title": "CanaryMetadata specify labels and annotations which will be attached to the canary pods for\nthe duration which they act as a canary, and will be removed after" + }, + "stableMetadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata", + "title": "StableMetadata specify labels and annotations which will be attached to the stable pods for\nthe duration which they act as a canary, and will be removed after" + } + }, + "title": "CanaryStrategy defines parameters for a Replica Based Canary" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.FieldRef": { + "type": "object", + "properties": { + "fieldPath": { + "type": "string", + "title": "Required: Path of the field to select in the specified API version" + } + } + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioDestinationRule": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name holds the name of the DestinationRule" + }, + "canarySubsetName": { + "type": "string", + "title": "CanarySubsetName is the subset name to modify labels with canary ReplicaSet pod template hash value" + }, + "stableSubsetName": { + "type": "string", + "title": "StableSubsetName is the subset name to modify labels with stable ReplicaSet pod template hash value" + } + }, + "title": "IstioDestinationRule is a reference to an Istio DestinationRule to modify and shape traffic" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioTrafficRouting": { + "type": "object", + "properties": { + "virtualService": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioVirtualService", + "title": "VirtualService references an Istio VirtualService to modify to shape traffic" + }, + "destinationRule": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioDestinationRule", + "title": "DestinationRule references an Istio DestinationRule to modify to shape traffic" + } + }, + "title": "IstioTrafficRouting configuration for Istio service mesh to enable fine grain configuration" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioVirtualService": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name holds the name of the VirtualService" + }, + "routes": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Routes list of routes within VirtualService to edit" + } + }, + "title": "IstioVirtualService holds information on the virtual service the rollout needs to modify" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting": { + "type": "object", + "properties": { + "annotationPrefix": { + "type": "string", + "title": "AnnotationPrefix has to match the configured annotation prefix on the nginx ingress controller\n+optional" + }, + "stableIngress": { + "type": "string", + "title": "StableIngress refers to the name of an `Ingress` resource in the same namespace as the `Rollout`" + }, + "additionalIngressAnnotations": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "+optional" + } + }, + "title": "NginxTrafficRouting configuration for Nginx ingress controller to control traffic routing" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PauseCondition": { + "type": "object", + "properties": { + "reason": { + "type": "string" + }, + "startTime": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time" + } + }, + "title": "PauseCondition the reason for a pause and when it started" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata": { + "type": "object", + "properties": { + "labels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Labels Additional labels to add to the experiment\n+optional" + }, + "annotations": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Annotations additional annotations to add to the experiment\n+optional" + } + }, + "title": "PodTemplateMetadata extra labels to add to the template" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PreferredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "properties": { + "weight": { + "type": "integer", + "format": "int32", + "description": "Weight associated with matching the corresponding podAffinityTerm, in the range 1-100." + } + }, + "title": "PreferredDuringSchedulingIgnoredDuringExecution defines the weight of the anti-affinity injection" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RequiredDuringSchedulingIgnoredDuringExecution": { + "type": "object", + "title": "RequiredDuringSchedulingIgnoredDuringExecution defines inter-pod scheduling rule to be RequiredDuringSchedulingIgnoredDuringExecution" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "spec": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutSpec" + }, + "status": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStatus" + } + }, + "title": "Rollout is a specification for a Rollout resource" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis": { + "type": "object", + "properties": { + "templates": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisTemplate" + }, + "title": "Templates reference to a list of analysis templates to combine for an AnalysisRun" + }, + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument" + }, + "title": "Args the arguments that will be added to the AnalysisRuns\n+patchMergeKey=name\n+patchStrategy=merge" + } + }, + "title": "RolloutAnalysis defines a template that is used to create a analysisRun" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisBackground": { + "type": "object", + "properties": { + "rolloutAnalysis": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis" + }, + "startingStep": { + "type": "integer", + "format": "int32", + "title": "StartingStep indicates which step the background analysis should start on\nIf not listed, controller defaults to 0" + } + }, + "title": "RolloutAnalysisBackground defines a template that is used to create a background analysisRun" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisRunStatus": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "status": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysisTemplate": { + "type": "object", + "properties": { + "templateName": { + "type": "string", + "title": "TemplateName name of template to use in AnalysisRun\n+optional" + }, + "clusterScope": { + "type": "boolean", + "format": "boolean", + "title": "Whether to look for the templateName at cluster scope or namespace scope\n+optional" + } + } + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutCondition": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of deployment condition." + }, + "status": { + "type": "string", + "description": "Phase of the condition, one of True, False, Unknown." + }, + "lastUpdateTime": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time this condition was updated." + }, + "lastTransitionTime": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "description": "Last time the condition transitioned from one status to another." + }, + "reason": { + "type": "string", + "description": "The reason for the condition's last transition." + }, + "message": { + "type": "string", + "description": "A human readable message indicating details about the transition." + } + }, + "description": "RolloutCondition describes the state of a rollout at a certain point." + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStep": { + "type": "object", + "properties": { + "templates": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentTemplate" + }, + "title": "Templates what templates that should be added to the experiment. Should be non-nil\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "duration": { + "type": "string", + "title": "Duration is a duration string (e.g. 30s, 5m, 1h) that the experiment should run for\n+optional" + }, + "analyses": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStepAnalysisTemplateRef" + }, + "title": "Analyses reference which analysis templates to run with the experiment\n+patchMergeKey=name\n+patchStrategy=merge" + } + }, + "title": "RolloutExperimentStep defines a template that is used to create a experiment for a step" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentStepAnalysisTemplateRef": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name is a name for this analysis template invocation" + }, + "templateName": { + "type": "string", + "title": "TemplateName reference of the AnalysisTemplate name used by the Experiment to create the run" + }, + "clusterScope": { + "type": "boolean", + "format": "boolean", + "title": "Whether to look for the templateName at cluster scope or namespace scope\n+optional" + }, + "args": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument" + }, + "title": "Args the arguments that will be added to the AnalysisRuns\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "requiredForCompletion": { + "type": "boolean", + "format": "boolean", + "title": "RequiredForCompletion blocks the Experiment from completing until the analysis has completed" + } + } + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutExperimentTemplate": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name description of template that passed to the template" + }, + "specRef": { + "type": "string", + "title": "SpecRef indicates where the rollout should get the RS template from" + }, + "replicas": { + "type": "integer", + "format": "int32", + "title": "Replicas replica count for the template\n+optional" + }, + "metadata": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata", + "title": "Metadata sets labels and annotations to use for the RS created from the template\n+optional" + }, + "selector": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector", + "title": "Selector overrides the selector to be used for the template's ReplicaSet. If omitted, will\nuse the same selector as the Rollout\n+optional" + } + }, + "title": "RolloutExperimentTemplate defines the template used to create experiments for the Rollout's experiment canary step" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "status": { + "type": "string" + }, + "message": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "strategy": { + "type": "string" + }, + "step": { + "type": "string" + }, + "setWeight": { + "type": "string" + }, + "actualWeight": { + "type": "string" + }, + "ready": { + "type": "integer", + "format": "int32" + }, + "current": { + "type": "integer", + "format": "int32" + }, + "desired": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + }, + "available": { + "type": "integer", + "format": "int32" + } + }, + "title": "RolloutInfo is information about a rollout" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutList": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout" + } + } + }, + "title": "RolloutList is a list of Rollout resources" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutPause": { + "type": "object", + "properties": { + "duration": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "title": "Duration the amount of time to wait before moving to the next step.\n+optional" + } + }, + "title": "RolloutPause defines a pause stage for a rollout" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutSpec": { + "type": "object", + "properties": { + "replicas": { + "type": "integer", + "format": "int32", + "title": "Number of desired pods. This is a pointer to distinguish between explicit\nzero and not specified. Defaults to 1.\n+optional" + }, + "selector": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "Label selector for pods. Existing ReplicaSets whose pods are\nselected by this will be the ones affected by this rollout.\nIt must match the pod template's labels." + }, + "template": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodTemplateSpec", + "description": "Template describes the pods that will be created." + }, + "minReadySeconds": { + "type": "integer", + "format": "int32", + "title": "Minimum number of seconds for which a newly created pod should be ready\nwithout any of its container crashing, for it to be considered available.\nDefaults to 0 (pod will be considered available as soon as it is ready)\n+optional" + }, + "strategy": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStrategy", + "title": "The deployment strategy to use to replace existing pods with new ones.\n+optional" + }, + "revisionHistoryLimit": { + "type": "integer", + "format": "int32", + "title": "The number of old ReplicaSets to retain. If unspecified, will retain 10 old ReplicaSets" + }, + "paused": { + "type": "boolean", + "format": "boolean", + "description": "Paused pauses the rollout at its current step." + }, + "progressDeadlineSeconds": { + "type": "integer", + "format": "int32", + "description": "ProgressDeadlineSeconds The maximum time in seconds for a rollout to\nmake progress before it is considered to be failed. Argo Rollouts will\ncontinue to process failed rollouts and a condition with a\nProgressDeadlineExceeded reason will be surfaced in the rollout status.\nNote that progress will not be estimated during the time a rollout is paused.\nDefaults to 600s." + }, + "restartAt": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "title": "RestartAt indicates when all the pods of a Rollout should be restarted" + } + }, + "title": "RolloutSpec is the spec for a Rollout resource" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStatus": { + "type": "object", + "properties": { + "abort": { + "type": "boolean", + "format": "boolean", + "title": "Abort cancel the current rollout progression" + }, + "pauseConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PauseCondition" + }, + "title": "PauseConditions indicates why the rollout is currently paused" + }, + "controllerPause": { + "type": "boolean", + "format": "boolean", + "description": "ControllerPause indicates the controller has paused the rollout. It is set to true when\nthe controller adds a pause condition. This field helps to discern the scenario where a\nrollout was resumed after being paused by the controller (e.g. via the plugin). In that\nsituation, the pauseConditions would have been cleared , but controllerPause would still be\nset to true." + }, + "abortedAt": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "description": "AbortedAt indicates the controller reconciled an aborted rollout. The controller uses this to understand if\nthe controller needs to do some specific work when a Rollout is aborted. For example, the reconcileAbort is used\nto indicate if the Rollout should enter an aborted state when the latest AnalysisRun is a failure, or the controller\nhas already put the Rollout into an aborted and should create a new AnalysisRun." + }, + "currentPodHash": { + "type": "string", + "title": "CurrentPodHash the hash of the current pod template\n+optional" + }, + "currentStepHash": { + "type": "string", + "title": "CurrentStepHash the hash of the current list of steps for the current strategy. This is used to detect when the\nlist of current steps change\n+optional" + }, + "replicas": { + "type": "integer", + "format": "int32", + "title": "Total number of non-terminated pods targeted by this rollout (their labels match the selector).\n+optional" + }, + "updatedReplicas": { + "type": "integer", + "format": "int32", + "title": "Total number of non-terminated pods targeted by this rollout that have the desired template spec.\n+optional" + }, + "readyReplicas": { + "type": "integer", + "format": "int32", + "title": "Total number of ready pods targeted by this rollout.\n+optional" + }, + "availableReplicas": { + "type": "integer", + "format": "int32", + "title": "Total number of available pods (ready for at least minReadySeconds) targeted by this rollout.\n+optional" + }, + "currentStepIndex": { + "type": "integer", + "format": "int32", + "title": "CurrentStepIndex defines the current step of the rollout is on. If the current step index is null, the\ncontroller will execute the rollout.\n+optional" + }, + "collisionCount": { + "type": "integer", + "format": "int32", + "title": "Count of hash collisions for the Rollout. The Rollout controller uses this\nfield as a collision avoidance mechanism when it needs to create the name for the\nnewest ReplicaSet.\n+optional" + }, + "observedGeneration": { + "type": "string", + "title": "The generation observed by the rollout controller by taking a hash of the spec.\n+optional" + }, + "conditions": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutCondition" + }, + "title": "Conditions a list of conditions a rollout can have.\n+optional" + }, + "canary": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStatus", + "title": "Canary describes the state of the canary rollout\n+optional" + }, + "blueGreen": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStatus", + "title": "BlueGreen describes the state of the bluegreen rollout\n+optional" + }, + "HPAReplicas": { + "type": "integer", + "format": "int32", + "title": "HPAReplicas the number of non-terminated replicas that are receiving active traffic\n+optional" + }, + "selector": { + "type": "string", + "title": "Selector that identifies the pods that are receiving active traffic\n+optional" + }, + "stableRS": { + "type": "string", + "title": "StableRS indicates the replicaset that has successfully rolled out\n+optional" + }, + "restartedAt": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.Time", + "title": "RestartedAt indicates last time a Rollout was restarted" + }, + "promoteFull": { + "type": "boolean", + "format": "boolean", + "description": "PromoteFull indicates if the rollout should perform a full promotion, skipping analysis and pauses." + } + }, + "title": "RolloutStatus is the status for a Rollout resource" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutStrategy": { + "type": "object", + "properties": { + "blueGreen": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.BlueGreenStrategy", + "title": "+optional" + }, + "canary": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.CanaryStrategy", + "title": "+optional" + } + }, + "title": "RolloutStrategy defines strategy to apply during next rollout" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutTrafficRouting": { + "type": "object", + "properties": { + "istio": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioTrafficRouting", + "title": "Istio holds Istio specific configuration to route traffic" + }, + "nginx": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting", + "title": "Nginx holds Nginx Ingress specific configuration to route traffic" + }, + "alb": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ALBTrafficRouting", + "title": "Nginx holds ALB Ingress specific configuration to route traffic" + }, + "smi": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SMITrafficRouting", + "title": "SMI holds TrafficSplit specific configuration to route traffic" + } + }, + "title": "RolloutTrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SMITrafficRouting": { + "type": "object", + "properties": { + "rootService": { + "type": "string", + "title": "RootService holds the name of that clients use to communicate.\n+optional" + }, + "trafficSplitName": { + "type": "string", + "title": "TrafficSplitName holds the name of the TrafficSplit.\n+optional" + } + }, + "title": "SMITrafficRouting configuration for TrafficSplit Custom Resource to control traffic routing" + }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.SetCanaryScale": { + "type": "object", + "properties": { + "weight": { + "type": "integer", + "format": "int32", + "title": "Weight sets the percentage of replicas the newRS should have\n+optional" + }, + "replicas": { + "type": "integer", + "format": "int32", + "title": "Replicas sets the number of replicas the newRS should have\n+optional" + }, + "matchTrafficWeight": { + "type": "boolean", + "format": "boolean", + "title": "MatchTrafficWeight cancels out previously set Replicas or Weight, effectively activating SetWeight\n+optional" + } + }, + "title": "SetCanaryScale defines how to scale the newRS without changing traffic weight" + }, + "google.protobuf.Any": { + "type": "object", + "properties": { + "type_url": { + "type": "string" + }, + "value": { + "type": "string", + "format": "byte" + } + } + }, + "grpc.gateway.runtime.StreamError": { + "type": "object", + "properties": { + "grpc_code": { + "type": "integer", + "format": "int32" + }, + "http_code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "http_status": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/google.protobuf.Any" + } + } + } + }, + "k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource": { + "type": "object", + "properties": { + "volumeID": { + "type": "string", + "title": "Unique ID of the persistent disk resource in AWS (Amazon EBS volume).\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore" + }, + "fsType": { + "type": "string", + "title": "Filesystem type of the volume that you want to mount.\nTip: Ensure that the filesystem type is supported by the host operating system.\nExamples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\nTODO: how do we prevent errors in the filesystem from compromising the machine\n+optional" + }, + "partition": { + "type": "integer", + "format": "int32", + "title": "The partition in the volume that you want to mount.\nIf omitted, the default is to mount by volume name.\nExamples: For volume /dev/sda1, you specify the partition as \"1\".\nSimilarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Specify \"true\" to force and set the ReadOnly property in VolumeMounts to \"true\".\nIf omitted, the default is \"false\".\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n+optional" + } + }, + "description": "Represents a Persistent Disk resource in AWS.\n\nAn AWS EBS disk must exist before mounting to a container. The disk\nmust also be in the same AWS zone as the kubelet. An AWS EBS disk\ncan only be mounted as read/write once. AWS EBS volumes support\nownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.Affinity": { + "type": "object", + "properties": { + "nodeAffinity": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeAffinity", + "title": "Describes node affinity scheduling rules for the pod.\n+optional" + }, + "podAffinity": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodAffinity", + "title": "Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).\n+optional" + }, + "podAntiAffinity": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodAntiAffinity", + "title": "Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).\n+optional" + } + }, + "description": "Affinity is a group of affinity scheduling rules." + }, + "k8s.io.api.core.v1.AzureDiskVolumeSource": { + "type": "object", + "properties": { + "diskName": { + "type": "string", + "title": "The Name of the data disk in the blob storage" + }, + "diskURI": { + "type": "string", + "title": "The URI the data disk in the blob storage" + }, + "cachingMode": { + "type": "string", + "title": "Host Caching mode: None, Read Only, Read Write.\n+optional" + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + }, + "kind": { + "type": "string", + "title": "Expected values Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared" + } + }, + "description": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod." + }, + "k8s.io.api.core.v1.AzureFileVolumeSource": { + "type": "object", + "properties": { + "secretName": { + "type": "string", + "title": "the name of secret that contains Azure Storage Account Name and Key" + }, + "shareName": { + "type": "string", + "title": "Share Name" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + } + }, + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." + }, + "k8s.io.api.core.v1.CSIVolumeSource": { + "type": "object", + "properties": { + "driver": { + "type": "string", + "description": "Driver is the name of the CSI driver that handles this volume.\nConsult with your admin for the correct name as registered in the cluster." + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Specifies a read-only configuration for the volume.\nDefaults to false (read/write).\n+optional" + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount. Ex. \"ext4\", \"xfs\", \"ntfs\".\nIf not provided, the empty value is passed to the associated CSI driver\nwhich will determine the default filesystem to apply.\n+optional" + }, + "volumeAttributes": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "VolumeAttributes stores driver-specific properties that are passed to the CSI\ndriver. Consult your driver's documentation for supported values.\n+optional" + }, + "nodePublishSecretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "NodePublishSecretRef is a reference to the secret object containing\nsensitive information to pass to the CSI driver to complete the CSI\nNodePublishVolume and NodeUnpublishVolume calls.\nThis field is optional, and may be empty if no secret is required. If the\nsecret object contains more than one secret, all secret references are passed.\n+optional" + } + }, + "title": "Represents a source location of a volume to mount, managed by an external CSI driver" + }, + "k8s.io.api.core.v1.Capabilities": { + "type": "object", + "properties": { + "add": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Added capabilities\n+optional" + }, + "drop": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Removed capabilities\n+optional" + } + }, + "description": "Adds and removes POSIX capabilities from running containers." + }, + "k8s.io.api.core.v1.CephFSVolumeSource": { + "type": "object", + "properties": { + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Required: Monitors is a collection of Ceph monitors\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it" + }, + "path": { + "type": "string", + "title": "Optional: Used as the mounted root, rather than the full Ceph tree, default is /\n+optional" + }, + "user": { + "type": "string", + "title": "Optional: User is the rados user name, default is admin\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n+optional" + }, + "secretFile": { + "type": "string", + "title": "Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "Optional: SecretRef is reference to the authentication secret for User, default is empty.\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Optional: Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\nMore info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it\n+optional" + } + }, + "description": "Represents a Ceph Filesystem mount that lasts the lifetime of a pod\nCephfs volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.CinderVolumeSource": { + "type": "object", + "properties": { + "volumeID": { + "type": "string", + "title": "volume id used to identify the volume in cinder.\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md" + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nExamples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Optional: Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "Optional: points to a secret object containing parameters used to connect\nto OpenStack.\n+optional" + } + }, + "description": "Represents a cinder volume resource in Openstack.\nA Cinder volume must exist before mounting to a container.\nThe volume must also be in the same region as the kubelet.\nCinder volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.ConfigMapEnvSource": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "description": "The ConfigMap to select from." + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the ConfigMap must be defined\n+optional" + } + }, + "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment\nvariables with.\n\nThe contents of the target ConfigMap's Data field will represent the\nkey-value pairs as environment variables." + }, + "k8s.io.api.core.v1.ConfigMapKeySelector": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "description": "The ConfigMap to select from." + }, + "key": { + "type": "string", + "description": "The key to select." + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the ConfigMap or its key must be defined\n+optional" + } + }, + "description": "Selects a key from a ConfigMap." + }, + "k8s.io.api.core.v1.ConfigMapProjection": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.KeyToPath" + }, + "title": "If unspecified, each key-value pair in the Data field of the referenced\nConfigMap will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the ConfigMap,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.\n+optional" + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the ConfigMap or its keys must be defined\n+optional" + } + }, + "description": "Adapts a ConfigMap into a projected volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a\nprojected volume as files using the keys in the Data field as the file names,\nunless the items element is populated with specific mappings of keys to paths.\nNote that this is identical to a configmap volume source without the default\nmode." + }, + "k8s.io.api.core.v1.ConfigMapVolumeSource": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.KeyToPath" + }, + "title": "If unspecified, each key-value pair in the Data field of the referenced\nConfigMap will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the ConfigMap,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.\n+optional" + }, + "defaultMode": { + "type": "integer", + "format": "int32", + "title": "Optional: mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nDefaults to 0644.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the ConfigMap or its keys must be defined\n+optional" + } + }, + "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a\nvolume as files using the keys in the Data field as the file names, unless\nthe items element is populated with specific mappings of keys to paths.\nConfigMap volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.Container": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the container specified as a DNS_LABEL.\nEach container in a pod must have a unique name (DNS_LABEL).\nCannot be updated." + }, + "image": { + "type": "string", + "title": "Docker image name.\nMore info: https://kubernetes.io/docs/concepts/containers/images\nThis field is optional to allow higher level config management to default or override\ncontainer images in workload controllers like Deployments and StatefulSets.\n+optional" + }, + "command": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax\ncan be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nCannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n+optional" + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax\ncan be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nCannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n+optional" + }, + "workingDir": { + "type": "string", + "title": "Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\nCannot be updated.\n+optional" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.ContainerPort" + }, + "title": "List of ports to expose from the container. Exposing a port here gives\nthe system additional information about the network connections a\ncontainer uses, but is primarily informational. Not specifying a port here\nDOES NOT prevent that port from being exposed. Any port which is\nlistening on the default \"0.0.0.0\" address inside a container will be\naccessible from the network.\nCannot be updated.\n+optional\n+patchMergeKey=containerPort\n+patchStrategy=merge\n+listType=map\n+listMapKey=containerPort\n+listMapKey=protocol" + }, + "envFrom": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.EnvFromSource" + }, + "title": "List of sources to populate environment variables in the container.\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\nwill be reported as an event when the container is starting. When a key exists in multiple\nsources, the value associated with the last source will take precedence.\nValues defined by an Env with a duplicate key will take precedence.\nCannot be updated.\n+optional" + }, + "env": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.EnvVar" + }, + "title": "List of environment variables to set in the container.\nCannot be updated.\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "resources": { + "$ref": "#/definitions/k8s.io.api.core.v1.ResourceRequirements", + "title": "Compute Resources required by this container.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\n+optional" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeMount" + }, + "title": "Pod volumes to mount into the container's filesystem.\nCannot be updated.\n+optional\n+patchMergeKey=mountPath\n+patchStrategy=merge" + }, + "volumeDevices": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeDevice" + }, + "title": "volumeDevices is the list of block devices to be used by the container.\n+patchMergeKey=devicePath\n+patchStrategy=merge\n+optional" + }, + "livenessProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "Periodic probe of container liveness.\nContainer will be restarted if the probe fails.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n+optional" + }, + "readinessProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "Periodic probe of container service readiness.\nContainer will be removed from service endpoints if the probe fails.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n+optional" + }, + "startupProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "StartupProbe indicates that the Pod has successfully initialized.\nIf specified, no other probes are executed until this completes successfully.\nIf this probe fails, the Pod will be restarted, just as if the livenessProbe failed.\nThis can be used to provide different probe parameters at the beginning of a Pod's lifecycle,\nwhen it might take a long time to load data or warm a cache, than during steady-state operation.\nThis cannot be updated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n+optional" + }, + "lifecycle": { + "$ref": "#/definitions/k8s.io.api.core.v1.Lifecycle", + "title": "Actions that the management system should take in response to container lifecycle events.\nCannot be updated.\n+optional" + }, + "terminationMessagePath": { + "type": "string", + "title": "Optional: Path at which the file to which the container's termination message\nwill be written is mounted into the container's filesystem.\nMessage written is intended to be brief final status, such as an assertion failure message.\nWill be truncated by the node if greater than 4096 bytes. The total message length across\nall containers will be limited to 12kb.\nDefaults to /dev/termination-log.\nCannot be updated.\n+optional" + }, + "terminationMessagePolicy": { + "type": "string", + "title": "Indicate how the termination message should be populated. File will use the contents of\nterminationMessagePath to populate the container status message on both success and failure.\nFallbackToLogsOnError will use the last chunk of container log output if the termination\nmessage file is empty and the container exited with an error.\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\nDefaults to File.\nCannot be updated.\n+optional" + }, + "imagePullPolicy": { + "type": "string", + "title": "Image pull policy.\nOne of Always, Never, IfNotPresent.\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n+optional" + }, + "securityContext": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecurityContext", + "title": "Security options the pod should run with.\nMore info: https://kubernetes.io/docs/concepts/policy/security-context/\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/\n+optional" + }, + "stdin": { + "type": "boolean", + "format": "boolean", + "title": "Whether this container should allocate a buffer for stdin in the container runtime. If this\nis not set, reads from stdin in the container will always result in EOF.\nDefault is false.\n+optional" + }, + "stdinOnce": { + "type": "boolean", + "format": "boolean", + "title": "Whether the container runtime should close the stdin channel after it has been opened by\na single attach. When stdin is true the stdin stream will remain open across multiple attach\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\nat which time stdin is closed and remains closed until the container is restarted. If this\nflag is false, a container processes that reads from stdin will never receive an EOF.\nDefault is false\n+optional" + }, + "tty": { + "type": "boolean", + "format": "boolean", + "title": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\nDefault is false.\n+optional" + } + }, + "description": "A single application container that you want to run within a pod." + }, + "k8s.io.api.core.v1.ContainerPort": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.\n+optional" + }, + "hostPort": { + "type": "integer", + "format": "int32", + "title": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.\n+optional" + }, + "containerPort": { + "type": "integer", + "format": "int32", + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536." + }, + "protocol": { + "type": "string", + "title": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".\n+optional\n+default=\"TCP\"" + }, + "hostIP": { + "type": "string", + "title": "What host IP to bind the external port to.\n+optional" + } + }, + "description": "ContainerPort represents a network port in a single container." + }, + "k8s.io.api.core.v1.DownwardAPIProjection": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeFile" + }, + "title": "Items is a list of DownwardAPIVolume file\n+optional" + } + }, + "description": "Represents downward API info for projecting into a projected volume.\nNote that this is identical to a downwardAPI volume source without the default\nmode." + }, + "k8s.io.api.core.v1.DownwardAPIVolumeFile": { + "type": "object", + "properties": { + "path": { + "type": "string", + "title": "Required: Path is the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'" + }, + "fieldRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ObjectFieldSelector", + "title": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.\n+optional" + }, + "resourceFieldRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ResourceFieldSelector", + "title": "Selects a resource of the container: only resources limits and requests\n(limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.\n+optional" + }, + "mode": { + "type": "integer", + "format": "int32", + "title": "Optional: mode bits used to set permissions on this file, must be an octal value\nbetween 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + } + }, + "title": "DownwardAPIVolumeFile represents information to create the file containing the pod field" + }, + "k8s.io.api.core.v1.DownwardAPIVolumeSource": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeFile" + }, + "title": "Items is a list of downward API volume file\n+optional" + }, + "defaultMode": { + "type": "integer", + "format": "int32", + "title": "Optional: mode bits to use on created files by default. Must be a\nOptional: mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nDefaults to 0644.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + } + }, + "description": "DownwardAPIVolumeSource represents a volume containing downward API info.\nDownward API volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.EmptyDirVolumeSource": { + "type": "object", + "properties": { + "medium": { + "type": "string", + "title": "What type of storage medium should back this directory.\nThe default is \"\" which means to use the node's default medium.\nMust be an empty string (default) or Memory.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n+optional" + }, + "sizeLimit": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity", + "title": "Total amount of local storage required for this EmptyDir volume.\nThe size limit is also applicable for memory medium.\nThe maximum usage on memory medium EmptyDir would be the minimum value between\nthe SizeLimit specified here and the sum of memory limits of all containers in a pod.\nThe default is nil which means that the limit is undefined.\nMore info: http://kubernetes.io/docs/user-guide/volumes#emptydir\n+optional" + } + }, + "description": "Represents an empty directory for a pod.\nEmpty directory volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.EnvFromSource": { + "type": "object", + "properties": { + "prefix": { + "type": "string", + "title": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.\n+optional" + }, + "configMapRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ConfigMapEnvSource", + "title": "The ConfigMap to select from\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecretEnvSource", + "title": "The Secret to select from\n+optional" + } + }, + "title": "EnvFromSource represents the source of a set of ConfigMaps" + }, + "k8s.io.api.core.v1.EnvVar": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the environment variable. Must be a C_IDENTIFIER." + }, + "value": { + "type": "string", + "title": "Variable references $(VAR_NAME) are expanded\nusing the previous defined environment variables in the container and\nany service environment variables. If a variable cannot be resolved,\nthe reference in the input string will be unchanged. The $(VAR_NAME)\nsyntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped\nreferences will never be expanded, regardless of whether the variable\nexists or not.\nDefaults to \"\".\n+optional" + }, + "valueFrom": { + "$ref": "#/definitions/k8s.io.api.core.v1.EnvVarSource", + "title": "Source for the environment variable's value. Cannot be used if value is not empty.\n+optional" + } + }, + "description": "EnvVar represents an environment variable present in a Container." + }, + "k8s.io.api.core.v1.EnvVarSource": { + "type": "object", + "properties": { + "fieldRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ObjectFieldSelector", + "title": "Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['\u003cKEY\u003e']`, `metadata.annotations['\u003cKEY\u003e']`,\nspec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.\n+optional" + }, + "resourceFieldRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ResourceFieldSelector", + "title": "Selects a resource of the container: only resources limits and requests\n(limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.\n+optional" + }, + "configMapKeyRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.ConfigMapKeySelector", + "title": "Selects a key of a ConfigMap.\n+optional" + }, + "secretKeyRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecretKeySelector", + "title": "Selects a key of a secret in the pod's namespace\n+optional" + } + }, + "description": "EnvVarSource represents a source for the value of an EnvVar." + }, + "k8s.io.api.core.v1.EphemeralContainer": { + "type": "object", + "properties": { + "ephemeralContainerCommon": { + "$ref": "#/definitions/k8s.io.api.core.v1.EphemeralContainerCommon", + "description": "Ephemeral containers have all of the fields of Container, plus additional fields\nspecific to ephemeral containers. Fields in common with Container are in the\nfollowing inlined struct so than an EphemeralContainer may easily be converted\nto a Container." + }, + "targetContainerName": { + "type": "string", + "title": "If set, the name of the container from PodSpec that this ephemeral container targets.\nThe ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.\nIf not set then the ephemeral container is run in whatever namespaces are shared\nfor the pod. Note that the container runtime must support this feature.\n+optional" + } + }, + "description": "An EphemeralContainer is a container that may be added temporarily to an existing pod for\nuser-initiated activities such as debugging. Ephemeral containers have no resource or\nscheduling guarantees, and they will not be restarted when they exit or when a pod is\nremoved or restarted. If an ephemeral container causes a pod to exceed its resource\nallocation, the pod may be evicted.\nEphemeral containers may not be added by directly updating the pod spec. They must be added\nvia the pod's ephemeralcontainers subresource, and they will appear in the pod spec\nonce added.\nThis is an alpha feature enabled by the EphemeralContainers feature flag." + }, + "k8s.io.api.core.v1.EphemeralContainerCommon": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the ephemeral container specified as a DNS_LABEL.\nThis name must be unique among all containers, init containers and ephemeral containers." + }, + "image": { + "type": "string", + "title": "Docker image name.\nMore info: https://kubernetes.io/docs/concepts/containers/images" + }, + "command": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Entrypoint array. Not executed within a shell.\nThe docker image's ENTRYPOINT is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax\ncan be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nCannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n+optional" + }, + "args": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Arguments to the entrypoint.\nThe docker image's CMD is used if this is not provided.\nVariable references $(VAR_NAME) are expanded using the container's environment. If a variable\ncannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax\ncan be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,\nregardless of whether the variable exists or not.\nCannot be updated.\nMore info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell\n+optional" + }, + "workingDir": { + "type": "string", + "title": "Container's working directory.\nIf not specified, the container runtime's default will be used, which\nmight be configured in the container image.\nCannot be updated.\n+optional" + }, + "ports": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.ContainerPort" + }, + "description": "Ports are not allowed for ephemeral containers." + }, + "envFrom": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.EnvFromSource" + }, + "title": "List of sources to populate environment variables in the container.\nThe keys defined within a source must be a C_IDENTIFIER. All invalid keys\nwill be reported as an event when the container is starting. When a key exists in multiple\nsources, the value associated with the last source will take precedence.\nValues defined by an Env with a duplicate key will take precedence.\nCannot be updated.\n+optional" + }, + "env": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.EnvVar" + }, + "title": "List of environment variables to set in the container.\nCannot be updated.\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "resources": { + "$ref": "#/definitions/k8s.io.api.core.v1.ResourceRequirements", + "title": "Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources\nalready allocated to the pod.\n+optional" + }, + "volumeMounts": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeMount" + }, + "title": "Pod volumes to mount into the container's filesystem.\nCannot be updated.\n+optional\n+patchMergeKey=mountPath\n+patchStrategy=merge" + }, + "volumeDevices": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeDevice" + }, + "title": "volumeDevices is the list of block devices to be used by the container.\n+patchMergeKey=devicePath\n+patchStrategy=merge\n+optional" + }, + "livenessProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "Probes are not allowed for ephemeral containers.\n+optional" + }, + "readinessProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "Probes are not allowed for ephemeral containers.\n+optional" + }, + "startupProbe": { + "$ref": "#/definitions/k8s.io.api.core.v1.Probe", + "title": "Probes are not allowed for ephemeral containers.\n+optional" + }, + "lifecycle": { + "$ref": "#/definitions/k8s.io.api.core.v1.Lifecycle", + "title": "Lifecycle is not allowed for ephemeral containers.\n+optional" + }, + "terminationMessagePath": { + "type": "string", + "title": "Optional: Path at which the file to which the container's termination message\nwill be written is mounted into the container's filesystem.\nMessage written is intended to be brief final status, such as an assertion failure message.\nWill be truncated by the node if greater than 4096 bytes. The total message length across\nall containers will be limited to 12kb.\nDefaults to /dev/termination-log.\nCannot be updated.\n+optional" + }, + "terminationMessagePolicy": { + "type": "string", + "title": "Indicate how the termination message should be populated. File will use the contents of\nterminationMessagePath to populate the container status message on both success and failure.\nFallbackToLogsOnError will use the last chunk of container log output if the termination\nmessage file is empty and the container exited with an error.\nThe log output is limited to 2048 bytes or 80 lines, whichever is smaller.\nDefaults to File.\nCannot be updated.\n+optional" + }, + "imagePullPolicy": { + "type": "string", + "title": "Image pull policy.\nOne of Always, Never, IfNotPresent.\nDefaults to Always if :latest tag is specified, or IfNotPresent otherwise.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/containers/images#updating-images\n+optional" + }, + "securityContext": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecurityContext", + "title": "SecurityContext is not allowed for ephemeral containers.\n+optional" + }, + "stdin": { + "type": "boolean", + "format": "boolean", + "title": "Whether this container should allocate a buffer for stdin in the container runtime. If this\nis not set, reads from stdin in the container will always result in EOF.\nDefault is false.\n+optional" + }, + "stdinOnce": { + "type": "boolean", + "format": "boolean", + "title": "Whether the container runtime should close the stdin channel after it has been opened by\na single attach. When stdin is true the stdin stream will remain open across multiple attach\nsessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the\nfirst client attaches to stdin, and then remains open and accepts data until the client disconnects,\nat which time stdin is closed and remains closed until the container is restarted. If this\nflag is false, a container processes that reads from stdin will never receive an EOF.\nDefault is false\n+optional" + }, + "tty": { + "type": "boolean", + "format": "boolean", + "title": "Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.\nDefault is false.\n+optional" + } + }, + "description": "EphemeralContainerCommon is a copy of all fields in Container to be inlined in\nEphemeralContainer. This separate type allows easy conversion from EphemeralContainer\nto Container and allows separate documentation for the fields of EphemeralContainer.\nWhen a new field is added to Container it must be added here as well." + }, + "k8s.io.api.core.v1.EphemeralVolumeSource": { + "type": "object", + "properties": { + "volumeClaimTemplate": { + "$ref": "#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimTemplate", + "description": "Will be used to create a stand-alone PVC to provision the volume.\nThe pod in which this EphemeralVolumeSource is embedded will be the\nowner of the PVC, i.e. the PVC will be deleted together with the\npod. The name of the PVC will be `\u003cpod name\u003e-\u003cvolume name\u003e` where\n`\u003cvolume name\u003e` is the name from the `PodSpec.Volumes` array\nentry. Pod validation will reject the pod if the concatenated name\nis not valid for a PVC (for example, too long).\n\nAn existing PVC with that name that is not owned by the pod\nwill *not* be used for the pod to avoid using an unrelated\nvolume by mistake. Starting the pod is then blocked until\nthe unrelated PVC is removed. If such a pre-created PVC is\nmeant to be used by the pod, the PVC has to updated with an\nowner reference to the pod once the pod exists. Normally\nthis should not be necessary, but it may be useful when\nmanually reconstructing a broken cluster.\n\nThis field is read-only and no changes will be made by Kubernetes\nto the PVC after it has been created.\n\nRequired, must not be nil." + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Specifies a read-only configuration for the volume.\nDefaults to false (read/write).\n+optional" + } + }, + "description": "Represents an ephemeral volume that is handled by a normal storage driver." + }, + "k8s.io.api.core.v1.ExecAction": { + "type": "object", + "properties": { + "command": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Command is the command line to execute inside the container, the working directory for the\ncommand is root ('/') in the container's filesystem. The command is simply exec'd, it is\nnot run inside a shell, so traditional shell instructions ('|', etc) won't work. To use\na shell, you need to explicitly call out to that shell.\nExit status of 0 is treated as live/healthy and non-zero is unhealthy.\n+optional" + } + }, + "description": "ExecAction describes a \"run in container\" action." + }, + "k8s.io.api.core.v1.FCVolumeSource": { + "type": "object", + "properties": { + "targetWWNs": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Optional: FC target worldwide names (WWNs)\n+optional" + }, + "lun": { + "type": "integer", + "format": "int32", + "title": "Optional: FC target lun number\n+optional" + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nTODO: how do we prevent errors in the filesystem from compromising the machine\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Optional: Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "title": "Optional: FC volume world wide identifiers (wwids)\nEither wwids or combination of targetWWNs and lun must be set, but not both simultaneously.\n+optional" + } + }, + "description": "Represents a Fibre Channel volume.\nFibre Channel volumes can only be mounted as read/write once.\nFibre Channel volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.FlexVolumeSource": { + "type": "object", + "properties": { + "driver": { + "type": "string", + "description": "Driver is the name of the driver to use for this volume." + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". The default filesystem depends on FlexVolume script.\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "Optional: SecretRef is reference to the secret object containing\nsensitive information to pass to the plugin scripts. This may be\nempty if no secret object is specified. If the secret object\ncontains more than one secret, all secrets are passed to the plugin\nscripts.\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Optional: Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + }, + "options": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Optional: Extra command options if any.\n+optional" + } + }, + "description": "FlexVolume represents a generic volume resource that is\nprovisioned/attached using an exec based plugin." + }, + "k8s.io.api.core.v1.FlockerVolumeSource": { + "type": "object", + "properties": { + "datasetName": { + "type": "string", + "title": "Name of the dataset stored as metadata -\u003e name on the dataset for Flocker\nshould be considered as deprecated\n+optional" + }, + "datasetUUID": { + "type": "string", + "title": "UUID of the dataset. This is unique identifier of a Flocker dataset\n+optional" + } + }, + "description": "Represents a Flocker volume mounted by the Flocker agent.\nOne and only one of datasetName and datasetUUID should be set.\nFlocker volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.GCEPersistentDiskVolumeSource": { + "type": "object", + "properties": { + "pdName": { + "type": "string", + "title": "Unique name of the PD resource in GCE. Used to identify the disk in GCE.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk" + }, + "fsType": { + "type": "string", + "title": "Filesystem type of the volume that you want to mount.\nTip: Ensure that the filesystem type is supported by the host operating system.\nExamples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\nTODO: how do we prevent errors in the filesystem from compromising the machine\n+optional" + }, + "partition": { + "type": "integer", + "format": "int32", + "title": "The partition in the volume that you want to mount.\nIf omitted, the default is to mount by volume name.\nExamples: For volume /dev/sda1, you specify the partition as \"1\".\nSimilarly, the volume partition for /dev/sda is \"0\" (or you can leave the property empty).\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force the ReadOnly setting in VolumeMounts.\nDefaults to false.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n+optional" + } + }, + "description": "Represents a Persistent Disk resource in Google Compute Engine.\n\nA GCE PD must exist before mounting to a container. The disk must\nalso be in the same GCE project and zone as the kubelet. A GCE PD\ncan only be mounted as read/write once or read-only many times. GCE\nPDs support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.GitRepoVolumeSource": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "title": "Repository URL" + }, + "revision": { + "type": "string", + "title": "Commit hash for the specified revision.\n+optional" + }, + "directory": { + "type": "string", + "title": "Target directory name.\nMust not contain or start with '..'. If '.' is supplied, the volume directory will be the\ngit repository. Otherwise, if specified, the volume will contain the git repository in\nthe subdirectory with the given name.\n+optional" + } + }, + "description": "Represents a volume that is populated with the contents of a git repository.\nGit repo volumes do not support ownership management.\nGit repo volumes support SELinux relabeling.\n\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\ninto the Pod's container." + }, + "k8s.io.api.core.v1.GlusterfsVolumeSource": { + "type": "object", + "properties": { + "endpoints": { + "type": "string", + "title": "EndpointsName is the endpoint name that details Glusterfs topology.\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + }, + "path": { + "type": "string", + "title": "Path is the Glusterfs volume path.\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.\nDefaults to false.\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod\n+optional" + } + }, + "description": "Represents a Glusterfs mount that lasts the lifetime of a pod.\nGlusterfs volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.HTTPGetAction": { + "type": "object", + "properties": { + "path": { + "type": "string", + "title": "Path to access on the HTTP server.\n+optional" + }, + "port": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "description": "Name or number of the port to access on the container.\nNumber must be in the range 1 to 65535.\nName must be an IANA_SVC_NAME." + }, + "host": { + "type": "string", + "title": "Host name to connect to, defaults to the pod IP. You probably want to set\n\"Host\" in httpHeaders instead.\n+optional" + }, + "scheme": { + "type": "string", + "title": "Scheme to use for connecting to the host.\nDefaults to HTTP.\n+optional" + }, + "httpHeaders": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.HTTPHeader" + }, + "title": "Custom headers to set in the request. HTTP allows repeated headers.\n+optional" + } + }, + "description": "HTTPGetAction describes an action based on HTTP Get requests." + }, + "k8s.io.api.core.v1.HTTPHeader": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "The header field name" + }, + "value": { + "type": "string", + "title": "The header field value" + } + }, + "title": "HTTPHeader describes a custom header to be used in HTTP probes" + }, + "k8s.io.api.core.v1.Handler": { + "type": "object", + "properties": { + "exec": { + "$ref": "#/definitions/k8s.io.api.core.v1.ExecAction", + "title": "One and only one of the following should be specified.\nExec specifies the action to take.\n+optional" + }, + "httpGet": { + "$ref": "#/definitions/k8s.io.api.core.v1.HTTPGetAction", + "title": "HTTPGet specifies the http request to perform.\n+optional" + }, + "tcpSocket": { + "$ref": "#/definitions/k8s.io.api.core.v1.TCPSocketAction", + "title": "TCPSocket specifies an action involving a TCP port.\nTCP hooks not yet supported\nTODO: implement a realistic TCP lifecycle hook\n+optional" + } + }, + "description": "Handler defines a specific action that should be taken\nTODO: pass structured data to these actions, and document that data here." + }, + "k8s.io.api.core.v1.HostAlias": { + "type": "object", + "properties": { + "ip": { + "type": "string", + "description": "IP address of the host file entry." + }, + "hostnames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Hostnames for the above IP address." + } + }, + "description": "HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the\npod's hosts file." + }, + "k8s.io.api.core.v1.HostPathVolumeSource": { + "type": "object", + "properties": { + "path": { + "type": "string", + "title": "Path of the directory on the host.\nIf the path is a symlink, it will follow the link to the real path.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath" + }, + "type": { + "type": "string", + "title": "Type for HostPath Volume\nDefaults to \"\"\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n+optional" + } + }, + "description": "Represents a host path mapped into a pod.\nHost path volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.ISCSIVolumeSource": { + "type": "object", + "properties": { + "targetPortal": { + "type": "string", + "description": "iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port\nis other than default (typically TCP ports 860 and 3260)." + }, + "iqn": { + "type": "string", + "description": "Target iSCSI Qualified Name." + }, + "lun": { + "type": "integer", + "format": "int32", + "description": "iSCSI Target Lun number." + }, + "iscsiInterface": { + "type": "string", + "title": "iSCSI Interface Name that uses an iSCSI transport.\nDefaults to 'default' (tcp).\n+optional" + }, + "fsType": { + "type": "string", + "title": "Filesystem type of the volume that you want to mount.\nTip: Ensure that the filesystem type is supported by the host operating system.\nExamples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi\nTODO: how do we prevent errors in the filesystem from compromising the machine\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force the ReadOnly setting in VolumeMounts.\nDefaults to false.\n+optional" + }, + "portals": { + "type": "array", + "items": { + "type": "string" + }, + "title": "iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port\nis other than default (typically TCP ports 860 and 3260).\n+optional" + }, + "chapAuthDiscovery": { + "type": "boolean", + "format": "boolean", + "title": "whether support iSCSI Discovery CHAP authentication\n+optional" + }, + "chapAuthSession": { + "type": "boolean", + "format": "boolean", + "title": "whether support iSCSI Session CHAP authentication\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "CHAP Secret for iSCSI target and initiator authentication\n+optional" + }, + "initiatorName": { + "type": "string", + "title": "Custom iSCSI Initiator Name.\nIf initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface\n\u003ctarget portal\u003e:\u003cvolume name\u003e will be created for the connection.\n+optional" + } + }, + "description": "Represents an ISCSI disk.\nISCSI volumes can only be mounted as read/write once.\nISCSI volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.KeyToPath": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The key to project." + }, + "path": { + "type": "string", + "description": "The relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'." + }, + "mode": { + "type": "integer", + "format": "int32", + "title": "Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + } + }, + "description": "Maps a string key to a path within a volume." + }, + "k8s.io.api.core.v1.Lifecycle": { + "type": "object", + "properties": { + "postStart": { + "$ref": "#/definitions/k8s.io.api.core.v1.Handler", + "title": "PostStart is called immediately after a container is created. If the handler fails,\nthe container is terminated and restarted according to its restart policy.\nOther management of the container blocks until the hook completes.\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n+optional" + }, + "preStop": { + "$ref": "#/definitions/k8s.io.api.core.v1.Handler", + "title": "PreStop is called immediately before a container is terminated due to an\nAPI request or management event such as liveness/startup probe failure,\npreemption, resource contention, etc. The handler is not called if the\ncontainer crashes or exits. The reason for termination is passed to the\nhandler. The Pod's termination grace period countdown begins before the\nPreStop hooked is executed. Regardless of the outcome of the handler, the\ncontainer will eventually terminate within the Pod's termination grace\nperiod. Other management of the container blocks until the hook completes\nor until the termination grace period is reached.\nMore info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks\n+optional" + } + }, + "description": "Lifecycle describes actions that the management system should take in response to container lifecycle\nevents. For the PostStart and PreStop lifecycle handlers, management of the container blocks\nuntil the action is complete, unless the container process fails, in which case the handler is aborted." + }, + "k8s.io.api.core.v1.LocalObjectReference": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?\n+optional" + } + }, + "description": "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace." + }, + "k8s.io.api.core.v1.NFSVolumeSource": { + "type": "object", + "properties": { + "server": { + "type": "string", + "title": "Server is the hostname or IP address of the NFS server.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "path": { + "type": "string", + "title": "Path that is exported by the NFS server.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force\nthe NFS export to be mounted with read-only permissions.\nDefaults to false.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n+optional" + } + }, + "description": "Represents an NFS mount that lasts the lifetime of a pod.\nNFS volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.NodeAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeSelector", + "title": "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to an update), the system\nmay or may not try to eventually evict the pod from its node.\n+optional" + }, + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.PreferredSchedulingTerm" + }, + "title": "The scheduler will prefer to schedule pods to nodes that satisfy\nthe affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node matches the corresponding matchExpressions; the\nnode(s) with the highest sum are the most preferred.\n+optional" + } + }, + "description": "Node affinity is a group of node affinity scheduling rules." + }, + "k8s.io.api.core.v1.NodeSelector": { + "type": "object", + "properties": { + "nodeSelectorTerms": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeSelectorTerm" + }, + "description": "Required. A list of node selector terms. The terms are ORed." + } + }, + "description": "A node selector represents the union of the results of one or more label queries\nover a set of nodes; that is, it represents the OR of the selectors represented\nby the node selector terms." + }, + "k8s.io.api.core.v1.NodeSelectorRequirement": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The label key that the selector applies to." + }, + "operator": { + "type": "string", + "description": "Represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "title": "An array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. If the operator is Gt or Lt, the values\narray must have a single element, which will be interpreted as an integer.\nThis array is replaced during a strategic merge patch.\n+optional" + } + }, + "description": "A node selector requirement is a selector that contains values, a key, and an operator\nthat relates the key and values." + }, + "k8s.io.api.core.v1.NodeSelectorTerm": { + "type": "object", + "properties": { + "matchExpressions": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeSelectorRequirement" + }, + "title": "A list of node selector requirements by node's labels.\n+optional" + }, + "matchFields": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeSelectorRequirement" + }, + "title": "A list of node selector requirements by node's fields.\n+optional" + } + }, + "description": "A null or empty node selector term matches no objects. The requirements of\nthem are ANDed.\nThe TopologySelectorTerm type implements a subset of the NodeSelectorTerm." + }, + "k8s.io.api.core.v1.ObjectFieldSelector": { + "type": "object", + "properties": { + "apiVersion": { + "type": "string", + "title": "Version of the schema the FieldPath is written in terms of, defaults to \"v1\".\n+optional" + }, + "fieldPath": { + "type": "string", + "description": "Path of the field to select in the specified API version." + } + }, + "description": "ObjectFieldSelector selects an APIVersioned field of an object." + }, + "k8s.io.api.core.v1.PersistentVolumeClaimSpec": { + "type": "object", + "properties": { + "accessModes": { + "type": "array", + "items": { + "type": "string" + }, + "title": "AccessModes contains the desired access modes the volume should have.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1\n+optional" + }, + "selector": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector", + "title": "A label query over volumes to consider for binding.\n+optional" + }, + "resources": { + "$ref": "#/definitions/k8s.io.api.core.v1.ResourceRequirements", + "title": "Resources represents the minimum resources the volume should have.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources\n+optional" + }, + "volumeName": { + "type": "string", + "title": "VolumeName is the binding reference to the PersistentVolume backing this claim.\n+optional" + }, + "storageClassName": { + "type": "string", + "title": "Name of the StorageClass required by the claim.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1\n+optional" + }, + "volumeMode": { + "type": "string", + "title": "volumeMode defines what type of volume is required by the claim.\nValue of Filesystem is implied when not included in claim spec.\n+optional" + }, + "dataSource": { + "$ref": "#/definitions/k8s.io.api.core.v1.TypedLocalObjectReference", + "title": "This field can be used to specify either:\n* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)\n* An existing PVC (PersistentVolumeClaim)\n* An existing custom resource that implements data population (Alpha)\nIn order to use custom resource types that implement data population,\nthe AnyVolumeDataSource feature gate must be enabled.\nIf the provisioner or an external controller can support the specified data source,\nit will create a new volume based on the contents of the specified data source.\n+optional" + } + }, + "title": "PersistentVolumeClaimSpec describes the common attributes of storage devices\nand allows a Source for provider-specific attributes" + }, + "k8s.io.api.core.v1.PersistentVolumeClaimTemplate": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "May contain labels and annotations that will be copied into the PVC\nwhen creating it. No other fields are allowed and will be rejected during\nvalidation.\n\n+optional" + }, + "spec": { + "$ref": "#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimSpec", + "description": "The specification for the PersistentVolumeClaim. The entire content is\ncopied unchanged into the PVC that gets created from this\ntemplate. The same fields as in a PersistentVolumeClaim\nare also valid here." + } + }, + "description": "PersistentVolumeClaimTemplate is used to produce\nPersistentVolumeClaim objects as part of an EphemeralVolumeSource." + }, + "k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource": { + "type": "object", + "properties": { + "claimName": { + "type": "string", + "title": "ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Will force the ReadOnly setting in VolumeMounts.\nDefault false.\n+optional" + } + }, + "description": "PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.\nThis volume finds the bound PV and mounts that volume for the pod. A\nPersistentVolumeClaimVolumeSource is, essentially, a wrapper around another\ntype of volume that is owned by someone else (the system)." + }, + "k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource": { + "type": "object", + "properties": { + "pdID": { + "type": "string", + "title": "ID that identifies Photon Controller persistent disk" + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + }, + "description": "Represents a Photon Controller persistent disk resource." + }, + "k8s.io.api.core.v1.PodAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodAffinityTerm" + }, + "title": "If the affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\n+optional" + }, + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.WeightedPodAffinityTerm" + }, + "title": "The scheduler will prefer to schedule pods to nodes that satisfy\nthe affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\nnode(s) with the highest sum are the most preferred.\n+optional" + } + }, + "description": "Pod affinity is a group of inter pod affinity scheduling rules." + }, + "k8s.io.api.core.v1.PodAffinityTerm": { + "type": "object", + "properties": { + "labelSelector": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector", + "title": "A label query over a set of resources, in this case pods.\n+optional" + }, + "namespaces": { + "type": "array", + "items": { + "type": "string" + }, + "title": "namespaces specifies which namespaces the labelSelector applies to (matches against);\nnull or empty list means \"this pod's namespace\"\n+optional" + }, + "topologyKey": { + "type": "string", + "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching\nthe labelSelector in the specified namespaces, where co-located is defined as running on a node\nwhose value of the label with key topologyKey matches that of any node on which any of the\nselected pods is running.\nEmpty topologyKey is not allowed." + } + }, + "title": "Defines a set of pods (namely those matching the labelSelector\nrelative to the given namespace(s)) that this pod should be\nco-located (affinity) or not co-located (anti-affinity) with,\nwhere co-located is defined as running on a node whose value of\nthe label with key \u003ctopologyKey\u003e matches that of any node on which\na pod of the set of pods is running" + }, + "k8s.io.api.core.v1.PodAntiAffinity": { + "type": "object", + "properties": { + "requiredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodAffinityTerm" + }, + "title": "If the anti-affinity requirements specified by this field are not met at\nscheduling time, the pod will not be scheduled onto the node.\nIf the anti-affinity requirements specified by this field cease to be met\nat some point during pod execution (e.g. due to a pod label update), the\nsystem may or may not try to eventually evict the pod from its node.\nWhen there are multiple elements, the lists of nodes corresponding to each\npodAffinityTerm are intersected, i.e. all terms must be satisfied.\n+optional" + }, + "preferredDuringSchedulingIgnoredDuringExecution": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.WeightedPodAffinityTerm" + }, + "title": "The scheduler will prefer to schedule pods to nodes that satisfy\nthe anti-affinity expressions specified by this field, but it may choose\na node that violates one or more of the expressions. The node that is\nmost preferred is the one with the greatest sum of weights, i.e.\nfor each node that meets all of the scheduling requirements (resource\nrequest, requiredDuringScheduling anti-affinity expressions, etc.),\ncompute a sum by iterating through the elements of this field and adding\n\"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the\nnode(s) with the highest sum are the most preferred.\n+optional" + } + }, + "description": "Pod anti affinity is a group of inter pod anti affinity scheduling rules." + }, + "k8s.io.api.core.v1.PodDNSConfig": { + "type": "object", + "properties": { + "nameservers": { + "type": "array", + "items": { + "type": "string" + }, + "title": "A list of DNS name server IP addresses.\nThis will be appended to the base nameservers generated from DNSPolicy.\nDuplicated nameservers will be removed.\n+optional" + }, + "searches": { + "type": "array", + "items": { + "type": "string" + }, + "title": "A list of DNS search domains for host-name lookup.\nThis will be appended to the base search paths generated from DNSPolicy.\nDuplicated search paths will be removed.\n+optional" + }, + "options": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodDNSConfigOption" + }, + "title": "A list of DNS resolver options.\nThis will be merged with the base options generated from DNSPolicy.\nDuplicated entries will be removed. Resolution options given in Options\nwill override those that appear in the base DNSPolicy.\n+optional" + } + }, + "description": "PodDNSConfig defines the DNS parameters of a pod in addition to\nthose generated from DNSPolicy." + }, + "k8s.io.api.core.v1.PodDNSConfigOption": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Required." + }, + "value": { + "type": "string", + "title": "+optional" + } + }, + "description": "PodDNSConfigOption defines DNS resolver options of a pod." + }, + "k8s.io.api.core.v1.PodReadinessGate": { + "type": "object", + "properties": { + "conditionType": { + "type": "string", + "description": "ConditionType refers to a condition in the pod's condition list with matching type." + } + }, + "title": "PodReadinessGate contains the reference to a pod condition" + }, + "k8s.io.api.core.v1.PodSecurityContext": { + "type": "object", + "properties": { + "seLinuxOptions": { + "$ref": "#/definitions/k8s.io.api.core.v1.SELinuxOptions", + "title": "The SELinux context to be applied to all containers.\nIf unspecified, the container runtime will allocate a random SELinux context for each\ncontainer. May also be set in SecurityContext. If set in\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\ntakes precedence for that container.\n+optional" + }, + "windowsOptions": { + "$ref": "#/definitions/k8s.io.api.core.v1.WindowsSecurityContextOptions", + "title": "The Windows specific settings applied to all containers.\nIf unspecified, the options within a container's SecurityContext will be used.\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "runAsUser": { + "type": "string", + "format": "int64", + "title": "The UID to run the entrypoint of the container process.\nDefaults to user specified in image metadata if unspecified.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence\nfor that container.\n+optional" + }, + "runAsGroup": { + "type": "string", + "format": "int64", + "title": "The GID to run the entrypoint of the container process.\nUses runtime default if unset.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence\nfor that container.\n+optional" + }, + "runAsNonRoot": { + "type": "boolean", + "format": "boolean", + "title": "Indicates that the container must run as a non-root user.\nIf true, the Kubelet will validate the image at runtime to ensure that it\ndoes not run as UID 0 (root) and fail to start the container if it does.\nIf unset or false, no such validation will be performed.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "supplementalGroups": { + "type": "array", + "items": { + "type": "string", + "format": "int64" + }, + "title": "A list of groups applied to the first process run in each container, in addition\nto the container's primary GID. If unspecified, no groups will be added to\nany container.\n+optional" + }, + "fsGroup": { + "type": "string", + "format": "int64", + "description": "1. The owning GID will be the FSGroup\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\n+optional", + "title": "A special supplemental group that applies to all containers in a pod.\nSome volume types allow the Kubelet to change the ownership of that volume\nto be owned by the pod:" + }, + "sysctls": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.Sysctl" + }, + "title": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\nsysctls (by the container runtime) might fail to launch.\n+optional" + }, + "fsGroupChangePolicy": { + "type": "string", + "title": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\nbefore being exposed inside Pod. This field will only apply to\nvolume types which support fsGroup based ownership(and permissions).\nIt will have no effect on ephemeral volume types such as: secret, configmaps\nand emptydir.\nValid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\n+optional" + }, + "seccompProfile": { + "$ref": "#/definitions/k8s.io.api.core.v1.SeccompProfile", + "title": "The seccomp options to use by the containers in this pod.\n+optional" + } + }, + "description": "PodSecurityContext holds pod-level security attributes and common container settings.\nSome fields are also present in container.securityContext. Field values of\ncontainer.securityContext take precedence over field values of PodSecurityContext." + }, + "k8s.io.api.core.v1.PodSpec": { + "type": "object", + "properties": { + "volumes": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.Volume" + }, + "title": "List of volumes that can be mounted by containers belonging to the pod.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes\n+optional\n+patchMergeKey=name\n+patchStrategy=merge,retainKeys" + }, + "initContainers": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.Container" + }, + "title": "List of initialization containers belonging to the pod.\nInit containers are executed in order prior to containers being started. If any\ninit container fails, the pod is considered to have failed and is handled according\nto its restartPolicy. The name for an init container or normal container must be\nunique among all containers.\nInit containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes.\nThe resourceRequirements of an init container are taken into account during scheduling\nby finding the highest request/limit for each resource type, and then using the max of\nof that value or the sum of the normal containers. Limits are applied to init containers\nin a similar fashion.\nInit containers cannot currently be added or removed.\nCannot be updated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "containers": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.Container" + }, + "title": "List of containers belonging to the pod.\nContainers cannot currently be added or removed.\nThere must be at least one container in a Pod.\nCannot be updated.\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "ephemeralContainers": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.EphemeralContainer" + }, + "title": "List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing\npod to perform user-initiated actions such as debugging. This list cannot be specified when\ncreating a pod, and it cannot be modified by updating the pod spec. In order to add an\nephemeral container to an existing pod, use the pod's ephemeralcontainers subresource.\nThis field is alpha-level and is only honored by servers that enable the EphemeralContainers feature.\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "restartPolicy": { + "type": "string", + "title": "Restart policy for all containers within the pod.\nOne of Always, OnFailure, Never.\nDefault to Always.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy\n+optional" + }, + "terminationGracePeriodSeconds": { + "type": "string", + "format": "int64", + "title": "Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.\nValue must be non-negative integer. The value zero indicates delete immediately.\nIf this value is nil, the default grace period will be used instead.\nThe grace period is the duration in seconds after the processes running in the pod are sent\na termination signal and the time when the processes are forcibly halted with a kill signal.\nSet this value longer than the expected cleanup time for your process.\nDefaults to 30 seconds.\n+optional" + }, + "activeDeadlineSeconds": { + "type": "string", + "format": "int64", + "title": "Optional duration in seconds the pod may be active on the node relative to\nStartTime before the system will actively try to mark it failed and kill associated containers.\nValue must be a positive integer.\n+optional" + }, + "dnsPolicy": { + "type": "string", + "title": "Set DNS policy for the pod.\nDefaults to \"ClusterFirst\".\nValid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.\nDNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.\nTo have DNS options set along with hostNetwork, you have to specify DNS policy\nexplicitly to 'ClusterFirstWithHostNet'.\n+optional" + }, + "nodeSelector": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "NodeSelector is a selector which must be true for the pod to fit on a node.\nSelector which must match a node's labels for the pod to be scheduled on that node.\nMore info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/\n+optional" + }, + "serviceAccountName": { + "type": "string", + "title": "ServiceAccountName is the name of the ServiceAccount to use to run this pod.\nMore info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/\n+optional" + }, + "serviceAccount": { + "type": "string", + "title": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.\nDeprecated: Use serviceAccountName instead.\n+k8s:conversion-gen=false\n+optional" + }, + "automountServiceAccountToken": { + "type": "boolean", + "format": "boolean", + "title": "AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.\n+optional" + }, + "nodeName": { + "type": "string", + "title": "NodeName is a request to schedule this pod onto a specific node. If it is non-empty,\nthe scheduler simply schedules this pod onto that node, assuming that it fits resource\nrequirements.\n+optional" + }, + "hostNetwork": { + "type": "boolean", + "format": "boolean", + "title": "Host networking requested for this pod. Use the host's network namespace.\nIf this option is set, the ports that will be used must be specified.\nDefault to false.\n+k8s:conversion-gen=false\n+optional" + }, + "hostPID": { + "type": "boolean", + "format": "boolean", + "title": "Use the host's pid namespace.\nOptional: Default to false.\n+k8s:conversion-gen=false\n+optional" + }, + "hostIPC": { + "type": "boolean", + "format": "boolean", + "title": "Use the host's ipc namespace.\nOptional: Default to false.\n+k8s:conversion-gen=false\n+optional" + }, + "shareProcessNamespace": { + "type": "boolean", + "format": "boolean", + "title": "Share a single process namespace between all of the containers in a pod.\nWhen this is set containers will be able to view and signal processes from other containers\nin the same pod, and the first process in each container will not be assigned PID 1.\nHostPID and ShareProcessNamespace cannot both be set.\nOptional: Default to false.\n+k8s:conversion-gen=false\n+optional" + }, + "securityContext": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodSecurityContext", + "title": "SecurityContext holds pod-level security attributes and common container settings.\nOptional: Defaults to empty. See type description for default values of each field.\n+optional" + }, + "imagePullSecrets": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference" + }, + "title": "ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.\nIf specified, these secrets will be passed to individual puller implementations for them to use. For example,\nin the case of docker, only DockerConfig type secrets are honored.\nMore info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod\n+optional\n+patchMergeKey=name\n+patchStrategy=merge" + }, + "hostname": { + "type": "string", + "title": "Specifies the hostname of the Pod\nIf not specified, the pod's hostname will be set to a system-defined value.\n+optional" + }, + "subdomain": { + "type": "string", + "title": "If specified, the fully qualified Pod hostname will be \"\u003chostname\u003e.\u003csubdomain\u003e.\u003cpod namespace\u003e.svc.\u003ccluster domain\u003e\".\nIf not specified, the pod will not have a domainname at all.\n+optional" + }, + "affinity": { + "$ref": "#/definitions/k8s.io.api.core.v1.Affinity", + "title": "If specified, the pod's scheduling constraints\n+optional" + }, + "schedulerName": { + "type": "string", + "title": "If specified, the pod will be dispatched by specified scheduler.\nIf not specified, the pod will be dispatched by default scheduler.\n+optional" + }, + "tolerations": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.Toleration" + }, + "title": "If specified, the pod's tolerations.\n+optional" + }, + "hostAliases": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.HostAlias" + }, + "title": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts\nfile if specified. This is only valid for non-hostNetwork pods.\n+optional\n+patchMergeKey=ip\n+patchStrategy=merge" + }, + "priorityClassName": { + "type": "string", + "title": "If specified, indicates the pod's priority. \"system-node-critical\" and\n\"system-cluster-critical\" are two special keywords which indicate the\nhighest priorities with the former being the highest priority. Any other\nname must be defined by creating a PriorityClass object with that name.\nIf not specified, the pod priority will be default or zero if there is no\ndefault.\n+optional" + }, + "priority": { + "type": "integer", + "format": "int32", + "title": "The priority value. Various system components use this field to find the\npriority of the pod. When Priority Admission Controller is enabled, it\nprevents users from setting this field. The admission controller populates\nthis field from PriorityClassName.\nThe higher the value, the higher the priority.\n+optional" + }, + "dnsConfig": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodDNSConfig", + "title": "Specifies the DNS parameters of a pod.\nParameters specified here will be merged to the generated DNS\nconfiguration based on DNSPolicy.\n+optional" + }, + "readinessGates": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodReadinessGate" + }, + "title": "If specified, all readiness gates will be evaluated for pod readiness.\nA pod is ready when all its containers are ready AND\nall conditions specified in the readiness gates have status equal to \"True\"\nMore info: https://git.k8s.io/enhancements/keps/sig-network/0007-pod-ready%2B%2B.md\n+optional" + }, + "runtimeClassName": { + "type": "string", + "title": "RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used\nto run this pod. If no RuntimeClass resource matches the named class, the pod will not be run.\nIf unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an\nempty definition that uses the default runtime handler.\nMore info: https://git.k8s.io/enhancements/keps/sig-node/runtime-class.md\nThis is a beta feature as of Kubernetes v1.14.\n+optional" + }, + "enableServiceLinks": { + "type": "boolean", + "format": "boolean", + "title": "EnableServiceLinks indicates whether information about services should be injected into pod's\nenvironment variables, matching the syntax of Docker links.\nOptional: Defaults to true.\n+optional" + }, + "preemptionPolicy": { + "type": "string", + "title": "PreemptionPolicy is the Policy for preempting pods with lower priority.\nOne of Never, PreemptLowerPriority.\nDefaults to PreemptLowerPriority if unset.\nThis field is beta-level, gated by the NonPreemptingPriority feature-gate.\n+optional" + }, + "overhead": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity" + }, + "title": "Overhead represents the resource overhead associated with running a pod for a given RuntimeClass.\nThis field will be autopopulated at admission time by the RuntimeClass admission controller. If\nthe RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests.\nThe RuntimeClass admission controller will reject Pod create requests which have the overhead already\nset. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value\ndefined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero.\nMore info: https://git.k8s.io/enhancements/keps/sig-node/20190226-pod-overhead.md\nThis field is alpha-level as of Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.\n+optional" + }, + "topologySpreadConstraints": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.TopologySpreadConstraint" + }, + "title": "TopologySpreadConstraints describes how a group of pods ought to spread across topology\ndomains. Scheduler will schedule pods in a way which abides by the constraints.\nAll topologySpreadConstraints are ANDed.\n+optional\n+patchMergeKey=topologyKey\n+patchStrategy=merge\n+listType=map\n+listMapKey=topologyKey\n+listMapKey=whenUnsatisfiable" + }, + "setHostnameAsFQDN": { + "type": "boolean", + "format": "boolean", + "title": "If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default).\nIn Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname).\nIn Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\\\SYSTEM\\\\CurrentControlSet\\\\Services\\\\Tcpip\\\\Parameters to FQDN.\nIf a pod does not have FQDN, this has no effect.\nDefault to false.\n+optional" + } + }, + "description": "PodSpec is a description of a pod." + }, + "k8s.io.api.core.v1.PodTemplateSpec": { + "type": "object", + "properties": { + "metadata": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "title": "Standard object's metadata.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata\n+optional" + }, + "spec": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodSpec", + "title": "Specification of the desired behavior of the pod.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status\n+optional" + } + }, + "title": "PodTemplateSpec describes the data a pod should have when created from a template" + }, + "k8s.io.api.core.v1.PortworxVolumeSource": { + "type": "object", + "properties": { + "volumeID": { + "type": "string", + "title": "VolumeID uniquely identifies a Portworx volume" + }, + "fsType": { + "type": "string", + "description": "FSType represents the filesystem type to mount\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified." + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + } + }, + "description": "PortworxVolumeSource represents a Portworx volume resource." + }, + "k8s.io.api.core.v1.PreferredSchedulingTerm": { + "type": "object", + "properties": { + "weight": { + "type": "integer", + "format": "int32", + "description": "Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100." + }, + "preference": { + "$ref": "#/definitions/k8s.io.api.core.v1.NodeSelectorTerm", + "description": "A node selector term, associated with the corresponding weight." + } + }, + "description": "An empty preferred scheduling term matches all objects with implicit weight 0\n(i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op)." + }, + "k8s.io.api.core.v1.Probe": { + "type": "object", + "properties": { + "handler": { + "$ref": "#/definitions/k8s.io.api.core.v1.Handler", + "title": "The action taken to determine the health of a container" + }, + "initialDelaySeconds": { + "type": "integer", + "format": "int32", + "title": "Number of seconds after the container has started before liveness probes are initiated.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n+optional" + }, + "timeoutSeconds": { + "type": "integer", + "format": "int32", + "title": "Number of seconds after which the probe times out.\nDefaults to 1 second. Minimum value is 1.\nMore info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes\n+optional" + }, + "periodSeconds": { + "type": "integer", + "format": "int32", + "title": "How often (in seconds) to perform the probe.\nDefault to 10 seconds. Minimum value is 1.\n+optional" + }, + "successThreshold": { + "type": "integer", + "format": "int32", + "title": "Minimum consecutive successes for the probe to be considered successful after having failed.\nDefaults to 1. Must be 1 for liveness and startup. Minimum value is 1.\n+optional" + }, + "failureThreshold": { + "type": "integer", + "format": "int32", + "title": "Minimum consecutive failures for the probe to be considered failed after having succeeded.\nDefaults to 3. Minimum value is 1.\n+optional" + } + }, + "description": "Probe describes a health check to be performed against a container to determine whether it is\nalive or ready to receive traffic." + }, + "k8s.io.api.core.v1.ProjectedVolumeSource": { + "type": "object", + "properties": { + "sources": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeProjection" + }, + "title": "list of volume projections\n+optional" + }, + "defaultMode": { + "type": "integer", + "format": "int32", + "title": "Mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + } + }, + "title": "Represents a projected volume source" + }, + "k8s.io.api.core.v1.QuobyteVolumeSource": { + "type": "object", + "properties": { + "registry": { + "type": "string", + "title": "Registry represents a single or multiple Quobyte Registry services\nspecified as a string as host:port pair (multiple entries are separated with commas)\nwhich acts as the central registry for volumes" + }, + "volume": { + "type": "string", + "description": "Volume is a string that references an already created Quobyte volume by name." + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.\nDefaults to false.\n+optional" + }, + "user": { + "type": "string", + "title": "User to map volume access to\nDefaults to serivceaccount user\n+optional" + }, + "group": { + "type": "string", + "title": "Group to map volume access to\nDefault is no group\n+optional" + }, + "tenant": { + "type": "string", + "title": "Tenant owning the given Quobyte volume in the Backend\nUsed with dynamically provisioned Quobyte volumes, value is set by the plugin\n+optional" + } + }, + "description": "Represents a Quobyte mount that lasts the lifetime of a pod.\nQuobyte volumes do not support ownership management or SELinux relabeling." + }, + "k8s.io.api.core.v1.RBDVolumeSource": { + "type": "object", + "properties": { + "monitors": { + "type": "array", + "items": { + "type": "string" + }, + "title": "A collection of Ceph monitors.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + }, + "image": { + "type": "string", + "title": "The rados image name.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it" + }, + "fsType": { + "type": "string", + "title": "Filesystem type of the volume that you want to mount.\nTip: Ensure that the filesystem type is supported by the host operating system.\nExamples: \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#rbd\nTODO: how do we prevent errors in the filesystem from compromising the machine\n+optional" + }, + "pool": { + "type": "string", + "title": "The rados pool name.\nDefault is rbd.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n+optional" + }, + "user": { + "type": "string", + "title": "The rados user name.\nDefault is admin.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n+optional" + }, + "keyring": { + "type": "string", + "title": "Keyring is the path to key ring for RBDUser.\nDefault is /etc/ceph/keyring.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n+optional" + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "SecretRef is name of the authentication secret for RBDUser. If provided\noverrides keyring.\nDefault is nil.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "ReadOnly here will force the ReadOnly setting in VolumeMounts.\nDefaults to false.\nMore info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it\n+optional" + } + }, + "description": "Represents a Rados Block Device mount that lasts the lifetime of a pod.\nRBD volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.ResourceFieldSelector": { + "type": "object", + "properties": { + "containerName": { + "type": "string", + "title": "Container name: required for volumes, optional for env vars\n+optional" + }, + "resource": { + "type": "string", + "title": "Required: resource to select" + }, + "divisor": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity", + "title": "Specifies the output format of the exposed resources, defaults to \"1\"\n+optional" + } + }, + "title": "ResourceFieldSelector represents container resources (cpu, memory) and their output format" + }, + "k8s.io.api.core.v1.ResourceRequirements": { + "type": "object", + "properties": { + "limits": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity" + }, + "title": "Limits describes the maximum amount of compute resources allowed.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\n+optional" + }, + "requests": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.api.resource.Quantity" + }, + "title": "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/\n+optional" + } + }, + "description": "ResourceRequirements describes the compute resource requirements." + }, + "k8s.io.api.core.v1.SELinuxOptions": { + "type": "object", + "properties": { + "user": { + "type": "string", + "title": "User is a SELinux user label that applies to the container.\n+optional" + }, + "role": { + "type": "string", + "title": "Role is a SELinux role label that applies to the container.\n+optional" + }, + "type": { + "type": "string", + "title": "Type is a SELinux type label that applies to the container.\n+optional" + }, + "level": { + "type": "string", + "title": "Level is SELinux level label that applies to the container.\n+optional" + } + }, + "title": "SELinuxOptions are the labels to be applied to the container" + }, + "k8s.io.api.core.v1.ScaleIOVolumeSource": { + "type": "object", + "properties": { + "gateway": { + "type": "string", + "description": "The host address of the ScaleIO API Gateway." + }, + "system": { + "type": "string", + "description": "The name of the storage system as configured in ScaleIO." + }, + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "description": "SecretRef references to the secret for ScaleIO user and other\nsensitive information. If this is not provided, Login operation will fail." + }, + "sslEnabled": { + "type": "boolean", + "format": "boolean", + "title": "Flag to enable/disable SSL communication with Gateway, default false\n+optional" + }, + "protectionDomain": { + "type": "string", + "title": "The name of the ScaleIO Protection Domain for the configured storage.\n+optional" + }, + "storagePool": { + "type": "string", + "title": "The ScaleIO Storage Pool associated with the protection domain.\n+optional" + }, + "storageMode": { + "type": "string", + "title": "Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.\nDefault is ThinProvisioned.\n+optional" + }, + "volumeName": { + "type": "string", + "description": "The name of a volume already created in the ScaleIO system\nthat is associated with this volume source." + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\".\nDefault is \"xfs\".\n+optional" + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" + } + }, + "title": "ScaleIOVolumeSource represents a persistent ScaleIO volume" + }, + "k8s.io.api.core.v1.SeccompProfile": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Localhost - a profile defined in a file on the node should be used.\nRuntimeDefault - the container runtime default profile should be used.\nUnconfined - no profile should be applied.\n+unionDiscriminator", + "title": "type indicates which kind of seccomp profile will be applied.\nValid options are:" + }, + "localhostProfile": { + "type": "string", + "title": "localhostProfile indicates a profile defined in a file on the node should be used.\nThe profile must be preconfigured on the node to work.\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\nMust only be set if type is \"Localhost\".\n+optional" + } + }, + "title": "SeccompProfile defines a pod/container's seccomp profile settings.\nOnly one profile source may be set.\n+union" + }, + "k8s.io.api.core.v1.SecretEnvSource": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "description": "The Secret to select from." + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the Secret must be defined\n+optional" + } + }, + "description": "SecretEnvSource selects a Secret to populate the environment\nvariables with.\n\nThe contents of the target Secret's Data field will represent the\nkey-value pairs as environment variables." + }, + "k8s.io.api.core.v1.SecretKeySelector": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "description": "The name of the secret in the pod's namespace to select from." + }, + "key": { + "type": "string", + "description": "The key of the secret to select from. Must be a valid secret key." + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the Secret or its key must be defined\n+optional" + } + }, + "description": "SecretKeySelector selects a key of a Secret." + }, + "k8s.io.api.core.v1.SecretProjection": { + "type": "object", + "properties": { + "localObjectReference": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.KeyToPath" + }, + "title": "If unspecified, each key-value pair in the Data field of the referenced\nSecret will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the Secret,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.\n+optional" + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the Secret or its key must be defined\n+optional" + } + }, + "description": "Adapts a secret into a projected volume.\n\nThe contents of the target Secret's Data field will be presented in a\nprojected volume as files using the keys in the Data field as the file names.\nNote that this is identical to a secret volume source without the default\nmode." + }, + "k8s.io.api.core.v1.SecretVolumeSource": { + "type": "object", + "properties": { + "secretName": { + "type": "string", + "title": "Name of the secret in the pod's namespace to use.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n+optional" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.api.core.v1.KeyToPath" + }, + "title": "If unspecified, each key-value pair in the Data field of the referenced\nSecret will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the Secret,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.\n+optional" + }, + "defaultMode": { + "type": "integer", + "format": "int32", + "title": "Optional: mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values\nfor mode bits. Defaults to 0644.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.\n+optional" + }, + "optional": { + "type": "boolean", + "format": "boolean", + "title": "Specify whether the Secret or its keys must be defined\n+optional" + } + }, + "description": "Adapts a Secret into a volume.\n\nThe contents of the target Secret's Data field will be presented in a volume\nas files using the keys in the Data field as the file names.\nSecret volumes support ownership management and SELinux relabeling." + }, + "k8s.io.api.core.v1.SecurityContext": { + "type": "object", + "properties": { + "capabilities": { + "$ref": "#/definitions/k8s.io.api.core.v1.Capabilities", + "title": "The capabilities to add/drop when running containers.\nDefaults to the default set of capabilities granted by the container runtime.\n+optional" + }, + "privileged": { + "type": "boolean", + "format": "boolean", + "title": "Run container in privileged mode.\nProcesses in privileged containers are essentially equivalent to root on the host.\nDefaults to false.\n+optional" + }, + "seLinuxOptions": { + "$ref": "#/definitions/k8s.io.api.core.v1.SELinuxOptions", + "title": "The SELinux context to be applied to the container.\nIf unspecified, the container runtime will allocate a random SELinux context for each\ncontainer. May also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "windowsOptions": { + "$ref": "#/definitions/k8s.io.api.core.v1.WindowsSecurityContextOptions", + "title": "The Windows specific settings applied to all containers.\nIf unspecified, the options from the PodSecurityContext will be used.\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "runAsUser": { + "type": "string", + "format": "int64", + "title": "The UID to run the entrypoint of the container process.\nDefaults to user specified in image metadata if unspecified.\nMay also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "runAsGroup": { + "type": "string", + "format": "int64", + "title": "The GID to run the entrypoint of the container process.\nUses runtime default if unset.\nMay also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "runAsNonRoot": { + "type": "boolean", + "format": "boolean", + "title": "Indicates that the container must run as a non-root user.\nIf true, the Kubelet will validate the image at runtime to ensure that it\ndoes not run as UID 0 (root) and fail to start the container if it does.\nIf unset or false, no such validation will be performed.\nMay also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" + }, + "readOnlyRootFilesystem": { + "type": "boolean", + "format": "boolean", + "title": "Whether this container has a read-only root filesystem.\nDefault is false.\n+optional" + }, + "allowPrivilegeEscalation": { + "type": "boolean", + "format": "boolean", + "title": "AllowPrivilegeEscalation controls whether a process can gain more\nprivileges than its parent process. This bool directly controls if\nthe no_new_privs flag will be set on the container process.\nAllowPrivilegeEscalation is true always when the container is:\n1) run as Privileged\n2) has CAP_SYS_ADMIN\n+optional" + }, + "procMount": { + "type": "string", + "title": "procMount denotes the type of proc mount to use for the containers.\nThe default is DefaultProcMount which uses the container runtime defaults for\nreadonly paths and masked paths.\nThis requires the ProcMountType feature flag to be enabled.\n+optional" + }, + "seccompProfile": { + "$ref": "#/definitions/k8s.io.api.core.v1.SeccompProfile", + "title": "The seccomp options to use by this container. If seccomp options are\nprovided at both the pod \u0026 container level, the container options\noverride the pod options.\n+optional" + } + }, + "description": "SecurityContext holds security configuration that will be applied to a container.\nSome fields are present in both SecurityContext and PodSecurityContext. When both\nare set, the values in SecurityContext take precedence." + }, + "k8s.io.api.core.v1.ServiceAccountTokenProjection": { + "type": "object", + "properties": { + "audience": { + "type": "string", + "title": "Audience is the intended audience of the token. A recipient of a token\nmust identify itself with an identifier specified in the audience of the\ntoken, and otherwise should reject the token. The audience defaults to the\nidentifier of the apiserver.\n+optional" + }, + "expirationSeconds": { + "type": "string", + "format": "int64", + "title": "ExpirationSeconds is the requested duration of validity of the service\naccount token. As the token approaches expiration, the kubelet volume\nplugin will proactively rotate the service account token. The kubelet will\nstart trying to rotate the token if the token is older than 80 percent of\nits time to live or if the token is older than 24 hours.Defaults to 1 hour\nand must be at least 10 minutes.\n+optional" + }, + "path": { + "type": "string", + "description": "Path is the path relative to the mount point of the file to project the\ntoken into." + } + }, + "description": "ServiceAccountTokenProjection represents a projected service account token\nvolume. This projection can be used to insert a service account token into\nthe pods runtime filesystem for use against APIs (Kubernetes API Server or\notherwise)." + }, + "k8s.io.api.core.v1.StorageOSVolumeSource": { "type": "object", "properties": { - "metadata": { - "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" - }, - "status": { - "type": "string" + "volumeName": { + "type": "string", + "description": "VolumeName is the human-readable name of the StorageOS volume. Volume\nnames are only unique within a namespace." }, - "message": { - "type": "string" + "volumeNamespace": { + "type": "string", + "title": "VolumeNamespace specifies the scope of the volume within StorageOS. If no\nnamespace is specified then the Pod's namespace will be used. This allows the\nKubernetes name scoping to be mirrored within StorageOS for tighter integration.\nSet VolumeName to any name to override the default behaviour.\nSet to \"default\" if you are not using namespaces within StorageOS.\nNamespaces that do not pre-exist within StorageOS will be created.\n+optional" }, - "icon": { - "type": "string" + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n+optional" }, - "strategy": { - "type": "string" + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Defaults to false (read/write). ReadOnly here will force\nthe ReadOnly setting in VolumeMounts.\n+optional" }, - "step": { - "type": "string" + "secretRef": { + "$ref": "#/definitions/k8s.io.api.core.v1.LocalObjectReference", + "title": "SecretRef specifies the secret to use for obtaining the StorageOS API\ncredentials. If not specified, default values will be attempted.\n+optional" + } + }, + "description": "Represents a StorageOS persistent volume resource." + }, + "k8s.io.api.core.v1.Sysctl": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Name of a property to set" }, - "setWeight": { - "type": "string" + "value": { + "type": "string", + "title": "Value of a property to set" + } + }, + "title": "Sysctl defines a kernel parameter to be set" + }, + "k8s.io.api.core.v1.TCPSocketAction": { + "type": "object", + "properties": { + "port": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.util.intstr.IntOrString", + "description": "Number or name of the port to access on the container.\nNumber must be in the range 1 to 65535.\nName must be an IANA_SVC_NAME." }, - "actualWeight": { - "type": "string" + "host": { + "type": "string", + "title": "Optional: Host name to connect to, defaults to the pod IP.\n+optional" } }, - "title": "RolloutInfo is information about a rollout" + "title": "TCPSocketAction describes an action based on opening a socket" }, - "google.protobuf.Any": { + "k8s.io.api.core.v1.Toleration": { "type": "object", "properties": { - "type_url": { - "type": "string" + "key": { + "type": "string", + "title": "Key is the taint key that the toleration applies to. Empty means match all taint keys.\nIf the key is empty, operator must be Exists; this combination means to match all values and all keys.\n+optional" + }, + "operator": { + "type": "string", + "title": "Operator represents a key's relationship to the value.\nValid operators are Exists and Equal. Defaults to Equal.\nExists is equivalent to wildcard for value, so that a pod can\ntolerate all taints of a particular category.\n+optional" }, "value": { "type": "string", - "format": "byte" + "title": "Value is the taint value the toleration matches to.\nIf the operator is Exists, the value should be empty, otherwise just a regular string.\n+optional" + }, + "effect": { + "type": "string", + "title": "Effect indicates the taint effect to match. Empty means match all taint effects.\nWhen specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.\n+optional" + }, + "tolerationSeconds": { + "type": "string", + "format": "int64", + "title": "TolerationSeconds represents the period of time the toleration (which must be\nof effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,\nit is not set, which means tolerate the taint forever (do not evict). Zero and\nnegative values will be treated as 0 (evict immediately) by the system.\n+optional" } - } + }, + "description": "The pod this Toleration is attached to tolerates any taint that matches\nthe triple \u003ckey,value,effect\u003e using the matching operator \u003coperator\u003e." }, - "grpc.gateway.runtime.StreamError": { + "k8s.io.api.core.v1.TopologySpreadConstraint": { "type": "object", "properties": { - "grpc_code": { + "maxSkew": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "MaxSkew describes the degree to which pods may be unevenly distributed.\nWhen `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference\nbetween the number of matching pods in the target topology and the global minimum.\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\nlabelSelector spread as 1/1/0:\n+-------+-------+-------+\n| zone1 | zone2 | zone3 |\n+-------+-------+-------+\n| P | P | |\n+-------+-------+-------+\n- if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1;\nscheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2)\nviolate MaxSkew(1).\n- if MaxSkew is 2, incoming pod can be scheduled onto any zone.\nWhen `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence\nto topologies that satisfy it.\nIt's a required field. Default value is 1 and 0 is not allowed." }, - "http_code": { + "topologyKey": { + "type": "string", + "description": "TopologyKey is the key of node labels. Nodes that have a label with this key\nand identical values are considered to be in the same topology.\nWe consider each \u003ckey, value\u003e as a \"bucket\", and try to put balanced number\nof pods into each bucket.\nIt's a required field." + }, + "whenUnsatisfiable": { + "type": "string", + "description": "WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy\nthe spread constraint.\n- DoNotSchedule (default) tells the scheduler not to schedule it.\n- ScheduleAnyway tells the scheduler to schedule the pod in any location,\n but giving higher precedence to topologies that would help reduce the\n skew.\nA constraint is considered \"Unsatisfiable\" for an incoming pod\nif and only if every possible node assigment for that pod would violate\n\"MaxSkew\" on some topology.\nFor example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same\nlabelSelector spread as 3/1/1:\n+-------+-------+-------+\n| zone1 | zone2 | zone3 |\n+-------+-------+-------+\n| P P P | P | P |\n+-------+-------+-------+\nIf WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled\nto zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies\nMaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler\nwon't make it *more* imbalanced.\nIt's a required field." + }, + "labelSelector": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector", + "title": "LabelSelector is used to find matching pods.\nPods that match this label selector are counted to determine the number of pods\nin their corresponding topology domain.\n+optional" + } + }, + "description": "TopologySpreadConstraint specifies how to spread matching pods among the given topology." + }, + "k8s.io.api.core.v1.TypedLocalObjectReference": { + "type": "object", + "properties": { + "apiGroup": { + "type": "string", + "title": "APIGroup is the group for the resource being referenced.\nIf APIGroup is not specified, the specified Kind must be in the core API group.\nFor any other third-party types, APIGroup is required.\n+optional" + }, + "kind": { + "type": "string", + "title": "Kind is the type of resource being referenced" + }, + "name": { + "type": "string", + "title": "Name is the name of resource being referenced" + } + }, + "description": "TypedLocalObjectReference contains enough information to let you locate the\ntyped referenced object inside the same namespace." + }, + "k8s.io.api.core.v1.Volume": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "Volume's name.\nMust be a DNS_LABEL and unique within the pod.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names" + }, + "volumeSource": { + "$ref": "#/definitions/k8s.io.api.core.v1.VolumeSource", + "description": "VolumeSource represents the location and type of the mounted volume.\nIf not specified, the Volume is implied to be an EmptyDir.\nThis implied behavior is deprecated and will be removed in a future version." + } + }, + "description": "Volume represents a named volume in a pod that may be accessed by any container in the pod." + }, + "k8s.io.api.core.v1.VolumeDevice": { + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "name must match the name of a persistentVolumeClaim in the pod" + }, + "devicePath": { + "type": "string", + "description": "devicePath is the path inside of the container that the device will be mapped to." + } + }, + "description": "volumeDevice describes a mapping of a raw block device within a container." + }, + "k8s.io.api.core.v1.VolumeMount": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "This must match the Name of a Volume." + }, + "readOnly": { + "type": "boolean", + "format": "boolean", + "title": "Mounted read-only if true, read-write otherwise (false or unspecified).\nDefaults to false.\n+optional" + }, + "mountPath": { + "type": "string", + "description": "Path within the container at which the volume should be mounted. Must\nnot contain ':'." + }, + "subPath": { + "type": "string", + "title": "Path within the volume from which the container's volume should be mounted.\nDefaults to \"\" (volume's root).\n+optional" + }, + "mountPropagation": { + "type": "string", + "title": "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10.\n+optional" + }, + "subPathExpr": { + "type": "string", + "title": "Expanded path within the volume from which the container's volume should be mounted.\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\nDefaults to \"\" (volume's root).\nSubPathExpr and SubPath are mutually exclusive.\n+optional" + } + }, + "description": "VolumeMount describes a mounting of a Volume within a container." + }, + "k8s.io.api.core.v1.VolumeProjection": { + "type": "object", + "properties": { + "secret": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecretProjection", + "title": "information about the secret data to project\n+optional" + }, + "downwardAPI": { + "$ref": "#/definitions/k8s.io.api.core.v1.DownwardAPIProjection", + "title": "information about the downwardAPI data to project\n+optional" + }, + "configMap": { + "$ref": "#/definitions/k8s.io.api.core.v1.ConfigMapProjection", + "title": "information about the configMap data to project\n+optional" + }, + "serviceAccountToken": { + "$ref": "#/definitions/k8s.io.api.core.v1.ServiceAccountTokenProjection", + "title": "information about the serviceAccountToken data to project\n+optional" + } + }, + "title": "Projection that may be projected along with other supported volume types" + }, + "k8s.io.api.core.v1.VolumeSource": { + "type": "object", + "properties": { + "hostPath": { + "$ref": "#/definitions/k8s.io.api.core.v1.HostPathVolumeSource", + "title": "HostPath represents a pre-existing file or directory on the host\nmachine that is directly exposed to the container. This is generally\nused for system agents or other privileged things that are allowed\nto see the host machine. Most containers will NOT need this.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath\n---\nTODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not\nmount host directories as read/write.\n+optional" + }, + "emptyDir": { + "$ref": "#/definitions/k8s.io.api.core.v1.EmptyDirVolumeSource", + "title": "EmptyDir represents a temporary directory that shares a pod's lifetime.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir\n+optional" + }, + "gcePersistentDisk": { + "$ref": "#/definitions/k8s.io.api.core.v1.GCEPersistentDiskVolumeSource", + "title": "GCEPersistentDisk represents a GCE Disk resource that is attached to a\nkubelet's host machine and then exposed to the pod.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk\n+optional" + }, + "awsElasticBlockStore": { + "$ref": "#/definitions/k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource", + "title": "AWSElasticBlockStore represents an AWS Disk resource that is attached to a\nkubelet's host machine and then exposed to the pod.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore\n+optional" + }, + "gitRepo": { + "$ref": "#/definitions/k8s.io.api.core.v1.GitRepoVolumeSource", + "title": "GitRepo represents a git repository at a particular revision.\nDEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an\nEmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir\ninto the Pod's container.\n+optional" + }, + "secret": { + "$ref": "#/definitions/k8s.io.api.core.v1.SecretVolumeSource", + "title": "Secret represents a secret that should populate this volume.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret\n+optional" + }, + "nfs": { + "$ref": "#/definitions/k8s.io.api.core.v1.NFSVolumeSource", + "title": "NFS represents an NFS mount on the host that shares a pod's lifetime\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#nfs\n+optional" + }, + "iscsi": { + "$ref": "#/definitions/k8s.io.api.core.v1.ISCSIVolumeSource", + "title": "ISCSI represents an ISCSI Disk resource that is attached to a\nkubelet's host machine and then exposed to the pod.\nMore info: https://examples.k8s.io/volumes/iscsi/README.md\n+optional" + }, + "glusterfs": { + "$ref": "#/definitions/k8s.io.api.core.v1.GlusterfsVolumeSource", + "title": "Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.\nMore info: https://examples.k8s.io/volumes/glusterfs/README.md\n+optional" + }, + "persistentVolumeClaim": { + "$ref": "#/definitions/k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource", + "title": "PersistentVolumeClaimVolumeSource represents a reference to a\nPersistentVolumeClaim in the same namespace.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims\n+optional" + }, + "rbd": { + "$ref": "#/definitions/k8s.io.api.core.v1.RBDVolumeSource", + "title": "RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.\nMore info: https://examples.k8s.io/volumes/rbd/README.md\n+optional" + }, + "flexVolume": { + "$ref": "#/definitions/k8s.io.api.core.v1.FlexVolumeSource", + "title": "FlexVolume represents a generic volume resource that is\nprovisioned/attached using an exec based plugin.\n+optional" + }, + "cinder": { + "$ref": "#/definitions/k8s.io.api.core.v1.CinderVolumeSource", + "title": "Cinder represents a cinder volume attached and mounted on kubelets host machine.\nMore info: https://examples.k8s.io/mysql-cinder-pd/README.md\n+optional" + }, + "cephfs": { + "$ref": "#/definitions/k8s.io.api.core.v1.CephFSVolumeSource", + "title": "CephFS represents a Ceph FS mount on the host that shares a pod's lifetime\n+optional" + }, + "flocker": { + "$ref": "#/definitions/k8s.io.api.core.v1.FlockerVolumeSource", + "title": "Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running\n+optional" + }, + "downwardAPI": { + "$ref": "#/definitions/k8s.io.api.core.v1.DownwardAPIVolumeSource", + "title": "DownwardAPI represents downward API about the pod that should populate this volume\n+optional" + }, + "fc": { + "$ref": "#/definitions/k8s.io.api.core.v1.FCVolumeSource", + "title": "FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.\n+optional" + }, + "azureFile": { + "$ref": "#/definitions/k8s.io.api.core.v1.AzureFileVolumeSource", + "title": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.\n+optional" + }, + "configMap": { + "$ref": "#/definitions/k8s.io.api.core.v1.ConfigMapVolumeSource", + "title": "ConfigMap represents a configMap that should populate this volume\n+optional" + }, + "vsphereVolume": { + "$ref": "#/definitions/k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource", + "title": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine\n+optional" + }, + "quobyte": { + "$ref": "#/definitions/k8s.io.api.core.v1.QuobyteVolumeSource", + "title": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime\n+optional" + }, + "azureDisk": { + "$ref": "#/definitions/k8s.io.api.core.v1.AzureDiskVolumeSource", + "title": "AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.\n+optional" + }, + "photonPersistentDisk": { + "$ref": "#/definitions/k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource", + "title": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine" + }, + "projected": { + "$ref": "#/definitions/k8s.io.api.core.v1.ProjectedVolumeSource", + "title": "Items for all in one resources secrets, configmaps, and downward API" + }, + "portworxVolume": { + "$ref": "#/definitions/k8s.io.api.core.v1.PortworxVolumeSource", + "title": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine\n+optional" + }, + "scaleIO": { + "$ref": "#/definitions/k8s.io.api.core.v1.ScaleIOVolumeSource", + "title": "ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.\n+optional" + }, + "storageos": { + "$ref": "#/definitions/k8s.io.api.core.v1.StorageOSVolumeSource", + "title": "StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.\n+optional" + }, + "csi": { + "$ref": "#/definitions/k8s.io.api.core.v1.CSIVolumeSource", + "title": "CSI (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature).\n+optional" + }, + "ephemeral": { + "$ref": "#/definitions/k8s.io.api.core.v1.EphemeralVolumeSource", + "description": "Ephemeral represents a volume that is handled by a cluster storage driver (Alpha feature).\nThe volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts,\nand deleted when the pod is removed.\n\nUse this if:\na) the volume is only needed while the pod runs,\nb) features of normal volumes like restoring from snapshot or capacity\n tracking are needed,\nc) the storage driver is specified through a storage class, and\nd) the storage driver supports dynamic volume provisioning through\n a PersistentVolumeClaim (see EphemeralVolumeSource for more\n information on the connection between this volume type\n and PersistentVolumeClaim).\n\nUse PersistentVolumeClaim or one of the vendor-specific\nAPIs for volumes that persist for longer than the lifecycle\nof an individual pod.\n\nUse CSI for light-weight local ephemeral volumes if the CSI driver is meant to\nbe used that way - see the documentation of the driver for\nmore information.\n\nA pod can use both types of ephemeral volumes and\npersistent volumes at the same time.\n\n+optional" + } + }, + "description": "Represents the source of a volume to mount.\nOnly one of its members may be specified." + }, + "k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource": { + "type": "object", + "properties": { + "volumePath": { + "type": "string", + "title": "Path that identifies vSphere volume vmdk" + }, + "fsType": { + "type": "string", + "title": "Filesystem type to mount.\nMust be a filesystem type supported by the host operating system.\nEx. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.\n+optional" + }, + "storagePolicyName": { + "type": "string", + "title": "Storage Policy Based Management (SPBM) profile name.\n+optional" + }, + "storagePolicyID": { + "type": "string", + "title": "Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.\n+optional" + } + }, + "description": "Represents a vSphere volume resource." + }, + "k8s.io.api.core.v1.WeightedPodAffinityTerm": { + "type": "object", + "properties": { + "weight": { "type": "integer", - "format": "int32" + "format": "int32", + "description": "weight associated with matching the corresponding podAffinityTerm,\nin the range 1-100." }, - "message": { - "type": "string" + "podAffinityTerm": { + "$ref": "#/definitions/k8s.io.api.core.v1.PodAffinityTerm", + "description": "Required. A pod affinity term, associated with the corresponding weight." + } + }, + "title": "The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)" + }, + "k8s.io.api.core.v1.WindowsSecurityContextOptions": { + "type": "object", + "properties": { + "gmsaCredentialSpecName": { + "type": "string", + "title": "GMSACredentialSpecName is the name of the GMSA credential spec to use.\n+optional" }, - "http_status": { - "type": "string" + "gmsaCredentialSpec": { + "type": "string", + "title": "GMSACredentialSpec is where the GMSA admission webhook\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\nGMSA credential spec named by the GMSACredentialSpecName field.\n+optional" }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/google.protobuf.Any" - } + "runAsUserName": { + "type": "string", + "title": "The UserName in Windows to run the entrypoint of the container process.\nDefaults to the user specified in image metadata if unspecified.\nMay also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.\n+optional" } - } + }, + "description": "WindowsSecurityContextOptions contain Windows-specific options and credentials." + }, + "k8s.io.apimachinery.pkg.api.resource.Quantity": { + "type": "object", + "properties": { + "string": { + "type": "string" + } + }, + "description": "Quantity is a fixed-point representation of a number.\nIt provides convenient marshaling/unmarshaling in JSON and YAML,\nin addition to String() and AsInt64() accessors.\n\nThe serialization format is:\n\n\u003cquantity\u003e ::= \u003csignedNumber\u003e\u003csuffix\u003e\n (Note that \u003csuffix\u003e may be empty, from the \"\" case in \u003cdecimalSI\u003e.)\n\u003cdigit\u003e ::= 0 | 1 | ... | 9\n\u003cdigits\u003e ::= \u003cdigit\u003e | \u003cdigit\u003e\u003cdigits\u003e\n\u003cnumber\u003e ::= \u003cdigits\u003e | \u003cdigits\u003e.\u003cdigits\u003e | \u003cdigits\u003e. | .\u003cdigits\u003e\n\u003csign\u003e ::= \"+\" | \"-\"\n\u003csignedNumber\u003e ::= \u003cnumber\u003e | \u003csign\u003e\u003cnumber\u003e\n\u003csuffix\u003e ::= \u003cbinarySI\u003e | \u003cdecimalExponent\u003e | \u003cdecimalSI\u003e\n\u003cbinarySI\u003e ::= Ki | Mi | Gi | Ti | Pi | Ei\n (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html)\n\u003cdecimalSI\u003e ::= m | \"\" | k | M | G | T | P | E\n (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.)\n\u003cdecimalExponent\u003e ::= \"e\" \u003csignedNumber\u003e | \"E\" \u003csignedNumber\u003e\n\nNo matter which of the three exponent forms is used, no quantity may represent\na number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal\nplaces. Numbers larger or more precise will be capped or rounded up.\n(E.g.: 0.1m will rounded up to 1m.)\nThis may be extended in the future if we require larger or smaller quantities.\n\nWhen a Quantity is parsed from a string, it will remember the type of suffix\nit had, and will use the same type again when it is serialized.\n\nBefore serializing, Quantity will be put in \"canonical form\".\nThis means that Exponent/suffix will be adjusted up or down (with a\ncorresponding increase or decrease in Mantissa) such that:\n a. No precision is lost\n b. No fractional digits will be emitted\n c. The exponent (or suffix) is as large as possible.\nThe sign will be omitted unless the number is negative.\n\nExamples:\n 1.5 will be serialized as \"1500m\"\n 1.5Gi will be serialized as \"1536Mi\"\n\nNote that the quantity will NEVER be internally represented by a\nfloating point number. That is the whole point of this exercise.\n\nNon-canonical values will still parse as long as they are well formed,\nbut will be re-emitted in their canonical form. (So always use canonical\nform, or don't diff.)\n\nThis format is intended to make it difficult to use these numbers without\nwriting some sort of special handling code in the hopes that that will\ncause implementors to also use a fixed point implementation.\n\n+protobuf=true\n+protobuf.embed=string\n+protobuf.options.marshal=false\n+protobuf.options.(gogoproto.goproto_stringer)=false\n+k8s:deepcopy-gen=true\n+k8s:openapi-gen=true" }, "k8s.io.apimachinery.pkg.apis.meta.v1.FieldsV1": { "type": "object", @@ -149,6 +3456,70 @@ }, "description": "FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format.\n\nEach key is either a '.' representing the field itself, and will always map to an empty set,\nor a string representing a sub-field or item. The string will follow one of these four formats:\n'f:\u003cname\u003e', where \u003cname\u003e is the name of a field in a struct, or key in a map\n'v:\u003cvalue\u003e', where \u003cvalue\u003e is the exact json formatted value of a list item\n'i:\u003cindex\u003e', where \u003cindex\u003e is position of a item in a list\n'k:\u003ckeys\u003e', where \u003ckeys\u003e is a map of a list item's key fields to their unique values\nIf a key maps to an empty Fields value, the field that key represents is part of the set.\n\nThe exact format is defined in sigs.k8s.io/structured-merge-diff\n+protobuf.options.(gogoproto.goproto_stringer)=false" }, + "k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector": { + "type": "object", + "properties": { + "matchLabels": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.\n+optional" + }, + "matchExpressions": { + "type": "array", + "items": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" + }, + "title": "matchExpressions is a list of label selector requirements. The requirements are ANDed.\n+optional" + } + }, + "title": "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.\n+structType=atomic" + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement": { + "type": "object", + "properties": { + "key": { + "type": "string", + "title": "key is the label key that the selector applies to.\n+patchMergeKey=key\n+patchStrategy=merge" + }, + "operator": { + "type": "string", + "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist." + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "title": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.\n+optional" + } + }, + "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values." + }, + "k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta": { + "type": "object", + "properties": { + "selfLink": { + "type": "string", + "description": "selfLink is a URL representing this object.\nPopulated by the system.\nRead-only.\n\nDEPRECATED\nKubernetes will stop propagating this field in 1.20 release and the field is planned\nto be removed in 1.21 release.\n+optional" + }, + "resourceVersion": { + "type": "string", + "title": "String that identifies the server's internal version of this object that\ncan be used by clients to determine when objects have changed.\nValue must be treated as opaque by clients and passed unmodified back to the server.\nPopulated by the system.\nRead-only.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency\n+optional" + }, + "continue": { + "type": "string", + "description": "continue may be set if the user set a limit on the number of items returned, and indicates that\nthe server has more data available. The value is opaque and may be used to issue another request\nto the endpoint that served this list to retrieve the next set of available objects. Continuing a\nconsistent list may not be possible if the server configuration has changed or more than a few\nminutes have passed. The resourceVersion field returned when using this continue value will be\nidentical to the value in the first response, unless you have received this token from an error\nmessage." + }, + "remainingItemCount": { + "type": "string", + "format": "int64", + "title": "remainingItemCount is the number of subsequent items in the list which are not included in this\nlist response. If the list request contained label or field selectors, then the number of\nremaining items is unknown and the field will be left unset and omitted during serialization.\nIf the list is complete (either because it is not chunking or because this is the last chunk),\nthen there are no more remaining items and this field will be left unset and omitted during\nserialization.\nServers older than v1.15 do not set this field.\nThe intended use of the remainingItemCount is *estimating* the size of a collection. Clients\nshould not rely on the remainingItemCount to be set or to be exact.\n+optional" + } + }, + "description": "ListMeta describes metadata that synthetic resources must have, including lists and\nvarious status objects. A resource may have only one of {ObjectMeta, ListMeta}." + }, "k8s.io.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry": { "type": "object", "properties": { @@ -313,6 +3684,35 @@ } }, "description": "Time is a wrapper around time.Time which supports correct\nmarshaling to YAML and JSON. Wrappers are provided for many\nof the factory methods that the time package offers.\n\n+protobuf.options.marshal=false\n+protobuf.as=Timestamp\n+protobuf.options.(gogoproto.goproto_stringer)=false" + }, + "k8s.io.apimachinery.pkg.util.intstr.IntOrString": { + "type": "object", + "properties": { + "type": { + "type": "string", + "format": "int64" + }, + "intVal": { + "type": "integer", + "format": "int32" + }, + "strVal": { + "type": "string" + } + }, + "description": "+protobuf=true\n+protobuf.options.(gogoproto.goproto_stringer)=false\n+k8s:openapi-gen=true", + "title": "IntOrString is a type that can hold an int32 or a string. When used in\nJSON or YAML marshalling and unmarshalling, it produces or consumes the\ninner type. This allows you to have, for example, a JSON field that can\naccept a name or number.\nTODO: Rename to Int32OrString" + }, + "rollout.RolloutWatchEvent": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "rollout": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout" + } + } } } } diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 7e98e0c66d..578e6e319d 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -2154,354 +2154,358 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 5540 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x5b, 0x6c, 0x24, 0xd9, - 0x55, 0x5b, 0xdd, 0x6e, 0xbb, 0x7d, 0xda, 0xcf, 0x3b, 0x9e, 0x4c, 0x67, 0x76, 0xc6, 0x3d, 0xa9, - 0x8d, 0x86, 0x0d, 0x24, 0xed, 0x64, 0x76, 0x17, 0x86, 0x6c, 0xb4, 0xa2, 0xdb, 0x33, 0xb3, 0x63, - 0xaf, 0x3d, 0xe3, 0xb9, 0xed, 0xd9, 0x51, 0xf6, 0x01, 0x29, 0x77, 0x5f, 0xb7, 0x6b, 0xa6, 0xba, - 0xaa, 0x53, 0x55, 0xed, 0x19, 0x6f, 0xa2, 0x64, 0x37, 0xd1, 0x92, 0x05, 0x25, 0xda, 0xe5, 0xf1, - 0x83, 0x10, 0x0f, 0x21, 0x3e, 0x10, 0xfc, 0xf0, 0x91, 0x1f, 0x24, 0x22, 0xa2, 0x00, 0xd2, 0xf2, - 0x01, 0x09, 0x3f, 0x6c, 0x40, 0x4a, 0xc3, 0x3a, 0x48, 0x08, 0x7e, 0x50, 0x50, 0x24, 0x94, 0x11, - 0x1f, 0xe8, 0x3e, 0xea, 0x56, 0xdd, 0xaa, 0xb2, 0xdd, 0xed, 0x2e, 0x0f, 0x11, 0xf0, 0xe7, 0xbe, - 0xe7, 0xdc, 0x73, 0xee, 0xe3, 0xdc, 0xf3, 0xb8, 0xe7, 0xd4, 0x35, 0xac, 0xb5, 0x4d, 0x7f, 0xa7, - 0xb7, 0x55, 0x6d, 0x3a, 0x9d, 0x25, 0xc3, 0x6d, 0x3b, 0x5d, 0xd7, 0xb9, 0xcb, 0xfe, 0xf8, 0x98, - 0xeb, 0x58, 0x96, 0xd3, 0xf3, 0xbd, 0xa5, 0xee, 0xbd, 0xf6, 0x92, 0xd1, 0x35, 0xbd, 0x25, 0xd9, - 0xb2, 0xfb, 0x09, 0xc3, 0xea, 0xee, 0x18, 0x9f, 0x58, 0x6a, 0x13, 0x9b, 0xb8, 0x86, 0x4f, 0x5a, - 0xd5, 0xae, 0xeb, 0xf8, 0x0e, 0xfa, 0x54, 0x48, 0xad, 0x1a, 0x50, 0x63, 0x7f, 0xfc, 0x42, 0xd0, - 0xb7, 0xda, 0xbd, 0xd7, 0xae, 0x52, 0x6a, 0x55, 0xd9, 0x12, 0x50, 0x3b, 0xfb, 0xb1, 0xc8, 0x58, - 0xda, 0x4e, 0xdb, 0x59, 0x62, 0x44, 0xb7, 0x7a, 0xdb, 0xec, 0x17, 0xfb, 0xc1, 0xfe, 0xe2, 0xcc, - 0xce, 0x3e, 0x71, 0xef, 0xb2, 0x57, 0x35, 0x1d, 0x3a, 0xb6, 0xa5, 0x2d, 0xc3, 0x6f, 0xee, 0x2c, - 0xed, 0x26, 0x46, 0x74, 0x56, 0x8f, 0x20, 0x35, 0x1d, 0x97, 0xa4, 0xe1, 0x3c, 0x1d, 0xe2, 0x74, - 0x8c, 0xe6, 0x8e, 0x69, 0x13, 0x77, 0x2f, 0x9c, 0x75, 0x87, 0xf8, 0x46, 0x5a, 0xaf, 0xa5, 0x83, - 0x7a, 0xb9, 0x3d, 0xdb, 0x37, 0x3b, 0x24, 0xd1, 0xe1, 0xa7, 0x8f, 0xea, 0xe0, 0x35, 0x77, 0x48, - 0xc7, 0x48, 0xf4, 0x7b, 0xea, 0xa0, 0x7e, 0x3d, 0xdf, 0xb4, 0x96, 0x4c, 0xdb, 0xf7, 0x7c, 0x37, - 0xde, 0x49, 0xff, 0x0f, 0x0d, 0xe6, 0x6b, 0x6b, 0xf5, 0x4d, 0xd7, 0xd8, 0xde, 0x36, 0x9b, 0xd8, - 0xe9, 0xf9, 0xa6, 0xdd, 0x46, 0x1f, 0x81, 0x09, 0xd3, 0x6e, 0xbb, 0xc4, 0xf3, 0xca, 0xda, 0x05, - 0xed, 0xc9, 0xc9, 0xfa, 0xec, 0xbb, 0xfd, 0xca, 0x63, 0xfb, 0xfd, 0xca, 0xc4, 0x0a, 0x6f, 0xc6, - 0x01, 0x1c, 0x3d, 0x03, 0x25, 0x8f, 0xb8, 0xbb, 0x66, 0x93, 0x6c, 0x38, 0xae, 0x5f, 0xce, 0x5d, - 0xd0, 0x9e, 0x2c, 0xd4, 0x4f, 0x09, 0xf4, 0x52, 0x23, 0x04, 0xe1, 0x28, 0x1e, 0xed, 0xe6, 0x3a, - 0x8e, 0x2f, 0xe0, 0xe5, 0x3c, 0xe3, 0x22, 0xbb, 0xe1, 0x10, 0x84, 0xa3, 0x78, 0xe8, 0x0a, 0xcc, - 0x19, 0xb6, 0xed, 0xf8, 0x86, 0x6f, 0x3a, 0xf6, 0x86, 0x4b, 0xb6, 0xcd, 0x07, 0xe5, 0x31, 0xd6, - 0xb7, 0x2c, 0xfa, 0xce, 0xd5, 0x62, 0x70, 0x9c, 0xe8, 0xa1, 0xff, 0x7d, 0x0e, 0x4a, 0x35, 0xdb, - 0xb0, 0xf6, 0x3c, 0xd3, 0xc3, 0x3d, 0x1b, 0x7d, 0x06, 0x8a, 0x74, 0xf7, 0x5a, 0x86, 0x6f, 0xb0, - 0xf9, 0x96, 0x2e, 0x7d, 0xbc, 0xca, 0x17, 0xb3, 0x1a, 0x5d, 0xcc, 0x50, 0x26, 0x29, 0x76, 0x75, - 0xf7, 0x13, 0xd5, 0x9b, 0x5b, 0x77, 0x49, 0xd3, 0x5f, 0x27, 0xbe, 0x51, 0x47, 0x82, 0x3f, 0x84, - 0x6d, 0x58, 0x52, 0x45, 0x0e, 0x8c, 0x79, 0x5d, 0xd2, 0x64, 0xcb, 0x53, 0xba, 0xb4, 0x5e, 0x1d, - 0x45, 0xfe, 0xab, 0x91, 0xa1, 0x37, 0xba, 0xa4, 0x59, 0x9f, 0x12, 0xac, 0xc7, 0xe8, 0x2f, 0xcc, - 0x18, 0xa1, 0xfb, 0x30, 0xee, 0xf9, 0x86, 0xdf, 0xf3, 0xd8, 0xd2, 0x96, 0x2e, 0xdd, 0xcc, 0x8e, - 0x25, 0x23, 0x5b, 0x9f, 0x11, 0x4c, 0xc7, 0xf9, 0x6f, 0x2c, 0xd8, 0xe9, 0xff, 0xa0, 0xc1, 0xa9, - 0x08, 0x76, 0xcd, 0x6d, 0xf7, 0x3a, 0xc4, 0xf6, 0xd1, 0x05, 0x18, 0xb3, 0x8d, 0x0e, 0x11, 0xf2, - 0x24, 0x87, 0x7c, 0xc3, 0xe8, 0x10, 0xcc, 0x20, 0xe8, 0x09, 0x28, 0xec, 0x1a, 0x56, 0x8f, 0xb0, - 0x45, 0x9a, 0xac, 0x4f, 0x0b, 0x94, 0xc2, 0x8b, 0xb4, 0x11, 0x73, 0x18, 0xfa, 0x3c, 0x4c, 0xb2, - 0x3f, 0xae, 0xb9, 0x4e, 0x27, 0xa3, 0xa9, 0x89, 0x11, 0xbe, 0x18, 0x90, 0xad, 0x4f, 0xef, 0xf7, - 0x2b, 0x93, 0xf2, 0x27, 0x0e, 0x19, 0xea, 0xff, 0xa8, 0xc1, 0x6c, 0x64, 0x72, 0x6b, 0xa6, 0xe7, - 0xa3, 0x57, 0x12, 0xc2, 0x53, 0x1d, 0x4c, 0x78, 0x68, 0x6f, 0x26, 0x3a, 0x73, 0x62, 0xa6, 0xc5, - 0xa0, 0x25, 0x22, 0x38, 0x36, 0x14, 0x4c, 0x9f, 0x74, 0xbc, 0x72, 0xee, 0x42, 0xfe, 0xc9, 0xd2, - 0xa5, 0x95, 0xcc, 0xb6, 0x31, 0x5c, 0xdf, 0x15, 0x4a, 0x1f, 0x73, 0x36, 0xfa, 0x6f, 0xe5, 0x94, - 0x19, 0x52, 0x89, 0x42, 0x0e, 0x4c, 0x74, 0x88, 0xef, 0x9a, 0x4d, 0xaa, 0x0d, 0xe8, 0x28, 0xae, - 0x8c, 0x36, 0x8a, 0x75, 0x46, 0x2c, 0xd4, 0x29, 0xfc, 0xb7, 0x87, 0x03, 0x2e, 0x68, 0x07, 0xc6, - 0x0c, 0xb7, 0x1d, 0xcc, 0xf9, 0x5a, 0x36, 0xfb, 0x1b, 0xca, 0x5c, 0xcd, 0x6d, 0x7b, 0x98, 0x71, - 0x40, 0x4b, 0x30, 0xe9, 0x13, 0xb7, 0x63, 0xda, 0x86, 0xcf, 0x95, 0x50, 0xb1, 0x3e, 0x2f, 0xd0, - 0x26, 0x37, 0x03, 0x00, 0x0e, 0x71, 0xf4, 0xf7, 0x72, 0x30, 0x9f, 0x38, 0x0c, 0xe8, 0x69, 0x28, - 0x74, 0x77, 0x0c, 0x2f, 0x90, 0xee, 0xc5, 0x60, 0x69, 0x37, 0x68, 0xe3, 0xc3, 0x7e, 0x65, 0x3a, - 0xe8, 0xc2, 0x1a, 0x30, 0x47, 0xa6, 0x5a, 0xb6, 0x43, 0x3c, 0xcf, 0x68, 0x07, 0x22, 0x1f, 0x59, - 0x11, 0xd6, 0x8c, 0x03, 0x38, 0xfa, 0x8a, 0x06, 0xd3, 0x7c, 0x75, 0x30, 0xf1, 0x7a, 0x96, 0x4f, - 0x8f, 0x35, 0x5d, 0x9b, 0xd5, 0x2c, 0x76, 0x82, 0x93, 0xac, 0x9f, 0x16, 0xdc, 0xa7, 0xa3, 0xad, - 0x1e, 0x56, 0xf9, 0xa2, 0x3b, 0x30, 0xe9, 0xf9, 0x86, 0xeb, 0x93, 0x56, 0xcd, 0x67, 0xaa, 0xb7, - 0x74, 0xe9, 0x27, 0x07, 0x93, 0xf7, 0x4d, 0xb3, 0x43, 0xf8, 0xd9, 0x6a, 0x04, 0x04, 0x70, 0x48, - 0x4b, 0xff, 0x37, 0x0d, 0xe6, 0x82, 0x65, 0xda, 0x24, 0x9d, 0xae, 0x65, 0xf8, 0xe4, 0x11, 0x68, - 0x66, 0x5f, 0xd1, 0xcc, 0x38, 0x9b, 0xf3, 0x15, 0x8c, 0xff, 0x20, 0xf5, 0xac, 0xff, 0xab, 0x06, - 0x0b, 0x71, 0xe4, 0x47, 0xa0, 0x4d, 0x3c, 0x55, 0x9b, 0xdc, 0xc8, 0x76, 0xb6, 0x07, 0xa8, 0x94, - 0x1f, 0xa4, 0xcc, 0xf5, 0x7f, 0xb9, 0x5e, 0xd1, 0xff, 0x60, 0x0c, 0xa6, 0x6a, 0xb6, 0x6f, 0xd6, - 0xb6, 0xb7, 0x4d, 0xdb, 0xf4, 0xf7, 0xd0, 0x57, 0x73, 0xb0, 0xd4, 0x75, 0xc9, 0x36, 0x71, 0x5d, - 0xd2, 0xba, 0xd2, 0x73, 0x4d, 0xbb, 0xdd, 0x68, 0xee, 0x90, 0x56, 0xcf, 0x32, 0xed, 0xf6, 0x4a, - 0xdb, 0x76, 0x64, 0xf3, 0xd5, 0x07, 0xa4, 0xd9, 0xa3, 0xce, 0x8a, 0xd8, 0xff, 0xce, 0x68, 0xc3, - 0xdc, 0x18, 0x8e, 0x69, 0xfd, 0xa9, 0xfd, 0x7e, 0x65, 0x69, 0xc8, 0x4e, 0x78, 0xd8, 0xa9, 0xa1, - 0xb7, 0x72, 0x50, 0x75, 0xc9, 0x67, 0x7b, 0xe6, 0xe0, 0xab, 0xc1, 0x0f, 0xa8, 0x35, 0xda, 0x6a, - 0xe0, 0xa1, 0x78, 0xd6, 0x2f, 0xed, 0xf7, 0x2b, 0x43, 0xf6, 0xc1, 0x43, 0xce, 0x4b, 0xff, 0x73, - 0x0d, 0x8a, 0x43, 0x78, 0x49, 0x15, 0xd5, 0x4b, 0x9a, 0x4c, 0x78, 0x48, 0x7e, 0xd2, 0x43, 0x7a, - 0x7e, 0xb4, 0x45, 0x1b, 0xc4, 0x33, 0xfa, 0x77, 0x1a, 0x47, 0xc4, 0x3d, 0x29, 0xb4, 0x03, 0x0b, - 0x5d, 0xa7, 0x15, 0x1c, 0xfa, 0xeb, 0x86, 0xb7, 0xc3, 0x60, 0x62, 0x7a, 0x4f, 0xef, 0xf7, 0x2b, - 0x0b, 0x1b, 0x29, 0xf0, 0x87, 0xfd, 0x4a, 0x59, 0x12, 0x89, 0x21, 0xe0, 0x54, 0x8a, 0xa8, 0x0b, - 0xc5, 0x6d, 0x93, 0x58, 0x2d, 0x4c, 0xb6, 0x85, 0xa4, 0x8c, 0x78, 0xbc, 0xaf, 0x09, 0x6a, 0xf5, - 0x29, 0xaa, 0x4b, 0x83, 0x5f, 0x58, 0x72, 0xd1, 0x7f, 0x34, 0x06, 0xb3, 0x75, 0xab, 0x47, 0x9e, - 0x77, 0x09, 0x09, 0xfc, 0x80, 0x1a, 0xcc, 0x76, 0x5d, 0xb2, 0x6b, 0x92, 0xfb, 0x0d, 0x62, 0x91, - 0xa6, 0xef, 0xb8, 0x62, 0xaa, 0x67, 0xc4, 0x4e, 0xce, 0x6e, 0xa8, 0x60, 0x1c, 0xc7, 0x47, 0xcf, - 0xc1, 0x8c, 0xd1, 0xf4, 0xcd, 0x5d, 0x22, 0x29, 0xf0, 0x8d, 0xfe, 0x80, 0xa0, 0x30, 0x53, 0x53, - 0xa0, 0x38, 0x86, 0x8d, 0x5e, 0x81, 0xb2, 0xd7, 0x34, 0x2c, 0x72, 0xbb, 0x2b, 0x58, 0x2d, 0xef, - 0x90, 0xe6, 0xbd, 0x0d, 0xc7, 0xb4, 0x7d, 0xe1, 0xe0, 0x5c, 0x10, 0x94, 0xca, 0x8d, 0x03, 0xf0, - 0xf0, 0x81, 0x14, 0xd0, 0x9f, 0x69, 0x70, 0xbe, 0xeb, 0x92, 0x0d, 0xd7, 0xe9, 0x38, 0x54, 0x7a, - 0x13, 0xae, 0x90, 0x70, 0x09, 0x5e, 0x1c, 0xf1, 0x98, 0xf2, 0x96, 0x64, 0xd4, 0xf1, 0xa1, 0xfd, - 0x7e, 0xe5, 0xfc, 0xc6, 0x61, 0x03, 0xc0, 0x87, 0x8f, 0x0f, 0x7d, 0x4b, 0x83, 0xc5, 0xae, 0xe3, - 0xf9, 0x87, 0x4c, 0xa1, 0x70, 0xa2, 0x53, 0xd0, 0xf7, 0xfb, 0x95, 0xc5, 0x8d, 0x43, 0x47, 0x80, - 0x8f, 0x18, 0xa1, 0xfe, 0xa5, 0x12, 0xcc, 0x47, 0x64, 0x8f, 0x06, 0xf4, 0xed, 0x3d, 0xf4, 0x2c, - 0x4c, 0x07, 0xc2, 0xc0, 0xa3, 0x6a, 0x2e, 0x7b, 0xd2, 0xaf, 0xab, 0x45, 0x81, 0x58, 0xc5, 0xa5, - 0x72, 0x27, 0x45, 0x91, 0xf7, 0x8e, 0xc9, 0xdd, 0x86, 0x02, 0xc5, 0x31, 0x6c, 0xb4, 0x02, 0xa7, - 0x44, 0x0b, 0x26, 0x5d, 0xcb, 0x6c, 0x1a, 0xcb, 0x4e, 0x4f, 0x88, 0x5c, 0xa1, 0x7e, 0x66, 0xbf, - 0x5f, 0x39, 0xb5, 0x91, 0x04, 0xe3, 0xb4, 0x3e, 0x68, 0x0d, 0x16, 0x8c, 0x9e, 0xef, 0xc8, 0xf9, - 0x5f, 0xb5, 0x8d, 0x2d, 0x8b, 0xb4, 0x98, 0x68, 0x15, 0xeb, 0x65, 0xaa, 0x35, 0x6a, 0x29, 0x70, - 0x9c, 0xda, 0x0b, 0x6d, 0xc4, 0xa8, 0x35, 0x48, 0xd3, 0xb1, 0x5b, 0x7c, 0x97, 0x0b, 0xf5, 0x73, - 0x62, 0x7a, 0x2a, 0x45, 0x81, 0x83, 0x53, 0x7b, 0x22, 0x0b, 0x66, 0x3a, 0xc6, 0x83, 0xdb, 0xb6, - 0xb1, 0x6b, 0x98, 0x16, 0x65, 0x52, 0x1e, 0x3f, 0xc2, 0x35, 0xed, 0xf9, 0xa6, 0x55, 0xe5, 0x37, - 0x30, 0xd5, 0x15, 0xdb, 0xbf, 0xe9, 0x36, 0x7c, 0x6a, 0x04, 0xea, 0x88, 0x2e, 0xec, 0xba, 0x42, - 0x0b, 0xc7, 0x68, 0xa3, 0x9b, 0x70, 0x9a, 0x1d, 0xc7, 0x2b, 0xce, 0x7d, 0xfb, 0x0a, 0xb1, 0x8c, - 0xbd, 0x60, 0x02, 0x13, 0x6c, 0x02, 0x1f, 0xdc, 0xef, 0x57, 0x4e, 0x37, 0xd2, 0x10, 0x70, 0x7a, - 0x3f, 0x64, 0xc0, 0xe3, 0x2a, 0x00, 0x93, 0x5d, 0xd3, 0x33, 0x1d, 0x7b, 0xcd, 0xec, 0x98, 0x7e, - 0xb9, 0xc8, 0xc8, 0x56, 0xf6, 0xfb, 0x95, 0xc7, 0x1b, 0x07, 0xa3, 0xe1, 0xc3, 0x68, 0xa0, 0xdf, - 0xd4, 0x60, 0x21, 0xed, 0x18, 0x96, 0x27, 0xb3, 0xb8, 0xff, 0x88, 0x1d, 0x2d, 0x2e, 0x11, 0xa9, - 0x4a, 0x21, 0x75, 0x10, 0xe8, 0x75, 0x0d, 0xa6, 0x8c, 0x88, 0x73, 0x56, 0x06, 0x36, 0xaa, 0xd5, - 0x51, 0xbd, 0xe1, 0x90, 0x62, 0x7d, 0x6e, 0xbf, 0x5f, 0x51, 0x1c, 0x40, 0xac, 0x70, 0x44, 0xbf, - 0xad, 0xc1, 0xe9, 0xd4, 0x33, 0x5e, 0x2e, 0x9d, 0xc4, 0x0a, 0x31, 0x21, 0x49, 0xd7, 0x39, 0xe9, - 0xc3, 0x40, 0xef, 0x68, 0xd2, 0x94, 0xad, 0x07, 0xf1, 0xc8, 0x14, 0x1b, 0xda, 0xad, 0x11, 0xfd, - 0xd1, 0xd0, 0x7a, 0x07, 0x84, 0xeb, 0xa7, 0x22, 0x96, 0x31, 0x68, 0xc4, 0x71, 0xf6, 0xe8, 0x6b, - 0x5a, 0x60, 0x1a, 0xe5, 0x88, 0xa6, 0x4f, 0x6a, 0x44, 0x28, 0xb4, 0xb4, 0x72, 0x40, 0x31, 0xe6, - 0xfa, 0xbf, 0xe4, 0x61, 0x6a, 0xd9, 0xb0, 0x0d, 0x77, 0x4f, 0x98, 0x96, 0x3f, 0xd5, 0xe0, 0x5c, - 0xb3, 0xe7, 0xba, 0xc4, 0xf6, 0x1b, 0x3e, 0xe9, 0x26, 0x0d, 0x8b, 0x76, 0xa2, 0x86, 0xe5, 0xc2, - 0x7e, 0xbf, 0x72, 0x6e, 0xf9, 0x10, 0xfe, 0xf8, 0xd0, 0xd1, 0xa1, 0xbf, 0xd1, 0x40, 0x17, 0x08, - 0x75, 0xa3, 0x79, 0xaf, 0xed, 0x3a, 0x3d, 0xbb, 0x95, 0x9c, 0x44, 0xee, 0x44, 0x27, 0x71, 0x71, - 0xbf, 0x5f, 0xd1, 0x97, 0x8f, 0x1c, 0x05, 0x1e, 0x60, 0xa4, 0xe8, 0x79, 0x98, 0x17, 0x58, 0x57, - 0x1f, 0x74, 0x89, 0x6b, 0x52, 0xdf, 0x54, 0xdc, 0x34, 0x7f, 0x50, 0xa8, 0xfd, 0xf9, 0xe5, 0x38, - 0x02, 0x4e, 0xf6, 0xd1, 0xff, 0x78, 0x0c, 0x20, 0xd8, 0x69, 0xd2, 0x45, 0x3f, 0x05, 0x93, 0x1e, - 0xf1, 0xef, 0x10, 0xb3, 0xbd, 0xe3, 0xb3, 0x3d, 0x2d, 0x88, 0x6b, 0x8d, 0xa0, 0x11, 0x87, 0x70, - 0x74, 0x0f, 0x0a, 0x5d, 0xa3, 0xe7, 0x11, 0xb1, 0x6e, 0xab, 0x99, 0xac, 0xdb, 0x06, 0xa5, 0xc8, - 0x7d, 0x7f, 0xf6, 0x27, 0xe6, 0x3c, 0xd0, 0x97, 0x35, 0x00, 0xa2, 0xce, 0xb5, 0x74, 0xa9, 0x91, - 0x09, 0xcb, 0x70, 0x39, 0xe8, 0x1a, 0xd4, 0x67, 0xf6, 0xfb, 0x15, 0x88, 0xac, 0x5a, 0x84, 0x2d, - 0xba, 0x0f, 0x45, 0x23, 0x50, 0x67, 0x63, 0x27, 0xa1, 0xce, 0x98, 0x4b, 0x2e, 0xf7, 0x5b, 0x32, - 0x43, 0x6f, 0x69, 0x30, 0xe3, 0x11, 0x5f, 0x6c, 0x15, 0xb5, 0x4f, 0xc2, 0x97, 0x5b, 0x1b, 0x8d, - 0x7f, 0x43, 0xa1, 0xc9, 0x95, 0x83, 0xda, 0x86, 0x63, 0x7c, 0xf5, 0xff, 0x2a, 0xc2, 0x4c, 0x20, - 0x32, 0xa1, 0x7b, 0xd6, 0xe4, 0x2d, 0xe9, 0xee, 0xd9, 0x72, 0x14, 0x88, 0x55, 0x5c, 0xda, 0xd9, - 0xf3, 0xa9, 0x3f, 0xa0, 0x7a, 0x67, 0xb2, 0x73, 0x23, 0x0a, 0xc4, 0x2a, 0x2e, 0xea, 0x40, 0xc1, - 0xf3, 0x49, 0x37, 0xb8, 0x34, 0xbc, 0x3e, 0xda, 0x6a, 0x84, 0x27, 0x21, 0xbc, 0xf0, 0xa1, 0xbf, - 0x3c, 0xcc, 0xb9, 0xa0, 0xb7, 0x35, 0x98, 0xf1, 0x95, 0x84, 0x92, 0x10, 0x83, 0x6c, 0x24, 0x51, - 0xcd, 0x55, 0xf1, 0xdd, 0x50, 0xdb, 0x70, 0x8c, 0x7d, 0x8a, 0xc7, 0x56, 0x38, 0x41, 0x8f, 0xed, - 0x25, 0x28, 0x76, 0x8c, 0x07, 0x8d, 0x9e, 0xdb, 0x3e, 0xbe, 0x67, 0xc8, 0x44, 0x7c, 0x5d, 0x50, - 0xc1, 0x92, 0x1e, 0x7a, 0x43, 0x8b, 0x1c, 0xae, 0x09, 0x46, 0xfc, 0x4e, 0xb6, 0x87, 0x4b, 0x2a, - 0xd4, 0x03, 0x8f, 0x59, 0xc2, 0x7f, 0x2a, 0x3e, 0x72, 0xff, 0x89, 0xfa, 0x02, 0xfc, 0x80, 0x48, - 0x5f, 0x60, 0xf2, 0x44, 0x7d, 0x81, 0x65, 0x85, 0x19, 0x8e, 0x31, 0x67, 0xe3, 0xe1, 0x67, 0x4e, - 0x8e, 0x07, 0x4e, 0x74, 0x3c, 0x0d, 0x85, 0x19, 0x8e, 0x31, 0xd7, 0x7f, 0xa0, 0xc1, 0x99, 0x65, - 0xab, 0xe7, 0xf9, 0xc4, 0xfd, 0x3f, 0x73, 0xa7, 0xfe, 0x9f, 0x1a, 0x3c, 0x7e, 0xc0, 0x9c, 0x1f, - 0xc1, 0xd5, 0xfa, 0x6b, 0xea, 0xd5, 0xfa, 0xed, 0x11, 0x75, 0x6c, 0xfa, 0x3c, 0x0e, 0xb8, 0x61, - 0xf7, 0x61, 0xfa, 0x8a, 0xe1, 0x1b, 0x2d, 0xa7, 0xcd, 0xaf, 0xbc, 0xd1, 0x73, 0x50, 0x34, 0x6d, - 0x9f, 0xb8, 0xbb, 0x86, 0x25, 0xac, 0x8c, 0x1e, 0x0c, 0x7d, 0x45, 0xb4, 0x3f, 0xec, 0x57, 0x66, - 0xae, 0xf4, 0x5c, 0x96, 0x16, 0xe7, 0x3a, 0x07, 0xcb, 0x3e, 0xe8, 0x09, 0x28, 0x7c, 0xb6, 0x47, - 0xdc, 0xbd, 0x78, 0x2a, 0xf6, 0x16, 0x6d, 0xc4, 0x1c, 0xa6, 0xff, 0x5d, 0x0e, 0x22, 0x1e, 0xc0, - 0x23, 0x10, 0x2b, 0x5b, 0x11, 0xab, 0x11, 0x6d, 0x7a, 0xc4, 0x9f, 0x39, 0x28, 0x87, 0xbe, 0x1b, - 0xcb, 0xa1, 0xdf, 0xc8, 0x8c, 0xe3, 0xe1, 0x29, 0xf4, 0xf7, 0x34, 0x78, 0x3c, 0x44, 0x4e, 0xfa, - 0xb5, 0x47, 0x5f, 0x12, 0x3f, 0x03, 0x25, 0x23, 0xec, 0x26, 0x76, 0x51, 0x56, 0x57, 0x44, 0x28, - 0xe2, 0x28, 0x5e, 0x98, 0xc6, 0xcc, 0x1f, 0x33, 0x8d, 0x39, 0x76, 0x78, 0x1a, 0x53, 0xff, 0x61, - 0x0e, 0xce, 0x27, 0x67, 0x16, 0x48, 0x37, 0x26, 0xdb, 0x03, 0xcc, 0xed, 0x32, 0x4c, 0xf9, 0xa2, - 0x03, 0x6d, 0x15, 0x93, 0x5b, 0x10, 0x98, 0x53, 0x9b, 0x11, 0x18, 0x56, 0x30, 0x69, 0xcf, 0x26, - 0x3f, 0x57, 0x8d, 0xa6, 0xd3, 0x0d, 0xf2, 0xbd, 0xb2, 0xe7, 0x72, 0x04, 0x86, 0x15, 0x4c, 0x99, - 0x38, 0x1a, 0x3b, 0xf1, 0x84, 0x74, 0x03, 0x4e, 0x07, 0xf9, 0x83, 0x6b, 0x8e, 0xbb, 0xec, 0x74, - 0xba, 0x16, 0x61, 0xe9, 0x8f, 0x02, 0x1b, 0xec, 0x79, 0xd1, 0xe5, 0x34, 0x4e, 0x43, 0xc2, 0xe9, - 0x7d, 0xf5, 0xf7, 0xf2, 0x70, 0x2a, 0x5c, 0xf6, 0x65, 0xc7, 0x6e, 0x99, 0x2c, 0x0b, 0xf3, 0x2c, - 0x8c, 0xf9, 0x7b, 0xdd, 0x60, 0xb1, 0x7f, 0x22, 0x18, 0xce, 0xe6, 0x5e, 0x97, 0xee, 0xf6, 0x99, - 0x94, 0x2e, 0x14, 0x84, 0x59, 0x27, 0xb4, 0x26, 0x4f, 0x07, 0xdf, 0x81, 0xa7, 0x55, 0x69, 0x7e, - 0xd8, 0xaf, 0xa4, 0xd4, 0x54, 0x55, 0x25, 0x25, 0x55, 0xe6, 0xd1, 0x5d, 0x98, 0xb1, 0x0c, 0xcf, - 0xbf, 0xdd, 0x6d, 0x19, 0x3e, 0xd9, 0x34, 0x3b, 0x44, 0x9c, 0xb9, 0x61, 0x72, 0xcb, 0xf2, 0xaa, - 0x72, 0x4d, 0xa1, 0x84, 0x63, 0x94, 0xd1, 0x2e, 0x20, 0xda, 0xb2, 0xe9, 0x1a, 0xb6, 0xc7, 0x67, - 0x45, 0xf9, 0x0d, 0x9f, 0xcb, 0x3e, 0x2b, 0xf8, 0xa1, 0xb5, 0x04, 0x35, 0x9c, 0xc2, 0x01, 0x5d, - 0x84, 0x71, 0x97, 0x18, 0x9e, 0xd8, 0xcc, 0xc9, 0xf0, 0xfc, 0x63, 0xd6, 0x8a, 0x05, 0x34, 0x7a, - 0xa0, 0xc6, 0x8f, 0x38, 0x50, 0xdf, 0xd3, 0x60, 0x26, 0xdc, 0xa6, 0x47, 0x60, 0xe6, 0x3a, 0xaa, - 0x99, 0xbb, 0x9e, 0x95, 0x4a, 0x3c, 0xc0, 0xb2, 0xbd, 0x9f, 0x8f, 0xce, 0x8f, 0x65, 0x8d, 0x3f, - 0x07, 0x93, 0xc1, 0xa9, 0x0e, 0xf2, 0xc6, 0x23, 0x7a, 0x9e, 0x8a, 0x67, 0x11, 0x29, 0xff, 0x10, - 0x4c, 0x70, 0xc8, 0x8f, 0x1a, 0xd6, 0x96, 0x30, 0x9a, 0x42, 0xec, 0xa5, 0x61, 0x0d, 0x8c, 0x69, - 0x9a, 0x61, 0x0d, 0xfa, 0xa0, 0xdb, 0x70, 0xa6, 0xeb, 0x3a, 0xac, 0x72, 0xee, 0x0a, 0x31, 0x5a, - 0x96, 0x69, 0x93, 0xe0, 0x3a, 0x97, 0xdf, 0x94, 0x3f, 0xbe, 0xdf, 0xaf, 0x9c, 0xd9, 0x48, 0x47, - 0xc1, 0x07, 0xf5, 0x55, 0xcb, 0x58, 0xc6, 0x8e, 0x2e, 0x63, 0x41, 0xbf, 0x24, 0xc3, 0x08, 0xe2, - 0x95, 0x0b, 0x6c, 0x11, 0x5f, 0xce, 0x6a, 0x2b, 0x53, 0xd4, 0x7a, 0x28, 0x52, 0x35, 0xc1, 0x14, - 0x4b, 0xf6, 0xfa, 0x9b, 0x05, 0x98, 0x8b, 0xdb, 0xc6, 0x93, 0xaf, 0xa8, 0xf9, 0x55, 0x0d, 0xe6, - 0x82, 0x7d, 0xe5, 0x3c, 0x49, 0x10, 0x1f, 0xaf, 0x65, 0x24, 0x4e, 0xdc, 0xca, 0xcb, 0xc2, 0xc4, - 0xcd, 0x18, 0x37, 0x9c, 0xe0, 0x8f, 0x5e, 0x85, 0x92, 0x0c, 0x23, 0x8f, 0x55, 0x5e, 0x33, 0xcb, - 0xec, 0x7b, 0x48, 0x02, 0x47, 0xe9, 0xa1, 0x37, 0x35, 0x80, 0x66, 0xa0, 0x80, 0x83, 0x7d, 0xbf, - 0x95, 0xd5, 0xbe, 0x4b, 0xd5, 0x1e, 0xba, 0x71, 0xb2, 0xc9, 0xc3, 0x11, 0xc6, 0xe8, 0xd7, 0x58, - 0x00, 0x29, 0xfd, 0x0e, 0xaf, 0x3c, 0xce, 0x46, 0xf2, 0xe9, 0xac, 0x25, 0x30, 0xbc, 0x56, 0x94, - 0x46, 0x3e, 0x02, 0xf2, 0xb0, 0x32, 0x08, 0xfd, 0x59, 0x90, 0x69, 0x5e, 0x7a, 0xa0, 0x58, 0xa2, - 0x77, 0xc3, 0xf0, 0x77, 0x84, 0x08, 0xca, 0x03, 0x75, 0x2d, 0x00, 0xe0, 0x10, 0x47, 0xff, 0x0b, - 0x0d, 0x16, 0x56, 0x3c, 0xdf, 0x74, 0xae, 0x10, 0xcf, 0xa7, 0x67, 0x8c, 0x9a, 0xe3, 0x9e, 0x45, - 0x06, 0x70, 0x68, 0xae, 0xc0, 0x9c, 0xb8, 0xeb, 0xe9, 0x6d, 0x79, 0xc4, 0x8f, 0x38, 0x35, 0x52, - 0x74, 0x96, 0x63, 0x70, 0x9c, 0xe8, 0x41, 0xa9, 0x88, 0x4b, 0x9f, 0x90, 0x4a, 0x5e, 0xa5, 0xd2, - 0x88, 0xc1, 0x71, 0xa2, 0x87, 0xfe, 0x8d, 0x1c, 0x9c, 0x62, 0xd3, 0x88, 0x15, 0x04, 0xff, 0x8a, - 0x06, 0x33, 0xbb, 0xa6, 0xeb, 0xf7, 0x0c, 0x2b, 0x7a, 0x7b, 0x35, 0xb2, 0xf4, 0x30, 0x5e, 0x2f, - 0x2a, 0x84, 0x43, 0x33, 0xae, 0xb6, 0xe3, 0xd8, 0x00, 0xe8, 0x98, 0x66, 0x5b, 0xea, 0x6a, 0x67, - 0x13, 0x71, 0xa6, 0xed, 0x23, 0xcf, 0x51, 0xc4, 0x1a, 0x71, 0x9c, 0xbf, 0xfe, 0xb2, 0x58, 0x3e, - 0x75, 0xe8, 0x03, 0x08, 0x81, 0x0e, 0xe3, 0xae, 0xd3, 0xa3, 0x26, 0x8d, 0x1a, 0xd6, 0xc9, 0x3a, - 0x30, 0xbf, 0x80, 0xb5, 0x60, 0x01, 0xd1, 0xff, 0x48, 0x83, 0xc9, 0x55, 0x67, 0x4b, 0xc4, 0x78, - 0x3f, 0x9f, 0x41, 0xbc, 0x25, 0xd5, 0xb2, 0xbc, 0x48, 0x08, 0x2d, 0xfd, 0x73, 0x4a, 0xb4, 0x75, - 0x2e, 0x42, 0xbb, 0xca, 0xaa, 0xe8, 0x29, 0xa9, 0x55, 0x67, 0xeb, 0xc0, 0x70, 0xfc, 0xf7, 0x0a, - 0x30, 0xfd, 0x82, 0xb1, 0x47, 0x6c, 0xdf, 0x10, 0x23, 0xfe, 0x08, 0x4c, 0x18, 0xad, 0x56, 0x5a, - 0x55, 0x79, 0x8d, 0x37, 0xe3, 0x00, 0xce, 0x02, 0x98, 0x2e, 0x4b, 0x09, 0x47, 0x4c, 0x6d, 0x18, - 0xc0, 0x84, 0x20, 0x1c, 0xc5, 0x0b, 0x8f, 0xd2, 0xb2, 0x63, 0x6f, 0x9b, 0xed, 0xb4, 0x43, 0xb0, - 0x1c, 0x83, 0xe3, 0x44, 0x0f, 0xb4, 0x0a, 0x48, 0x54, 0x8c, 0xd5, 0x9a, 0x4d, 0xa7, 0x67, 0xf3, - 0xc3, 0xc4, 0x63, 0x1b, 0xe9, 0xf3, 0xad, 0x27, 0x30, 0x70, 0x4a, 0x2f, 0xf4, 0x0a, 0x94, 0x9b, - 0x8c, 0xb2, 0xf0, 0x00, 0xa2, 0x14, 0xb9, 0x17, 0x28, 0xcb, 0x31, 0x96, 0x0f, 0xc0, 0xc3, 0x07, - 0x52, 0xa0, 0x23, 0xf5, 0x7c, 0xc7, 0x35, 0xda, 0x24, 0x4a, 0x77, 0x5c, 0x1d, 0x69, 0x23, 0x81, - 0x81, 0x53, 0x7a, 0xa1, 0x2f, 0xc2, 0xa4, 0xbf, 0xe3, 0x12, 0x6f, 0xc7, 0xb1, 0x5a, 0xe2, 0x66, - 0x71, 0xc4, 0x80, 0x57, 0xec, 0xfe, 0x66, 0x40, 0x35, 0xe2, 0x93, 0x04, 0x4d, 0x38, 0xe4, 0x89, - 0x5c, 0x18, 0xf7, 0x68, 0xb4, 0xe5, 0x95, 0x8b, 0x59, 0x78, 0x75, 0x82, 0x3b, 0x0b, 0xe0, 0x22, - 0xa1, 0x36, 0xe3, 0x80, 0x05, 0x27, 0xfd, 0x2f, 0x73, 0x30, 0x15, 0x45, 0x1c, 0xe0, 0xa4, 0x7e, - 0x59, 0x83, 0xa9, 0xa6, 0x63, 0xfb, 0xae, 0x63, 0xf1, 0x30, 0x92, 0x1f, 0x90, 0x11, 0x2b, 0xb3, - 0x19, 0xa9, 0x2b, 0xc4, 0x37, 0x4c, 0x2b, 0x12, 0x91, 0x46, 0xd8, 0x60, 0x85, 0x29, 0xfa, 0xaa, - 0x06, 0xb3, 0x61, 0xca, 0x25, 0x8c, 0x67, 0x33, 0x1d, 0x88, 0xac, 0x5a, 0xba, 0xaa, 0x72, 0xc2, - 0x71, 0xd6, 0xfa, 0x16, 0xcc, 0xc5, 0x77, 0x9b, 0x2e, 0x65, 0xd7, 0x10, 0x67, 0x3d, 0x1f, 0x2e, - 0xe5, 0x86, 0xe1, 0x79, 0x98, 0x41, 0xd0, 0x47, 0xa1, 0xd8, 0x31, 0xdc, 0xb6, 0x69, 0x1b, 0x16, - 0x5b, 0xc5, 0x7c, 0x44, 0x21, 0x89, 0x76, 0x2c, 0x31, 0xf4, 0xef, 0x8f, 0x41, 0x69, 0x9d, 0x18, - 0x5e, 0xcf, 0x25, 0xec, 0xc2, 0xe9, 0xc4, 0x5d, 0x44, 0xa5, 0xd4, 0x39, 0x9f, 0x5d, 0xa9, 0x33, - 0x7a, 0x09, 0x60, 0xdb, 0xb4, 0x4d, 0x6f, 0xe7, 0x98, 0x45, 0xd4, 0x2c, 0xf9, 0x76, 0x4d, 0x52, - 0xc0, 0x11, 0x6a, 0xe1, 0x57, 0x14, 0x85, 0x43, 0xbe, 0xa2, 0x78, 0x53, 0x8b, 0x18, 0x0f, 0xee, - 0x7c, 0xdd, 0x19, 0xb5, 0xf6, 0x56, 0x6e, 0x4c, 0x35, 0x30, 0x26, 0x57, 0x6d, 0xdf, 0xdd, 0x3b, - 0xd4, 0xc6, 0x6c, 0x42, 0xd1, 0x25, 0x5e, 0xaf, 0x43, 0x9d, 0xdd, 0x89, 0xa1, 0x97, 0x81, 0xe5, - 0x27, 0xb0, 0xe8, 0x8f, 0x25, 0xa5, 0xb3, 0xcf, 0xc2, 0xb4, 0x32, 0x04, 0x34, 0x07, 0xf9, 0x7b, - 0x64, 0x8f, 0xcb, 0x09, 0xa6, 0x7f, 0xa2, 0x05, 0xa5, 0x8a, 0x52, 0x2c, 0xcb, 0x27, 0x73, 0x97, - 0x35, 0xfd, 0x87, 0xe3, 0x30, 0x2e, 0xec, 0xd5, 0xd1, 0xba, 0x20, 0x7a, 0xcf, 0x9a, 0x3b, 0xc6, - 0x3d, 0xeb, 0x2a, 0x4c, 0x99, 0xb6, 0xe9, 0x9b, 0x86, 0xc5, 0x8a, 0x68, 0x84, 0xad, 0xba, 0x18, - 0x9c, 0xff, 0x95, 0x08, 0x2c, 0x85, 0x8e, 0xd2, 0x17, 0xdd, 0x82, 0x02, 0x53, 0xe6, 0x42, 0x9e, - 0x86, 0x4f, 0x39, 0xb1, 0x74, 0x32, 0x2f, 0xcb, 0xe2, 0x94, 0x98, 0x4f, 0xd9, 0x6b, 0x36, 0x89, - 0xe7, 0x49, 0x47, 0x5e, 0x88, 0x55, 0xe8, 0x53, 0xc6, 0xe0, 0x38, 0xd1, 0x83, 0x52, 0xd9, 0x36, - 0x4c, 0xab, 0xe7, 0x92, 0x90, 0xca, 0xb8, 0x4a, 0xe5, 0x5a, 0x0c, 0x8e, 0x13, 0x3d, 0xd0, 0x36, - 0x4c, 0x89, 0x36, 0x5e, 0xa6, 0x34, 0x71, 0xcc, 0x59, 0xb2, 0xcc, 0xd2, 0xb5, 0x08, 0x25, 0xac, - 0xd0, 0x45, 0x3d, 0x98, 0x37, 0xed, 0xa6, 0x63, 0x37, 0xad, 0x9e, 0x67, 0xee, 0x92, 0xb0, 0x26, - 0xea, 0x38, 0xcc, 0x4e, 0xef, 0xf7, 0x2b, 0xf3, 0x2b, 0x71, 0x72, 0x38, 0xc9, 0x01, 0xbd, 0xa1, - 0xc1, 0xe9, 0xa6, 0x63, 0x7b, 0xac, 0x2a, 0x78, 0x97, 0x5c, 0x75, 0x5d, 0xc7, 0xe5, 0xbc, 0x27, - 0x8f, 0xc9, 0x9b, 0xd5, 0xfc, 0x2c, 0xa7, 0x91, 0xc4, 0xe9, 0x9c, 0xd0, 0x6b, 0x50, 0xec, 0xba, - 0xce, 0xae, 0xd9, 0x22, 0xae, 0xc8, 0x5e, 0xad, 0x65, 0x51, 0x90, 0xbf, 0x21, 0x68, 0x86, 0x9a, - 0x20, 0x68, 0xc1, 0x92, 0x9f, 0xfe, 0xf5, 0x71, 0x98, 0x51, 0xd1, 0xd1, 0x17, 0x00, 0xba, 0xae, - 0xd3, 0x21, 0xfe, 0x0e, 0x91, 0xb5, 0x33, 0x37, 0x46, 0x2d, 0x86, 0x0f, 0xe8, 0x89, 0x6f, 0x05, - 0x98, 0x26, 0x0d, 0x5b, 0x71, 0x84, 0x23, 0x72, 0x61, 0xe2, 0x1e, 0xb7, 0x69, 0xc2, 0xc4, 0xbf, - 0x90, 0x89, 0x43, 0x22, 0x38, 0x97, 0xa8, 0xc9, 0x11, 0x4d, 0x38, 0x60, 0x84, 0xb6, 0x20, 0x7f, - 0x9f, 0x6c, 0x65, 0x53, 0xb6, 0x7d, 0x87, 0x88, 0x50, 0xa1, 0x3e, 0xb1, 0xdf, 0xaf, 0xe4, 0xef, - 0x90, 0x2d, 0x4c, 0x89, 0xd3, 0x79, 0xb5, 0x78, 0xb6, 0x48, 0xa8, 0x8a, 0x11, 0xe7, 0xa5, 0xa4, - 0x9e, 0xf8, 0xbc, 0x44, 0x13, 0x0e, 0x18, 0xa1, 0xd7, 0x60, 0xf2, 0xbe, 0xb1, 0x4b, 0xb6, 0x5d, - 0xc7, 0xf6, 0x45, 0xee, 0x7d, 0xc4, 0x9a, 0x90, 0x3b, 0x01, 0x39, 0xc1, 0x97, 0x59, 0x5b, 0xd9, - 0x88, 0x43, 0x76, 0x68, 0x17, 0x8a, 0x36, 0xb9, 0x8f, 0x89, 0x65, 0x36, 0x45, 0x3a, 0x7e, 0x44, - 0xb1, 0xbe, 0x21, 0xa8, 0x09, 0xce, 0xcc, 0x0c, 0x05, 0x6d, 0x58, 0xf2, 0xa2, 0x7b, 0x79, 0xd7, - 0xd9, 0x12, 0x8a, 0x6a, 0xc4, 0xbd, 0x94, 0x61, 0x1f, 0xdf, 0xcb, 0x55, 0x67, 0x0b, 0x53, 0xe2, - 0xfa, 0x37, 0xc6, 0x60, 0x2a, 0xfa, 0xb9, 0xd6, 0x00, 0x36, 0x4b, 0xba, 0x4d, 0xb9, 0x61, 0xdc, - 0x26, 0xea, 0xf5, 0x76, 0x42, 0x1b, 0x1f, 0x5c, 0x95, 0xad, 0x64, 0xe6, 0x35, 0x84, 0x5e, 0x6f, - 0xa4, 0xd1, 0xc3, 0x0a, 0xd3, 0x21, 0x52, 0x4d, 0xd4, 0x0f, 0xe2, 0xe6, 0x90, 0xd7, 0xf9, 0x4a, - 0x3f, 0x48, 0x31, 0x70, 0x97, 0x00, 0x84, 0xb9, 0xda, 0xee, 0x59, 0x4c, 0x38, 0x0a, 0xe1, 0xe5, - 0x55, 0x43, 0x42, 0x70, 0x04, 0x0b, 0x5d, 0x84, 0x71, 0x6a, 0x30, 0x48, 0x4b, 0x14, 0xe0, 0xca, - 0xd0, 0xe2, 0x1a, 0x6b, 0xc5, 0x02, 0x8a, 0x2e, 0x53, 0xdb, 0x1e, 0xaa, 0x79, 0x51, 0x57, 0xbb, - 0x10, 0xda, 0xf6, 0x10, 0x86, 0x15, 0x4c, 0x3a, 0x74, 0x42, 0xb5, 0x32, 0x53, 0xfd, 0x91, 0xa1, - 0x33, 0x55, 0x8d, 0x39, 0x8c, 0x85, 0xba, 0x31, 0x2d, 0xce, 0x94, 0x76, 0x21, 0x12, 0xea, 0xc6, - 0xe0, 0x38, 0xd1, 0x43, 0xff, 0x0c, 0xcc, 0xa8, 0xd2, 0x4c, 0x97, 0xb8, 0xeb, 0x3a, 0xdb, 0xa6, - 0x45, 0xe2, 0x41, 0xfa, 0x06, 0x6f, 0xc6, 0x01, 0x7c, 0xb0, 0x2c, 0xf1, 0x5f, 0xe5, 0xe1, 0xd4, - 0x8d, 0xb6, 0x69, 0x3f, 0x88, 0xdd, 0x28, 0xa5, 0x7d, 0xc9, 0xad, 0x0d, 0xfb, 0x25, 0x77, 0x58, - 0x16, 0x25, 0xbe, 0x4b, 0x4f, 0x2f, 0x8b, 0x0a, 0x3e, 0x5a, 0x57, 0x71, 0xd1, 0xf7, 0x34, 0x38, - 0x67, 0xb4, 0xb8, 0x7f, 0x61, 0x58, 0xa2, 0x35, 0x64, 0x1a, 0xc8, 0xb8, 0x37, 0xa2, 0xb6, 0x48, - 0x4e, 0xbe, 0x5a, 0x3b, 0x84, 0x2b, 0xf7, 0x9a, 0x3f, 0x2c, 0x66, 0x70, 0xee, 0x30, 0x54, 0x7c, - 0xe8, 0xf0, 0xcf, 0xde, 0x84, 0x0f, 0x1d, 0xc9, 0x68, 0x28, 0xdf, 0xf8, 0xf7, 0x35, 0x98, 0x61, - 0xf5, 0x86, 0xa1, 0x5b, 0xf6, 0x8c, 0xcc, 0x69, 0xf1, 0xcd, 0x3b, 0xaf, 0xe6, 0xb4, 0x1e, 0xf6, - 0x2b, 0x25, 0x5e, 0xa1, 0xa8, 0xa6, 0xb8, 0x5e, 0x16, 0xa1, 0x15, 0xcb, 0xbc, 0xe5, 0x86, 0xf6, - 0xfc, 0xe5, 0x45, 0x42, 0x23, 0x20, 0x82, 0x43, 0x7a, 0xfa, 0xd7, 0xf3, 0x70, 0x2a, 0xa5, 0x70, - 0x86, 0x46, 0x3d, 0xe3, 0x96, 0xb1, 0x45, 0xac, 0x20, 0x6f, 0xf4, 0x6a, 0xe6, 0xc5, 0x39, 0xd5, - 0x35, 0x46, 0x9f, 0xef, 0xa1, 0xd4, 0x0c, 0xbc, 0x11, 0x0b, 0xe6, 0xe8, 0x37, 0x34, 0x28, 0x19, - 0x11, 0x31, 0xe3, 0xa9, 0xb4, 0xad, 0xec, 0x07, 0x93, 0x90, 0xaa, 0x48, 0x09, 0x40, 0x28, 0x44, - 0xd1, 0xb1, 0x9c, 0xfd, 0x59, 0x28, 0x45, 0xa6, 0x30, 0x8c, 0x74, 0x9c, 0x7d, 0x0e, 0xe6, 0x46, - 0x92, 0xae, 0x4f, 0xc3, 0xb0, 0xdf, 0x1d, 0x52, 0x5d, 0x7c, 0x3f, 0x5a, 0x86, 0x2b, 0x57, 0x5c, - 0xd4, 0xe1, 0x0a, 0xa8, 0xbe, 0x05, 0x73, 0x71, 0xd7, 0x6f, 0x98, 0xdb, 0xc8, 0x81, 0x14, 0xdd, - 0xc7, 0x61, 0xc8, 0x2f, 0x05, 0xf5, 0xbf, 0xce, 0xc1, 0x84, 0xa8, 0xbe, 0x7b, 0x04, 0xd5, 0x33, - 0xf7, 0x94, 0xfb, 0xdc, 0x95, 0x4c, 0x8a, 0x06, 0x0f, 0x2c, 0x9d, 0xf1, 0x62, 0xa5, 0x33, 0x2f, - 0x64, 0xc3, 0xee, 0xf0, 0xba, 0x99, 0xb7, 0x73, 0x30, 0x1b, 0xab, 0x66, 0x44, 0xbf, 0xa8, 0x25, - 0xd3, 0xc5, 0xb7, 0x33, 0x2d, 0x98, 0x94, 0xb5, 0x59, 0x87, 0x67, 0x8e, 0x3d, 0xe5, 0xdb, 0xe3, - 0x5b, 0x99, 0xbd, 0xe3, 0x70, 0xe8, 0x67, 0xc8, 0xff, 0xac, 0xc1, 0x07, 0x0f, 0xac, 0xef, 0x64, - 0xdf, 0x78, 0xb8, 0x2a, 0x54, 0xc8, 0x5e, 0xc6, 0xf5, 0xda, 0xf2, 0x1e, 0x31, 0x5e, 0xf6, 0x1f, - 0x67, 0x8f, 0x9e, 0x86, 0x29, 0xa6, 0xc7, 0xe9, 0xf1, 0xf1, 0x49, 0x57, 0x3c, 0x27, 0xc3, 0x62, - 0xf6, 0x46, 0xa4, 0x1d, 0x2b, 0x58, 0xfa, 0xef, 0x6a, 0x50, 0x3e, 0xe8, 0x8b, 0x82, 0x01, 0x3c, - 0xe2, 0x9f, 0x89, 0x55, 0xb2, 0x54, 0x12, 0x95, 0x2c, 0x31, 0x9f, 0x38, 0x28, 0x5a, 0x89, 0xb8, - 0xa3, 0xf9, 0x23, 0x0a, 0x35, 0xbe, 0xa6, 0xc1, 0x99, 0x03, 0x04, 0x27, 0x51, 0xd1, 0xa4, 0x1d, - 0xbb, 0xa2, 0x29, 0x37, 0x68, 0x45, 0x93, 0xfe, 0xb7, 0x79, 0x98, 0x13, 0xe3, 0x09, 0x8d, 0xf9, - 0x65, 0xa5, 0x1e, 0xe8, 0xc3, 0xb1, 0x7a, 0xa0, 0x85, 0x38, 0xfe, 0xff, 0x17, 0x03, 0xfd, 0x78, - 0x15, 0x03, 0xfd, 0x28, 0x07, 0xa7, 0x53, 0xbf, 0xd6, 0x40, 0x6f, 0xa5, 0x68, 0xc1, 0x3b, 0x19, - 0x7f, 0x16, 0x32, 0xa0, 0x1e, 0x1c, 0xb5, 0x82, 0xe6, 0xd7, 0xa3, 0x95, 0x2b, 0xdc, 0x41, 0xdf, - 0x3e, 0x81, 0x0f, 0x5c, 0x86, 0x2d, 0x62, 0xf9, 0xe5, 0x3c, 0x3c, 0x39, 0x28, 0xa1, 0x1f, 0xd3, - 0x22, 0x47, 0x4f, 0x29, 0x72, 0x7c, 0x34, 0x16, 0xea, 0x64, 0xea, 0x1d, 0xbf, 0x92, 0x97, 0x66, - 0x2f, 0x29, 0x9f, 0x03, 0x5d, 0xeb, 0x4f, 0x50, 0x2f, 0x26, 0x78, 0x4b, 0x20, 0x54, 0x85, 0x13, - 0x0d, 0xde, 0xfc, 0xb0, 0x5f, 0x99, 0x17, 0x9f, 0x2c, 0x37, 0x88, 0x2f, 0x1a, 0x71, 0xd0, 0x09, - 0x3d, 0x09, 0x45, 0x97, 0x43, 0x83, 0xb2, 0x2e, 0x91, 0xaa, 0xe0, 0x6d, 0x58, 0x42, 0xd1, 0x17, - 0x23, 0x6e, 0xdf, 0xd8, 0x49, 0x7d, 0x30, 0x70, 0x58, 0x06, 0xe6, 0x55, 0x28, 0x7a, 0xc1, 0x43, - 0x03, 0xfc, 0x5e, 0xee, 0xa9, 0x01, 0xab, 0x05, 0x69, 0x94, 0x10, 0xbc, 0x3a, 0xc0, 0xe7, 0x27, - 0xdf, 0x24, 0x90, 0x24, 0xf5, 0xdf, 0xc9, 0x43, 0x49, 0xec, 0xc4, 0x8a, 0xbd, 0xed, 0x3c, 0x02, - 0x37, 0xf7, 0x62, 0xcc, 0x12, 0x1d, 0xe0, 0x2c, 0x0e, 0x61, 0xbb, 0xa9, 0xc0, 0x98, 0x4d, 0xc7, - 0x16, 0x57, 0x4e, 0x52, 0x60, 0x56, 0x9a, 0x8e, 0x8d, 0x19, 0x04, 0x7d, 0x14, 0x8a, 0x9e, 0xf8, - 0xcc, 0x4b, 0xa8, 0x73, 0xb9, 0xe6, 0xc1, 0xe7, 0x5f, 0x58, 0x62, 0x50, 0x7a, 0x1e, 0x75, 0x6e, - 0xc6, 0x55, 0x7a, 0xcc, 0xb1, 0x61, 0x10, 0xb4, 0x14, 0xfd, 0xc2, 0x70, 0x42, 0x2d, 0x3f, 0x4a, - 0xfd, 0xca, 0xf0, 0x32, 0x4c, 0x19, 0x4d, 0xbf, 0x67, 0x58, 0xa2, 0x4f, 0x51, 0xd5, 0x17, 0xb5, - 0x08, 0x0c, 0x2b, 0x98, 0xfa, 0x7b, 0x9a, 0xdc, 0xa1, 0x47, 0x50, 0x3e, 0x7a, 0x57, 0x2d, 0x1f, - 0xbd, 0x9a, 0x89, 0xe6, 0x3e, 0xa0, 0x76, 0xf4, 0x2e, 0x4c, 0x45, 0x3f, 0x97, 0x44, 0x2f, 0x45, - 0x2c, 0x8f, 0x36, 0xca, 0x67, 0x59, 0x81, 0x6d, 0x0a, 0xad, 0x92, 0xfe, 0xed, 0x82, 0x5c, 0x45, - 0x56, 0xa4, 0x1a, 0xd5, 0x00, 0xda, 0xa1, 0x1a, 0x20, 0x7a, 0x00, 0x73, 0x99, 0x1f, 0x40, 0x74, - 0x0b, 0x8a, 0x81, 0x79, 0x10, 0x4e, 0xd4, 0x13, 0xd1, 0x4a, 0x1e, 0xea, 0x89, 0x51, 0x62, 0x11, - 0xb5, 0xc1, 0x62, 0x3a, 0xb9, 0x87, 0xd2, 0x6c, 0x49, 0x32, 0xa8, 0x06, 0xb3, 0x1d, 0xd3, 0xc6, - 0xc4, 0x68, 0xc9, 0xa7, 0x08, 0xc6, 0xf8, 0x2b, 0x0f, 0x81, 0x9b, 0xbf, 0xae, 0x82, 0x71, 0x1c, - 0x1f, 0x7d, 0x2e, 0x76, 0x5e, 0xb2, 0x8a, 0x38, 0x82, 0xc3, 0x76, 0xe8, 0xf1, 0x5b, 0x83, 0x05, - 0x57, 0xbc, 0x56, 0x70, 0xdd, 0xf4, 0x7c, 0xc7, 0xdd, 0xe3, 0x89, 0x36, 0x7e, 0xfd, 0xcb, 0x1e, - 0x13, 0xc0, 0x29, 0x70, 0x9c, 0xda, 0x8b, 0xea, 0x1b, 0xf6, 0xed, 0x2d, 0xbf, 0x0e, 0x2e, 0x86, - 0xfa, 0x86, 0x09, 0x5d, 0x0b, 0x0b, 0xe8, 0x61, 0x95, 0xbf, 0xc5, 0x11, 0x2a, 0x7f, 0xef, 0xc0, - 0xa4, 0x4b, 0x58, 0x30, 0x54, 0x0b, 0x52, 0x85, 0x43, 0xd7, 0x28, 0xe0, 0x80, 0x00, 0x0e, 0x69, - 0xe9, 0x7f, 0x32, 0x05, 0xd3, 0x4a, 0xd8, 0x8d, 0x9e, 0x80, 0x82, 0xb1, 0xe5, 0xb8, 0xfc, 0xae, - 0xa5, 0x18, 0x1e, 0xba, 0x1a, 0x6d, 0xc4, 0x1c, 0x86, 0xde, 0xd6, 0x60, 0xb6, 0xab, 0x5c, 0x11, - 0x06, 0x67, 0x7d, 0xc4, 0xa4, 0x8b, 0x7a, 0xef, 0x18, 0x79, 0x50, 0x47, 0x65, 0x86, 0xe3, 0xdc, - 0xa9, 0xb8, 0x8a, 0xca, 0x19, 0x8b, 0xb8, 0x0c, 0x5b, 0xf8, 0x44, 0x92, 0xc4, 0xb2, 0x0a, 0xc6, - 0x71, 0x7c, 0xba, 0xc8, 0x6c, 0x76, 0xa3, 0xbc, 0x79, 0x57, 0x0b, 0x08, 0xe0, 0x90, 0x16, 0x7a, - 0x0e, 0x66, 0xc4, 0xd7, 0xe6, 0x1b, 0x4e, 0xeb, 0xba, 0xe1, 0xed, 0x08, 0xeb, 0x21, 0x83, 0x97, - 0x65, 0x05, 0x8a, 0x63, 0xd8, 0x6c, 0x6e, 0xe1, 0x27, 0xfd, 0x8c, 0xc0, 0xb8, 0xfa, 0xde, 0xd0, - 0xb2, 0x0a, 0xc6, 0x71, 0x7c, 0x6a, 0xba, 0xa4, 0xa6, 0xe2, 0x09, 0x0d, 0x79, 0x76, 0x52, 0xb4, - 0x55, 0x0d, 0x66, 0x7b, 0x2c, 0x76, 0x6a, 0x05, 0x40, 0x21, 0xbd, 0x92, 0xe1, 0x6d, 0x15, 0x8c, - 0xe3, 0xf8, 0xe8, 0x59, 0x98, 0x76, 0xa9, 0x2e, 0x90, 0x04, 0x78, 0x96, 0x43, 0x5e, 0xd9, 0xe3, - 0x28, 0x10, 0xab, 0xb8, 0xe8, 0x79, 0x98, 0x0f, 0xbf, 0xbb, 0x0d, 0x08, 0xf0, 0xb4, 0x87, 0xfc, - 0xa4, 0xbf, 0x16, 0x47, 0xc0, 0xc9, 0x3e, 0xe8, 0xe7, 0x60, 0x2e, 0xb2, 0x12, 0x2b, 0x76, 0x8b, - 0x3c, 0x60, 0x4f, 0x6f, 0x14, 0xea, 0x0b, 0x2c, 0x75, 0x12, 0x83, 0xe1, 0x04, 0x36, 0xfa, 0x24, - 0xcc, 0x34, 0x1d, 0xcb, 0x62, 0x1a, 0x81, 0xbf, 0x75, 0x33, 0xc5, 0xf3, 0x47, 0x6c, 0xdf, 0x14, - 0x08, 0x8e, 0x61, 0xa2, 0x55, 0x40, 0xce, 0x96, 0x47, 0xdc, 0x5d, 0xd2, 0x7a, 0x9e, 0x3f, 0xc8, - 0x4b, 0x8d, 0xd2, 0xb4, 0x5a, 0xb7, 0x77, 0x33, 0x81, 0x81, 0x53, 0x7a, 0xa1, 0x2f, 0xa9, 0x45, - 0xdd, 0x33, 0x59, 0xbc, 0xec, 0x17, 0x8f, 0xf4, 0x8f, 0xac, 0xe8, 0x76, 0x61, 0x9c, 0x97, 0x51, - 0x96, 0x67, 0xb3, 0xf8, 0x16, 0x38, 0xfa, 0xac, 0x46, 0xa8, 0x51, 0x79, 0x2b, 0x16, 0x9c, 0xd0, - 0x17, 0x60, 0x72, 0x2b, 0x78, 0x03, 0xa9, 0x3c, 0x97, 0x85, 0x15, 0x89, 0x3d, 0xe7, 0x15, 0xfa, - 0x5c, 0x12, 0x80, 0x43, 0x96, 0xe8, 0x22, 0x94, 0xae, 0x6f, 0xd4, 0xa4, 0x14, 0xce, 0xb3, 0xdd, - 0x1f, 0xa3, 0x5d, 0x70, 0x14, 0xc0, 0x9c, 0xc3, 0xc0, 0xc2, 0xa3, 0x98, 0x73, 0x98, 0x34, 0xd8, - 0xcc, 0x95, 0x64, 0xa2, 0xda, 0x28, 0x9f, 0x8a, 0xbb, 0x92, 0xbc, 0x1d, 0x4b, 0x0c, 0xf4, 0x2a, - 0x94, 0x84, 0xca, 0x66, 0xba, 0x69, 0xe1, 0x78, 0x1f, 0x0c, 0xe0, 0x90, 0x04, 0x8e, 0xd2, 0x43, - 0xcf, 0x40, 0xa9, 0xcb, 0x9e, 0x86, 0x21, 0xd7, 0x7a, 0x96, 0x55, 0x3e, 0xcd, 0xf4, 0xa6, 0x4c, - 0x22, 0x6c, 0x84, 0x20, 0x1c, 0xc5, 0xd3, 0xdf, 0x08, 0x2f, 0x62, 0xe5, 0xeb, 0x07, 0x9f, 0x8f, - 0xee, 0x96, 0x96, 0xc5, 0xc3, 0xbd, 0x89, 0x07, 0xb0, 0xb8, 0xa2, 0x4d, 0xdd, 0xab, 0xae, 0x94, - 0xcf, 0x4c, 0x3e, 0x1e, 0x55, 0x5f, 0x76, 0xe0, 0xc5, 0xda, 0xaa, 0x74, 0xea, 0xef, 0xe5, 0xe5, - 0x65, 0x4c, 0x2c, 0xf3, 0xe9, 0x42, 0xc1, 0xf4, 0x7c, 0xd3, 0xc9, 0xb0, 0x82, 0x3e, 0xf6, 0x24, - 0x02, 0xab, 0xe4, 0x62, 0x00, 0xcc, 0x59, 0x51, 0x9e, 0x76, 0xdb, 0xb4, 0x1f, 0x88, 0xe9, 0xdf, - 0xca, 0x3c, 0xa5, 0xc9, 0x79, 0x32, 0x00, 0xe6, 0xac, 0xd0, 0x5d, 0xc8, 0x1b, 0xd6, 0x56, 0x46, - 0x8f, 0x34, 0xc7, 0x9f, 0x28, 0xe7, 0x75, 0x10, 0xb5, 0xb5, 0x3a, 0xa6, 0x4c, 0x28, 0x2f, 0xaf, - 0x63, 0x0a, 0xdb, 0x3c, 0x22, 0xaf, 0xc6, 0xfa, 0x4a, 0x1a, 0xaf, 0xc6, 0xfa, 0x0a, 0xa6, 0x4c, - 0xf4, 0x77, 0x34, 0x98, 0x4f, 0xe0, 0xc4, 0x1f, 0x34, 0xd7, 0x06, 0x7f, 0xd0, 0x5c, 0xbc, 0x55, - 0xd1, 0xe8, 0x5a, 0x66, 0xea, 0xc7, 0x1f, 0x9b, 0x31, 0x38, 0x4e, 0xf4, 0xd0, 0xbf, 0xa9, 0x41, - 0x29, 0x52, 0xb8, 0x4b, 0x5d, 0x35, 0x56, 0xe0, 0x2c, 0x86, 0x11, 0x3e, 0xd3, 0xc1, 0xae, 0x7d, - 0x38, 0x8c, 0xdf, 0x40, 0xb6, 0xc3, 0x7b, 0xb8, 0xc8, 0x0d, 0x24, 0x6d, 0xc5, 0x02, 0x2a, 0xc3, - 0xd5, 0xbc, 0x5a, 0xc7, 0x1b, 0x09, 0x57, 0x29, 0x3b, 0xaa, 0x33, 0x44, 0x84, 0x1c, 0x79, 0x15, - 0xc4, 0xa0, 0x9e, 0x21, 0x83, 0xa1, 0xf3, 0x90, 0x27, 0x76, 0x4b, 0x38, 0x38, 0x25, 0x81, 0x92, - 0xbf, 0x6a, 0xb7, 0x30, 0x6d, 0xd7, 0x6f, 0xc2, 0x54, 0x83, 0x34, 0x5d, 0xe2, 0xbf, 0x40, 0xf6, - 0x06, 0xbb, 0x23, 0x3b, 0xcf, 0x73, 0x8b, 0x39, 0x95, 0x20, 0xed, 0x4e, 0xdb, 0xf5, 0x3f, 0xd4, - 0x20, 0xf6, 0x48, 0x0b, 0xd2, 0x63, 0xe9, 0x42, 0x48, 0xa6, 0x0a, 0x95, 0xc8, 0x2d, 0x77, 0x68, - 0xe4, 0xb6, 0x0a, 0xa8, 0x63, 0xf8, 0xcd, 0x1d, 0xb1, 0x3f, 0x22, 0xf2, 0xe6, 0xbe, 0x65, 0xf8, - 0x99, 0x40, 0x02, 0x03, 0xa7, 0xf4, 0xd2, 0xbf, 0x9d, 0x83, 0x29, 0xe5, 0x6d, 0xdc, 0xa3, 0xa7, - 0x3f, 0xf8, 0x40, 0x53, 0x02, 0xb6, 0xfc, 0x90, 0x01, 0x5b, 0x34, 0x4a, 0x1d, 0x3b, 0xd9, 0x28, - 0xb5, 0x90, 0x49, 0x94, 0xaa, 0x7f, 0x6b, 0x0c, 0x66, 0xd4, 0x2f, 0xee, 0x06, 0x58, 0xd3, 0x8f, - 0x26, 0xd6, 0x74, 0x48, 0x67, 0x38, 0x3f, 0xaa, 0x33, 0x3c, 0x36, 0xaa, 0x33, 0x5c, 0x38, 0x86, - 0x33, 0x9c, 0x74, 0x65, 0xc7, 0x07, 0x76, 0x65, 0x3f, 0x25, 0xef, 0xdb, 0x26, 0x94, 0xab, 0xd2, - 0x30, 0xf3, 0x83, 0xd4, 0x6d, 0x58, 0x76, 0x5a, 0xa9, 0x19, 0xb4, 0xe2, 0x11, 0xb7, 0x70, 0x6e, - 0x6a, 0xa2, 0x66, 0xf8, 0x90, 0xf7, 0x03, 0x83, 0x27, 0x69, 0xf4, 0xd7, 0x73, 0x10, 0x3e, 0x77, - 0xcb, 0xde, 0xbd, 0xf1, 0x22, 0x3a, 0x4a, 0x18, 0xf0, 0xd5, 0x51, 0x1f, 0x97, 0x0a, 0x29, 0x8a, - 0x4c, 0x67, 0xa4, 0x05, 0x2b, 0x1c, 0xff, 0x07, 0x9e, 0xb9, 0x35, 0x60, 0x36, 0x56, 0x6a, 0x99, - 0x79, 0xe5, 0xc4, 0x37, 0x73, 0x30, 0x29, 0x8b, 0x55, 0xa9, 0x5a, 0xef, 0xb9, 0xc1, 0xb3, 0x25, - 0x52, 0xad, 0xdf, 0xc6, 0x6b, 0x98, 0xb6, 0xa3, 0x07, 0x30, 0xb1, 0x43, 0x8c, 0x16, 0x71, 0x83, - 0x7b, 0x85, 0xf5, 0x8c, 0xaa, 0x64, 0xaf, 0x33, 0xaa, 0xe1, 0x5c, 0xf8, 0x6f, 0x0f, 0x07, 0xec, - 0x68, 0xb0, 0xee, 0x9b, 0x1d, 0x42, 0x9d, 0xda, 0x88, 0x16, 0xcd, 0x87, 0xc1, 0xfa, 0xa6, 0x02, - 0xc5, 0x31, 0x6c, 0xaa, 0x5c, 0xee, 0x7a, 0x8e, 0xcd, 0x3e, 0x29, 0x1d, 0x53, 0x3d, 0xfb, 0xd5, - 0xc6, 0xcd, 0x1b, 0xec, 0x8b, 0x52, 0x89, 0x41, 0xb1, 0x4d, 0x56, 0xac, 0xe7, 0x12, 0x91, 0x0b, - 0x99, 0x0b, 0x3f, 0x2d, 0xe0, 0xed, 0x58, 0x62, 0xe8, 0xb7, 0x61, 0x36, 0x36, 0x91, 0xc0, 0x3c, - 0x6a, 0xe9, 0xe6, 0x71, 0xa0, 0xff, 0xb6, 0x51, 0xaf, 0xbe, 0xfb, 0xfe, 0xe2, 0x63, 0xdf, 0x79, - 0x7f, 0xf1, 0xb1, 0xef, 0xbe, 0xbf, 0xf8, 0xd8, 0xeb, 0xfb, 0x8b, 0xda, 0xbb, 0xfb, 0x8b, 0xda, - 0x77, 0xf6, 0x17, 0xb5, 0xef, 0xee, 0x2f, 0x6a, 0xff, 0xb4, 0xbf, 0xa8, 0xbd, 0xf3, 0xfd, 0xc5, - 0xc7, 0x5e, 0x2a, 0x06, 0x8b, 0xf9, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x19, 0x80, 0x8e, 0x39, - 0x26, 0x68, 0x00, 0x00, + // 5605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x6d, 0x6c, 0x24, 0xc9, + 0x55, 0xd7, 0x33, 0x1e, 0x7b, 0xfc, 0xc6, 0x9f, 0xb5, 0xde, 0xec, 0x64, 0x6f, 0xd7, 0xb3, 0xe9, + 0x8b, 0x96, 0x0b, 0x24, 0x76, 0xb2, 0xb9, 0x83, 0x25, 0x17, 0x9d, 0x98, 0xb1, 0x77, 0x6f, 0xed, + 0xb3, 0x77, 0xbd, 0x35, 0xde, 0x5b, 0xe5, 0x92, 0x83, 0xb4, 0x67, 0xca, 0xe3, 0xde, 0xed, 0xe9, + 0x9e, 0x74, 0xf7, 0x78, 0xd7, 0x49, 0x94, 0x4f, 0x85, 0x04, 0x94, 0xe8, 0x8e, 0x8f, 0x3f, 0x08, + 0x81, 0x10, 0xe2, 0x07, 0x82, 0x3f, 0xfc, 0xc8, 0x1f, 0x24, 0x22, 0xa2, 0x00, 0xd2, 0xf1, 0x03, + 0x12, 0xfe, 0x70, 0x01, 0x29, 0x03, 0xe7, 0x20, 0x21, 0xf8, 0x83, 0x82, 0x22, 0x50, 0x56, 0xfc, + 0x40, 0xf5, 0xd9, 0x5d, 0x3d, 0x6d, 0x7b, 0x66, 0xa7, 0xbd, 0x44, 0xc0, 0x3f, 0xcf, 0x7b, 0xaf, + 0xde, 0xab, 0xaa, 0x7e, 0xf5, 0xde, 0xab, 0x7a, 0xaf, 0xca, 0xb0, 0xd1, 0xb2, 0xc3, 0xbd, 0xee, + 0xce, 0x52, 0xc3, 0x6b, 0x2f, 0x5b, 0x7e, 0xcb, 0xeb, 0xf8, 0xde, 0x3d, 0xf6, 0xc7, 0xfb, 0x7c, + 0xcf, 0x71, 0xbc, 0x6e, 0x18, 0x2c, 0x77, 0xee, 0xb7, 0x96, 0xad, 0x8e, 0x1d, 0x2c, 0x2b, 0xc8, + 0xfe, 0x07, 0x2c, 0xa7, 0xb3, 0x67, 0x7d, 0x60, 0xb9, 0x45, 0x5c, 0xe2, 0x5b, 0x21, 0x69, 0x2e, + 0x75, 0x7c, 0x2f, 0xf4, 0xd0, 0x87, 0x23, 0x6e, 0x4b, 0x92, 0x1b, 0xfb, 0xe3, 0x17, 0x64, 0xdb, + 0xa5, 0xce, 0xfd, 0xd6, 0x12, 0xe5, 0xb6, 0xa4, 0x20, 0x92, 0xdb, 0xf9, 0xf7, 0xc5, 0xfa, 0xd2, + 0xf2, 0x5a, 0xde, 0x32, 0x63, 0xba, 0xd3, 0xdd, 0x65, 0xbf, 0xd8, 0x0f, 0xf6, 0x17, 0x17, 0x76, + 0xfe, 0x99, 0xfb, 0x57, 0x83, 0x25, 0xdb, 0xa3, 0x7d, 0x5b, 0xde, 0xb1, 0xc2, 0xc6, 0xde, 0xf2, + 0x7e, 0x5f, 0x8f, 0xce, 0x9b, 0x31, 0xa2, 0x86, 0xe7, 0x93, 0x34, 0x9a, 0xe7, 0x22, 0x9a, 0xb6, + 0xd5, 0xd8, 0xb3, 0x5d, 0xe2, 0x1f, 0x44, 0xa3, 0x6e, 0x93, 0xd0, 0x4a, 0x6b, 0xb5, 0x7c, 0x54, + 0x2b, 0xbf, 0xeb, 0x86, 0x76, 0x9b, 0xf4, 0x35, 0xf8, 0xe9, 0x93, 0x1a, 0x04, 0x8d, 0x3d, 0xd2, + 0xb6, 0xfa, 0xda, 0x7d, 0xf0, 0xa8, 0x76, 0xdd, 0xd0, 0x76, 0x96, 0x6d, 0x37, 0x0c, 0x42, 0x3f, + 0xd9, 0xc8, 0xfc, 0x77, 0x03, 0xe6, 0xab, 0x1b, 0xb5, 0x6d, 0xdf, 0xda, 0xdd, 0xb5, 0x1b, 0xd8, + 0xeb, 0x86, 0xb6, 0xdb, 0x42, 0xef, 0x81, 0x09, 0xdb, 0x6d, 0xf9, 0x24, 0x08, 0xca, 0xc6, 0x25, + 0xe3, 0xd9, 0xc9, 0xda, 0xec, 0x9b, 0xbd, 0xca, 0x53, 0x87, 0xbd, 0xca, 0xc4, 0x1a, 0x07, 0x63, + 0x89, 0x47, 0xcf, 0x43, 0x29, 0x20, 0xfe, 0xbe, 0xdd, 0x20, 0x5b, 0x9e, 0x1f, 0x96, 0x73, 0x97, + 0x8c, 0x67, 0x0b, 0xb5, 0x33, 0x82, 0xbc, 0x54, 0x8f, 0x50, 0x38, 0x4e, 0x47, 0x9b, 0xf9, 0x9e, + 0x17, 0x0a, 0x7c, 0x39, 0xcf, 0xa4, 0xa8, 0x66, 0x38, 0x42, 0xe1, 0x38, 0x1d, 0x5a, 0x85, 0x39, + 0xcb, 0x75, 0xbd, 0xd0, 0x0a, 0x6d, 0xcf, 0xdd, 0xf2, 0xc9, 0xae, 0xfd, 0xb0, 0x3c, 0xc6, 0xda, + 0x96, 0x45, 0xdb, 0xb9, 0x6a, 0x02, 0x8f, 0xfb, 0x5a, 0x98, 0x7f, 0x97, 0x83, 0x52, 0xd5, 0xb5, + 0x9c, 0x83, 0xc0, 0x0e, 0x70, 0xd7, 0x45, 0x1f, 0x87, 0x22, 0xfd, 0x7a, 0x4d, 0x2b, 0xb4, 0xd8, + 0x78, 0x4b, 0x57, 0xde, 0xbf, 0xc4, 0x27, 0x73, 0x29, 0x3e, 0x99, 0x91, 0x4e, 0x52, 0xea, 0xa5, + 0xfd, 0x0f, 0x2c, 0xdd, 0xda, 0xb9, 0x47, 0x1a, 0xe1, 0x26, 0x09, 0xad, 0x1a, 0x12, 0xf2, 0x21, + 0x82, 0x61, 0xc5, 0x15, 0x79, 0x30, 0x16, 0x74, 0x48, 0x83, 0x4d, 0x4f, 0xe9, 0xca, 0xe6, 0xd2, + 0x28, 0xfa, 0xbf, 0x14, 0xeb, 0x7a, 0xbd, 0x43, 0x1a, 0xb5, 0x29, 0x21, 0x7a, 0x8c, 0xfe, 0xc2, + 0x4c, 0x10, 0x7a, 0x00, 0xe3, 0x41, 0x68, 0x85, 0xdd, 0x80, 0x4d, 0x6d, 0xe9, 0xca, 0xad, 0xec, + 0x44, 0x32, 0xb6, 0xb5, 0x19, 0x21, 0x74, 0x9c, 0xff, 0xc6, 0x42, 0x9c, 0xf9, 0xf7, 0x06, 0x9c, + 0x89, 0x51, 0x57, 0xfd, 0x56, 0xb7, 0x4d, 0xdc, 0x10, 0x5d, 0x82, 0x31, 0xd7, 0x6a, 0x13, 0xa1, + 0x4f, 0xaa, 0xcb, 0x37, 0xad, 0x36, 0xc1, 0x0c, 0x83, 0x9e, 0x81, 0xc2, 0xbe, 0xe5, 0x74, 0x09, + 0x9b, 0xa4, 0xc9, 0xda, 0xb4, 0x20, 0x29, 0xbc, 0x42, 0x81, 0x98, 0xe3, 0xd0, 0xa7, 0x61, 0x92, + 0xfd, 0x71, 0xdd, 0xf7, 0xda, 0x19, 0x0d, 0x4d, 0xf4, 0xf0, 0x15, 0xc9, 0xb6, 0x36, 0x7d, 0xd8, + 0xab, 0x4c, 0xaa, 0x9f, 0x38, 0x12, 0x68, 0xfe, 0x83, 0x01, 0xb3, 0xb1, 0xc1, 0x6d, 0xd8, 0x41, + 0x88, 0x3e, 0xd6, 0xa7, 0x3c, 0x4b, 0x83, 0x29, 0x0f, 0x6d, 0xcd, 0x54, 0x67, 0x4e, 0x8c, 0xb4, + 0x28, 0x21, 0x31, 0xc5, 0x71, 0xa1, 0x60, 0x87, 0xa4, 0x1d, 0x94, 0x73, 0x97, 0xf2, 0xcf, 0x96, + 0xae, 0xac, 0x65, 0xf6, 0x19, 0xa3, 0xf9, 0x5d, 0xa3, 0xfc, 0x31, 0x17, 0x63, 0xfe, 0x56, 0x4e, + 0x1b, 0x21, 0xd5, 0x28, 0xe4, 0xc1, 0x44, 0x9b, 0x84, 0xbe, 0xdd, 0xa0, 0xd6, 0x80, 0xf6, 0x62, + 0x75, 0xb4, 0x5e, 0x6c, 0x32, 0x66, 0x91, 0x4d, 0xe1, 0xbf, 0x03, 0x2c, 0xa5, 0xa0, 0x3d, 0x18, + 0xb3, 0xfc, 0x96, 0x1c, 0xf3, 0xf5, 0x6c, 0xbe, 0x6f, 0xa4, 0x73, 0x55, 0xbf, 0x15, 0x60, 0x26, + 0x01, 0x2d, 0xc3, 0x64, 0x48, 0xfc, 0xb6, 0xed, 0x5a, 0x21, 0x37, 0x42, 0xc5, 0xda, 0xbc, 0x20, + 0x9b, 0xdc, 0x96, 0x08, 0x1c, 0xd1, 0x98, 0x6f, 0xe5, 0x60, 0xbe, 0x6f, 0x31, 0xa0, 0xe7, 0xa0, + 0xd0, 0xd9, 0xb3, 0x02, 0xa9, 0xdd, 0x8b, 0x72, 0x6a, 0xb7, 0x28, 0xf0, 0x51, 0xaf, 0x32, 0x2d, + 0x9b, 0x30, 0x00, 0xe6, 0xc4, 0xd4, 0xca, 0xb6, 0x49, 0x10, 0x58, 0x2d, 0xa9, 0xf2, 0xb1, 0x19, + 0x61, 0x60, 0x2c, 0xf1, 0xe8, 0xcb, 0x06, 0x4c, 0xf3, 0xd9, 0xc1, 0x24, 0xe8, 0x3a, 0x21, 0x5d, + 0xd6, 0x74, 0x6e, 0xd6, 0xb3, 0xf8, 0x12, 0x9c, 0x65, 0xed, 0xac, 0x90, 0x3e, 0x1d, 0x87, 0x06, + 0x58, 0x97, 0x8b, 0xee, 0xc2, 0x64, 0x10, 0x5a, 0x7e, 0x48, 0x9a, 0xd5, 0x90, 0x99, 0xde, 0xd2, + 0x95, 0x9f, 0x1c, 0x4c, 0xdf, 0xb7, 0xed, 0x36, 0xe1, 0x6b, 0xab, 0x2e, 0x19, 0xe0, 0x88, 0x97, + 0xf9, 0xaf, 0x06, 0xcc, 0xc9, 0x69, 0xda, 0x26, 0xed, 0x8e, 0x63, 0x85, 0xe4, 0x09, 0x58, 0xe6, + 0x50, 0xb3, 0xcc, 0x38, 0x9b, 0xf5, 0x25, 0xfb, 0x7f, 0x94, 0x79, 0x36, 0xff, 0xc5, 0x80, 0x85, + 0x24, 0xf1, 0x13, 0xb0, 0x26, 0x81, 0x6e, 0x4d, 0x6e, 0x66, 0x3b, 0xda, 0x23, 0x4c, 0xca, 0x0f, + 0x52, 0xc6, 0xfa, 0xbf, 0xdc, 0xae, 0x98, 0xbf, 0x3f, 0x06, 0x53, 0x55, 0x37, 0xb4, 0xab, 0xbb, + 0xbb, 0xb6, 0x6b, 0x87, 0x07, 0xe8, 0xab, 0x39, 0x58, 0xee, 0xf8, 0x64, 0x97, 0xf8, 0x3e, 0x69, + 0xae, 0x76, 0x7d, 0xdb, 0x6d, 0xd5, 0x1b, 0x7b, 0xa4, 0xd9, 0x75, 0x6c, 0xb7, 0xb5, 0xd6, 0x72, + 0x3d, 0x05, 0xbe, 0xf6, 0x90, 0x34, 0xba, 0x34, 0x58, 0x11, 0xdf, 0xbf, 0x3d, 0x5a, 0x37, 0xb7, + 0x86, 0x13, 0x5a, 0xfb, 0xe0, 0x61, 0xaf, 0xb2, 0x3c, 0x64, 0x23, 0x3c, 0xec, 0xd0, 0xd0, 0x57, + 0x72, 0xb0, 0xe4, 0x93, 0x4f, 0x74, 0xed, 0xc1, 0x67, 0x83, 0x2f, 0x50, 0x67, 0xb4, 0xd9, 0xc0, + 0x43, 0xc9, 0xac, 0x5d, 0x39, 0xec, 0x55, 0x86, 0x6c, 0x83, 0x87, 0x1c, 0x97, 0xf9, 0x67, 0x06, + 0x14, 0x87, 0x88, 0x92, 0x2a, 0x7a, 0x94, 0x34, 0xd9, 0x17, 0x21, 0x85, 0xfd, 0x11, 0xd2, 0x4b, + 0xa3, 0x4d, 0xda, 0x20, 0x91, 0xd1, 0xbf, 0xd1, 0x7d, 0x44, 0x32, 0x92, 0x42, 0x7b, 0xb0, 0xd0, + 0xf1, 0x9a, 0x72, 0xd1, 0xdf, 0xb0, 0x82, 0x3d, 0x86, 0x13, 0xc3, 0x7b, 0xee, 0xb0, 0x57, 0x59, + 0xd8, 0x4a, 0xc1, 0x3f, 0xea, 0x55, 0xca, 0x8a, 0x49, 0x82, 0x00, 0xa7, 0x72, 0x44, 0x1d, 0x28, + 0xee, 0xda, 0xc4, 0x69, 0x62, 0xb2, 0x2b, 0x34, 0x65, 0xc4, 0xe5, 0x7d, 0x5d, 0x70, 0xab, 0x4d, + 0x51, 0x5b, 0x2a, 0x7f, 0x61, 0x25, 0xc5, 0xfc, 0xd1, 0x18, 0xcc, 0xd6, 0x9c, 0x2e, 0x79, 0xc9, + 0x27, 0x44, 0xc6, 0x01, 0x55, 0x98, 0xed, 0xf8, 0x64, 0xdf, 0x26, 0x0f, 0xea, 0xc4, 0x21, 0x8d, + 0xd0, 0xf3, 0xc5, 0x50, 0xcf, 0x89, 0x2f, 0x39, 0xbb, 0xa5, 0xa3, 0x71, 0x92, 0x1e, 0xbd, 0x08, + 0x33, 0x56, 0x23, 0xb4, 0xf7, 0x89, 0xe2, 0xc0, 0x3f, 0xf4, 0x3b, 0x04, 0x87, 0x99, 0xaa, 0x86, + 0xc5, 0x09, 0x6a, 0xf4, 0x31, 0x28, 0x07, 0x0d, 0xcb, 0x21, 0x77, 0x3a, 0x42, 0xd4, 0xca, 0x1e, + 0x69, 0xdc, 0xdf, 0xf2, 0x6c, 0x37, 0x14, 0x01, 0xce, 0x25, 0xc1, 0xa9, 0x5c, 0x3f, 0x82, 0x0e, + 0x1f, 0xc9, 0x01, 0xfd, 0xa9, 0x01, 0x17, 0x3b, 0x3e, 0xd9, 0xf2, 0xbd, 0xb6, 0x47, 0xb5, 0xb7, + 0x2f, 0x14, 0x12, 0x21, 0xc1, 0x2b, 0x23, 0x2e, 0x53, 0x0e, 0xe9, 0xdf, 0x75, 0xbc, 0xeb, 0xb0, + 0x57, 0xb9, 0xb8, 0x75, 0x5c, 0x07, 0xf0, 0xf1, 0xfd, 0x43, 0xdf, 0x32, 0x60, 0xb1, 0xe3, 0x05, + 0xe1, 0x31, 0x43, 0x28, 0x9c, 0xea, 0x10, 0xcc, 0xc3, 0x5e, 0x65, 0x71, 0xeb, 0xd8, 0x1e, 0xe0, + 0x13, 0x7a, 0x68, 0x7e, 0xa1, 0x04, 0xf3, 0x31, 0xdd, 0xa3, 0x1b, 0xfa, 0xd6, 0x01, 0x7a, 0x01, + 0xa6, 0xa5, 0x32, 0xf0, 0x5d, 0x35, 0xd7, 0x3d, 0x15, 0xd7, 0x55, 0xe3, 0x48, 0xac, 0xd3, 0x52, + 0xbd, 0x53, 0xaa, 0xc8, 0x5b, 0x27, 0xf4, 0x6e, 0x4b, 0xc3, 0xe2, 0x04, 0x35, 0x5a, 0x83, 0x33, + 0x02, 0x82, 0x49, 0xc7, 0xb1, 0x1b, 0xd6, 0x8a, 0xd7, 0x15, 0x2a, 0x57, 0xa8, 0x9d, 0x3b, 0xec, + 0x55, 0xce, 0x6c, 0xf5, 0xa3, 0x71, 0x5a, 0x1b, 0xb4, 0x01, 0x0b, 0x56, 0x37, 0xf4, 0xd4, 0xf8, + 0xaf, 0xb9, 0xd6, 0x8e, 0x43, 0x9a, 0x4c, 0xb5, 0x8a, 0xb5, 0x32, 0xb5, 0x1a, 0xd5, 0x14, 0x3c, + 0x4e, 0x6d, 0x85, 0xb6, 0x12, 0xdc, 0xea, 0xa4, 0xe1, 0xb9, 0x4d, 0xfe, 0x95, 0x0b, 0xb5, 0x0b, + 0x62, 0x78, 0x3a, 0x47, 0x41, 0x83, 0x53, 0x5b, 0x22, 0x07, 0x66, 0xda, 0xd6, 0xc3, 0x3b, 0xae, + 0xb5, 0x6f, 0xd9, 0x0e, 0x15, 0x52, 0x1e, 0x3f, 0x21, 0x34, 0xed, 0x86, 0xb6, 0xb3, 0xc4, 0x4f, + 0x60, 0x96, 0xd6, 0xdc, 0xf0, 0x96, 0x5f, 0x0f, 0xa9, 0x13, 0xa8, 0x21, 0x3a, 0xb1, 0x9b, 0x1a, + 0x2f, 0x9c, 0xe0, 0x8d, 0x6e, 0xc1, 0x59, 0xb6, 0x1c, 0x57, 0xbd, 0x07, 0xee, 0x2a, 0x71, 0xac, + 0x03, 0x39, 0x80, 0x09, 0x36, 0x80, 0x77, 0x1e, 0xf6, 0x2a, 0x67, 0xeb, 0x69, 0x04, 0x38, 0xbd, + 0x1d, 0xb2, 0xe0, 0x69, 0x1d, 0x81, 0xc9, 0xbe, 0x1d, 0xd8, 0x9e, 0xbb, 0x61, 0xb7, 0xed, 0xb0, + 0x5c, 0x64, 0x6c, 0x2b, 0x87, 0xbd, 0xca, 0xd3, 0xf5, 0xa3, 0xc9, 0xf0, 0x71, 0x3c, 0xd0, 0x6f, + 0x1a, 0xb0, 0x90, 0xb6, 0x0c, 0xcb, 0x93, 0x59, 0x9c, 0x7f, 0x24, 0x96, 0x16, 0xd7, 0x88, 0x54, + 0xa3, 0x90, 0xda, 0x09, 0xf4, 0x39, 0x03, 0xa6, 0xac, 0x58, 0x70, 0x56, 0x06, 0xd6, 0xab, 0xf5, + 0x51, 0xa3, 0xe1, 0x88, 0x63, 0x6d, 0xee, 0xb0, 0x57, 0xd1, 0x02, 0x40, 0xac, 0x49, 0x44, 0xbf, + 0x6d, 0xc0, 0xd9, 0xd4, 0x35, 0x5e, 0x2e, 0x9d, 0xc6, 0x0c, 0x31, 0x25, 0x49, 0xb7, 0x39, 0xe9, + 0xdd, 0x40, 0x6f, 0x18, 0xca, 0x95, 0x6d, 0xca, 0xfd, 0xc8, 0x14, 0xeb, 0xda, 0xed, 0x11, 0xe3, + 0xd1, 0xc8, 0x7b, 0x4b, 0xc6, 0xb5, 0x33, 0x31, 0xcf, 0x28, 0x81, 0x38, 0x29, 0x1e, 0x7d, 0xcd, + 0x90, 0xae, 0x51, 0xf5, 0x68, 0xfa, 0xb4, 0x7a, 0x84, 0x22, 0x4f, 0xab, 0x3a, 0x94, 0x10, 0x6e, + 0xfe, 0x73, 0x1e, 0xa6, 0x56, 0x2c, 0xd7, 0xf2, 0x0f, 0x84, 0x6b, 0xf9, 0x13, 0x03, 0x2e, 0x34, + 0xba, 0xbe, 0x4f, 0xdc, 0xb0, 0x1e, 0x92, 0x4e, 0xbf, 0x63, 0x31, 0x4e, 0xd5, 0xb1, 0x5c, 0x3a, + 0xec, 0x55, 0x2e, 0xac, 0x1c, 0x23, 0x1f, 0x1f, 0xdb, 0x3b, 0xf4, 0xd7, 0x06, 0x98, 0x82, 0xa0, + 0x66, 0x35, 0xee, 0xb7, 0x7c, 0xaf, 0xeb, 0x36, 0xfb, 0x07, 0x91, 0x3b, 0xd5, 0x41, 0x5c, 0x3e, + 0xec, 0x55, 0xcc, 0x95, 0x13, 0x7b, 0x81, 0x07, 0xe8, 0x29, 0x7a, 0x09, 0xe6, 0x05, 0xd5, 0xb5, + 0x87, 0x1d, 0xe2, 0xdb, 0x34, 0x36, 0x15, 0x27, 0xcd, 0xef, 0x14, 0x66, 0x7f, 0x7e, 0x25, 0x49, + 0x80, 0xfb, 0xdb, 0x98, 0x7f, 0x34, 0x06, 0x20, 0xbf, 0x34, 0xe9, 0xa0, 0x9f, 0x82, 0xc9, 0x80, + 0x84, 0x77, 0x89, 0xdd, 0xda, 0x0b, 0xd9, 0x37, 0x2d, 0x88, 0x63, 0x0d, 0x09, 0xc4, 0x11, 0x1e, + 0xdd, 0x87, 0x42, 0xc7, 0xea, 0x06, 0x44, 0xcc, 0xdb, 0x7a, 0x26, 0xf3, 0xb6, 0x45, 0x39, 0xf2, + 0xd8, 0x9f, 0xfd, 0x89, 0xb9, 0x0c, 0xf4, 0x45, 0x03, 0x80, 0xe8, 0x63, 0x2d, 0x5d, 0xa9, 0x67, + 0x22, 0x32, 0x9a, 0x0e, 0x3a, 0x07, 0xb5, 0x99, 0xc3, 0x5e, 0x05, 0x62, 0xb3, 0x16, 0x13, 0x8b, + 0x1e, 0x40, 0xd1, 0x92, 0xe6, 0x6c, 0xec, 0x34, 0xcc, 0x19, 0x0b, 0xc9, 0xd5, 0xf7, 0x56, 0xc2, + 0xd0, 0x57, 0x0c, 0x98, 0x09, 0x48, 0x28, 0x3e, 0x15, 0xf5, 0x4f, 0x22, 0x96, 0xdb, 0x18, 0x4d, + 0x7e, 0x5d, 0xe3, 0xc9, 0x8d, 0x83, 0x0e, 0xc3, 0x09, 0xb9, 0xe6, 0x7f, 0x15, 0x61, 0x46, 0xaa, + 0x4c, 0x14, 0x9e, 0x35, 0x38, 0x24, 0x3d, 0x3c, 0x5b, 0x89, 0x23, 0xb1, 0x4e, 0x4b, 0x1b, 0x07, + 0x21, 0x8d, 0x07, 0xf4, 0xe8, 0x4c, 0x35, 0xae, 0xc7, 0x91, 0x58, 0xa7, 0x45, 0x6d, 0x28, 0x04, + 0x21, 0xe9, 0xc8, 0x43, 0xc3, 0x1b, 0xa3, 0xcd, 0x46, 0xb4, 0x12, 0xa2, 0x03, 0x1f, 0xfa, 0x2b, + 0xc0, 0x5c, 0x0a, 0x7a, 0xdd, 0x80, 0x99, 0x50, 0x4b, 0x28, 0x09, 0x35, 0xc8, 0x46, 0x13, 0xf5, + 0x5c, 0x15, 0xff, 0x1a, 0x3a, 0x0c, 0x27, 0xc4, 0xa7, 0x44, 0x6c, 0x85, 0x53, 0x8c, 0xd8, 0x5e, + 0x85, 0x62, 0xdb, 0x7a, 0x58, 0xef, 0xfa, 0xad, 0xc7, 0x8f, 0x0c, 0x99, 0x8a, 0x6f, 0x0a, 0x2e, + 0x58, 0xf1, 0x43, 0x9f, 0x37, 0x62, 0x8b, 0x6b, 0x82, 0x31, 0xbf, 0x9b, 0xed, 0xe2, 0x52, 0x06, + 0xf5, 0xc8, 0x65, 0xd6, 0x17, 0x3f, 0x15, 0x9f, 0x78, 0xfc, 0x44, 0x63, 0x01, 0xbe, 0x40, 0x54, + 0x2c, 0x30, 0x79, 0xaa, 0xb1, 0xc0, 0x8a, 0x26, 0x0c, 0x27, 0x84, 0xb3, 0xfe, 0xf0, 0x35, 0xa7, + 0xfa, 0x03, 0xa7, 0xda, 0x9f, 0xba, 0x26, 0x0c, 0x27, 0x84, 0x9b, 0x3f, 0x30, 0xe0, 0xdc, 0x8a, + 0xd3, 0x0d, 0x42, 0xe2, 0xff, 0x9f, 0x39, 0x53, 0xff, 0x4f, 0x03, 0x9e, 0x3e, 0x62, 0xcc, 0x4f, + 0xe0, 0x68, 0xfd, 0x93, 0xfa, 0xd1, 0xfa, 0x9d, 0x11, 0x6d, 0x6c, 0xfa, 0x38, 0x8e, 0x38, 0x61, + 0x0f, 0x61, 0x7a, 0xd5, 0x0a, 0xad, 0xa6, 0xd7, 0xe2, 0x47, 0xde, 0xe8, 0x45, 0x28, 0xda, 0x6e, + 0x48, 0xfc, 0x7d, 0xcb, 0x11, 0x5e, 0xc6, 0x94, 0x5d, 0x5f, 0x13, 0xf0, 0x47, 0xbd, 0xca, 0xcc, + 0x6a, 0xd7, 0x67, 0x69, 0x71, 0x6e, 0x73, 0xb0, 0x6a, 0x83, 0x9e, 0x81, 0xc2, 0x27, 0xba, 0xc4, + 0x3f, 0x48, 0xa6, 0x62, 0x6f, 0x53, 0x20, 0xe6, 0x38, 0xf3, 0x6f, 0x73, 0x10, 0x8b, 0x00, 0x9e, + 0x80, 0x5a, 0xb9, 0x9a, 0x5a, 0x8d, 0xe8, 0xd3, 0x63, 0xf1, 0xcc, 0x51, 0x39, 0xf4, 0xfd, 0x44, + 0x0e, 0xfd, 0x66, 0x66, 0x12, 0x8f, 0x4f, 0xa1, 0xbf, 0x65, 0xc0, 0xd3, 0x11, 0x71, 0x7f, 0x5c, + 0x7b, 0xf2, 0x21, 0xf1, 0xf3, 0x50, 0xb2, 0xa2, 0x66, 0xe2, 0x2b, 0xaa, 0xea, 0x8a, 0x18, 0x47, + 0x1c, 0xa7, 0x8b, 0xd2, 0x98, 0xf9, 0xc7, 0x4c, 0x63, 0x8e, 0x1d, 0x9f, 0xc6, 0x34, 0x7f, 0x98, + 0x83, 0x8b, 0xfd, 0x23, 0x93, 0xda, 0x8d, 0xc9, 0xee, 0x00, 0x63, 0xbb, 0x0a, 0x53, 0xa1, 0x68, + 0x40, 0xa1, 0x62, 0x70, 0x0b, 0x82, 0x72, 0x6a, 0x3b, 0x86, 0xc3, 0x1a, 0x25, 0x6d, 0xd9, 0xe0, + 0xeb, 0xaa, 0xde, 0xf0, 0x3a, 0x32, 0xdf, 0xab, 0x5a, 0xae, 0xc4, 0x70, 0x58, 0xa3, 0x54, 0x89, + 0xa3, 0xb1, 0x53, 0x4f, 0x48, 0xd7, 0xe1, 0xac, 0xcc, 0x1f, 0x5c, 0xf7, 0xfc, 0x15, 0xaf, 0xdd, + 0x71, 0x08, 0x4b, 0x7f, 0x14, 0x58, 0x67, 0x2f, 0x8a, 0x26, 0x67, 0x71, 0x1a, 0x11, 0x4e, 0x6f, + 0x6b, 0xbe, 0x95, 0x87, 0x33, 0xd1, 0xb4, 0xaf, 0x78, 0x6e, 0xd3, 0x66, 0x59, 0x98, 0x17, 0x60, + 0x2c, 0x3c, 0xe8, 0xc8, 0xc9, 0xfe, 0x09, 0xd9, 0x9d, 0xed, 0x83, 0x0e, 0xfd, 0xda, 0xe7, 0x52, + 0x9a, 0x50, 0x14, 0x66, 0x8d, 0xd0, 0x86, 0x5a, 0x1d, 0xfc, 0x0b, 0x3c, 0xa7, 0x6b, 0xf3, 0xa3, + 0x5e, 0x25, 0xa5, 0xa6, 0x6a, 0x49, 0x71, 0xd2, 0x75, 0x1e, 0xdd, 0x83, 0x19, 0xc7, 0x0a, 0xc2, + 0x3b, 0x9d, 0xa6, 0x15, 0x92, 0x6d, 0xbb, 0x4d, 0xc4, 0x9a, 0x1b, 0x26, 0xb7, 0xac, 0x8e, 0x2a, + 0x37, 0x34, 0x4e, 0x38, 0xc1, 0x19, 0xed, 0x03, 0xa2, 0x90, 0x6d, 0xdf, 0x72, 0x03, 0x3e, 0x2a, + 0x2a, 0x6f, 0xf8, 0x5c, 0xf6, 0x79, 0x21, 0x0f, 0x6d, 0xf4, 0x71, 0xc3, 0x29, 0x12, 0xd0, 0x65, + 0x18, 0xf7, 0x89, 0x15, 0x88, 0x8f, 0x39, 0x19, 0xad, 0x7f, 0xcc, 0xa0, 0x58, 0x60, 0xe3, 0x0b, + 0x6a, 0xfc, 0x84, 0x05, 0xf5, 0x3d, 0x03, 0x66, 0xa2, 0xcf, 0xf4, 0x04, 0xdc, 0x5c, 0x5b, 0x77, + 0x73, 0x37, 0xb2, 0x32, 0x89, 0x47, 0x78, 0xb6, 0xb7, 0xf3, 0xf1, 0xf1, 0xb1, 0xac, 0xf1, 0xa7, + 0x60, 0x52, 0xae, 0x6a, 0x99, 0x37, 0x1e, 0x31, 0xf2, 0xd4, 0x22, 0x8b, 0x58, 0xf9, 0x87, 0x10, + 0x82, 0x23, 0x79, 0xd4, 0xb1, 0x36, 0x85, 0xd3, 0x14, 0x6a, 0xaf, 0x1c, 0xab, 0x74, 0xa6, 0x69, + 0x8e, 0x55, 0xb6, 0x41, 0x77, 0xe0, 0x5c, 0xc7, 0xf7, 0x58, 0xe5, 0xdc, 0x2a, 0xb1, 0x9a, 0x8e, + 0xed, 0x12, 0x79, 0x9c, 0xcb, 0x4f, 0xca, 0x9f, 0x3e, 0xec, 0x55, 0xce, 0x6d, 0xa5, 0x93, 0xe0, + 0xa3, 0xda, 0xea, 0x65, 0x2c, 0x63, 0x27, 0x97, 0xb1, 0xa0, 0x5f, 0x52, 0xdb, 0x08, 0x12, 0x94, + 0x0b, 0x6c, 0x12, 0x3f, 0x9a, 0xd5, 0xa7, 0x4c, 0x31, 0xeb, 0x91, 0x4a, 0x55, 0x85, 0x50, 0xac, + 0xc4, 0x9b, 0x5f, 0x2a, 0xc0, 0x5c, 0xd2, 0x37, 0x9e, 0x7e, 0x45, 0xcd, 0xaf, 0x1a, 0x30, 0x27, + 0xbf, 0x2b, 0x97, 0x49, 0xe4, 0xfe, 0x78, 0x23, 0x23, 0x75, 0xe2, 0x5e, 0x5e, 0x15, 0x26, 0x6e, + 0x27, 0xa4, 0xe1, 0x3e, 0xf9, 0xe8, 0x35, 0x28, 0xa9, 0x6d, 0xe4, 0x63, 0x95, 0xd7, 0xcc, 0x32, + 0xff, 0x1e, 0xb1, 0xc0, 0x71, 0x7e, 0xe8, 0x4b, 0x06, 0x40, 0x43, 0x1a, 0x60, 0xf9, 0xdd, 0x6f, + 0x67, 0xf5, 0xdd, 0x95, 0x69, 0x8f, 0xc2, 0x38, 0x05, 0x0a, 0x70, 0x4c, 0x30, 0xfa, 0x35, 0xb6, + 0x81, 0x54, 0x71, 0x47, 0x50, 0x1e, 0x67, 0x3d, 0xf9, 0x48, 0xd6, 0x1a, 0x18, 0x1d, 0x2b, 0x2a, + 0x27, 0x1f, 0x43, 0x05, 0x58, 0xeb, 0x84, 0xf9, 0x02, 0xa8, 0x34, 0x2f, 0x5d, 0x50, 0x2c, 0xd1, + 0xbb, 0x65, 0x85, 0x7b, 0x42, 0x05, 0xd5, 0x82, 0xba, 0x2e, 0x11, 0x38, 0xa2, 0x31, 0xff, 0xdc, + 0x80, 0x85, 0xb5, 0x20, 0xb4, 0xbd, 0x55, 0x12, 0x84, 0x74, 0x8d, 0x51, 0x77, 0xdc, 0x75, 0xc8, + 0x00, 0x01, 0xcd, 0x2a, 0xcc, 0x89, 0xb3, 0x9e, 0xee, 0x4e, 0x40, 0xc2, 0x58, 0x50, 0xa3, 0x54, + 0x67, 0x25, 0x81, 0xc7, 0x7d, 0x2d, 0x28, 0x17, 0x71, 0xe8, 0x13, 0x71, 0xc9, 0xeb, 0x5c, 0xea, + 0x09, 0x3c, 0xee, 0x6b, 0x61, 0x7e, 0x23, 0x07, 0x67, 0xd8, 0x30, 0x12, 0x05, 0xc1, 0xbf, 0x62, + 0xc0, 0xcc, 0xbe, 0xed, 0x87, 0x5d, 0xcb, 0x89, 0x9f, 0x5e, 0x8d, 0xac, 0x3d, 0x4c, 0xd6, 0x2b, + 0x1a, 0xe3, 0xc8, 0x8d, 0xeb, 0x70, 0x9c, 0xe8, 0x00, 0xed, 0xd3, 0x6c, 0x53, 0x9f, 0xed, 0x6c, + 0x76, 0x9c, 0x69, 0xdf, 0x91, 0xe7, 0x28, 0x12, 0x40, 0x9c, 0x94, 0x6f, 0x7e, 0x54, 0x4c, 0x9f, + 0xde, 0xf5, 0x01, 0x94, 0xc0, 0x84, 0x71, 0xdf, 0xeb, 0x52, 0x97, 0x46, 0x1d, 0xeb, 0x64, 0x0d, + 0x58, 0x5c, 0xc0, 0x20, 0x58, 0x60, 0xcc, 0x3f, 0x34, 0x60, 0x72, 0xdd, 0xdb, 0x11, 0x7b, 0xbc, + 0x9f, 0xcf, 0x60, 0xbf, 0xa5, 0xcc, 0xb2, 0x3a, 0x48, 0x88, 0x3c, 0xfd, 0x8b, 0xda, 0x6e, 0xeb, + 0x42, 0x8c, 0xf7, 0x12, 0xab, 0xa2, 0xa7, 0xac, 0xd6, 0xbd, 0x9d, 0x23, 0xb7, 0xe3, 0xbf, 0x5b, + 0x80, 0xe9, 0x97, 0xad, 0x03, 0xe2, 0x86, 0x96, 0xe8, 0xf1, 0x7b, 0x60, 0xc2, 0x6a, 0x36, 0xd3, + 0xaa, 0xca, 0xab, 0x1c, 0x8c, 0x25, 0x9e, 0x6d, 0x60, 0x3a, 0x2c, 0x25, 0x1c, 0x73, 0xb5, 0xd1, + 0x06, 0x26, 0x42, 0xe1, 0x38, 0x5d, 0xb4, 0x94, 0x56, 0x3c, 0x77, 0xd7, 0x6e, 0xa5, 0x2d, 0x82, + 0x95, 0x04, 0x1e, 0xf7, 0xb5, 0x40, 0xeb, 0x80, 0x44, 0xc5, 0x58, 0xb5, 0xd1, 0xf0, 0xba, 0x2e, + 0x5f, 0x4c, 0x7c, 0x6f, 0xa3, 0x62, 0xbe, 0xcd, 0x3e, 0x0a, 0x9c, 0xd2, 0x0a, 0x7d, 0x0c, 0xca, + 0x0d, 0xc6, 0x59, 0x44, 0x00, 0x71, 0x8e, 0x3c, 0x0a, 0x54, 0xe5, 0x18, 0x2b, 0x47, 0xd0, 0xe1, + 0x23, 0x39, 0xd0, 0x9e, 0x06, 0xa1, 0xe7, 0x5b, 0x2d, 0x12, 0xe7, 0x3b, 0xae, 0xf7, 0xb4, 0xde, + 0x47, 0x81, 0x53, 0x5a, 0xa1, 0xcf, 0xc2, 0x64, 0xb8, 0xe7, 0x93, 0x60, 0xcf, 0x73, 0x9a, 0xe2, + 0x64, 0x71, 0xc4, 0x0d, 0xaf, 0xf8, 0xfa, 0xdb, 0x92, 0x6b, 0x2c, 0x26, 0x91, 0x20, 0x1c, 0xc9, + 0x44, 0x3e, 0x8c, 0x07, 0x74, 0xb7, 0x15, 0x94, 0x8b, 0x59, 0x44, 0x75, 0x42, 0x3a, 0xdb, 0xc0, + 0xc5, 0xb6, 0xda, 0x4c, 0x02, 0x16, 0x92, 0xcc, 0xbf, 0xc8, 0xc1, 0x54, 0x9c, 0x70, 0x80, 0x95, + 0xfa, 0x45, 0x03, 0xa6, 0x1a, 0x9e, 0x1b, 0xfa, 0x9e, 0xc3, 0xb7, 0x91, 0x7c, 0x81, 0x8c, 0x58, + 0x99, 0xcd, 0x58, 0xad, 0x92, 0xd0, 0xb2, 0x9d, 0xd8, 0x8e, 0x34, 0x26, 0x06, 0x6b, 0x42, 0xd1, + 0x57, 0x0d, 0x98, 0x8d, 0x52, 0x2e, 0xd1, 0x7e, 0x36, 0xd3, 0x8e, 0xa8, 0xaa, 0xa5, 0x6b, 0xba, + 0x24, 0x9c, 0x14, 0x6d, 0xee, 0xc0, 0x5c, 0xf2, 0x6b, 0xd3, 0xa9, 0xec, 0x58, 0x62, 0xad, 0xe7, + 0xa3, 0xa9, 0xdc, 0xb2, 0x82, 0x00, 0x33, 0x0c, 0x7a, 0x2f, 0x14, 0xdb, 0x96, 0xdf, 0xb2, 0x5d, + 0xcb, 0x61, 0xb3, 0x98, 0x8f, 0x19, 0x24, 0x01, 0xc7, 0x8a, 0xc2, 0xfc, 0xfe, 0x18, 0x94, 0x36, + 0x89, 0x15, 0x74, 0x7d, 0xc2, 0x0e, 0x9c, 0x4e, 0x3d, 0x44, 0xd4, 0x4a, 0x9d, 0xf3, 0xd9, 0x95, + 0x3a, 0xa3, 0x57, 0x01, 0x76, 0x6d, 0xd7, 0x0e, 0xf6, 0x1e, 0xb3, 0x88, 0x9a, 0x25, 0xdf, 0xae, + 0x2b, 0x0e, 0x38, 0xc6, 0x2d, 0xba, 0x45, 0x51, 0x38, 0xe6, 0x16, 0xc5, 0x97, 0x8c, 0x98, 0xf3, + 0xe0, 0xc1, 0xd7, 0xdd, 0x51, 0x6b, 0x6f, 0xd5, 0x87, 0x59, 0x92, 0xce, 0xe4, 0x9a, 0x1b, 0xfa, + 0x07, 0xc7, 0xfa, 0x98, 0x6d, 0x28, 0xfa, 0x24, 0xe8, 0xb6, 0x69, 0xb0, 0x3b, 0x31, 0xf4, 0x34, + 0xb0, 0xfc, 0x04, 0x16, 0xed, 0xb1, 0xe2, 0x74, 0xfe, 0x05, 0x98, 0xd6, 0xba, 0x80, 0xe6, 0x20, + 0x7f, 0x9f, 0x1c, 0x70, 0x3d, 0xc1, 0xf4, 0x4f, 0xb4, 0xa0, 0x55, 0x51, 0x8a, 0x69, 0xf9, 0x50, + 0xee, 0xaa, 0x61, 0xfe, 0x70, 0x1c, 0xc6, 0x85, 0xbf, 0x3a, 0xd9, 0x16, 0xc4, 0xcf, 0x59, 0x73, + 0x8f, 0x71, 0xce, 0xba, 0x0e, 0x53, 0xb6, 0x6b, 0x87, 0xb6, 0xe5, 0xb0, 0x22, 0x1a, 0xe1, 0xab, + 0x2e, 0xcb, 0xf5, 0xbf, 0x16, 0xc3, 0xa5, 0xf0, 0xd1, 0xda, 0xa2, 0xdb, 0x50, 0x60, 0xc6, 0x5c, + 0xe8, 0xd3, 0xf0, 0x29, 0x27, 0x96, 0x4e, 0xe6, 0x65, 0x59, 0x9c, 0x13, 0x8b, 0x29, 0xbb, 0x8d, + 0x06, 0x09, 0x02, 0x15, 0xc8, 0x0b, 0xb5, 0x8a, 0x62, 0xca, 0x04, 0x1e, 0xf7, 0xb5, 0xa0, 0x5c, + 0x76, 0x2d, 0xdb, 0xe9, 0xfa, 0x24, 0xe2, 0x32, 0xae, 0x73, 0xb9, 0x9e, 0xc0, 0xe3, 0xbe, 0x16, + 0x68, 0x17, 0xa6, 0x04, 0x8c, 0x97, 0x29, 0x4d, 0x3c, 0xe6, 0x28, 0x59, 0x66, 0xe9, 0x7a, 0x8c, + 0x13, 0xd6, 0xf8, 0xa2, 0x2e, 0xcc, 0xdb, 0x6e, 0xc3, 0x73, 0x1b, 0x4e, 0x37, 0xb0, 0xf7, 0x49, + 0x54, 0x13, 0xf5, 0x38, 0xc2, 0xce, 0x1e, 0xf6, 0x2a, 0xf3, 0x6b, 0x49, 0x76, 0xb8, 0x5f, 0x02, + 0xfa, 0xbc, 0x01, 0x67, 0x1b, 0x9e, 0x1b, 0xb0, 0xaa, 0xe0, 0x7d, 0x72, 0xcd, 0xf7, 0x3d, 0x9f, + 0xcb, 0x9e, 0x7c, 0x4c, 0xd9, 0xac, 0xe6, 0x67, 0x25, 0x8d, 0x25, 0x4e, 0x97, 0x84, 0x3e, 0x09, + 0xc5, 0x8e, 0xef, 0xed, 0xdb, 0x4d, 0xe2, 0x8b, 0xec, 0xd5, 0x46, 0x16, 0x05, 0xf9, 0x5b, 0x82, + 0x67, 0x64, 0x09, 0x24, 0x04, 0x2b, 0x79, 0xe6, 0xd7, 0xc7, 0x61, 0x46, 0x27, 0x47, 0x9f, 0x01, + 0xe8, 0xf8, 0x5e, 0x9b, 0x84, 0x7b, 0x44, 0xd5, 0xce, 0xdc, 0x1c, 0xb5, 0x18, 0x5e, 0xf2, 0x13, + 0x77, 0x05, 0x98, 0x25, 0x8d, 0xa0, 0x38, 0x26, 0x11, 0xf9, 0x30, 0x71, 0x9f, 0xfb, 0x34, 0xe1, + 0xe2, 0x5f, 0xce, 0x24, 0x20, 0x11, 0x92, 0x4b, 0xd4, 0xe5, 0x08, 0x10, 0x96, 0x82, 0xd0, 0x0e, + 0xe4, 0x1f, 0x90, 0x9d, 0x6c, 0xca, 0xb6, 0xef, 0x12, 0xb1, 0x55, 0xa8, 0x4d, 0x1c, 0xf6, 0x2a, + 0xf9, 0xbb, 0x64, 0x07, 0x53, 0xe6, 0x74, 0x5c, 0x4d, 0x9e, 0x2d, 0x12, 0xa6, 0x62, 0xc4, 0x71, + 0x69, 0xa9, 0x27, 0x3e, 0x2e, 0x01, 0xc2, 0x52, 0x10, 0xfa, 0x24, 0x4c, 0x3e, 0xb0, 0xf6, 0xc9, + 0xae, 0xef, 0xb9, 0xa1, 0xc8, 0xbd, 0x8f, 0x58, 0x13, 0x72, 0x57, 0xb2, 0x13, 0x72, 0x99, 0xb7, + 0x55, 0x40, 0x1c, 0x89, 0x43, 0xfb, 0x50, 0x74, 0xc9, 0x03, 0x4c, 0x1c, 0xbb, 0x21, 0xd2, 0xf1, + 0x23, 0xaa, 0xf5, 0x4d, 0xc1, 0x4d, 0x48, 0x66, 0x6e, 0x48, 0xc2, 0xb0, 0x92, 0x45, 0xbf, 0xe5, + 0x3d, 0x6f, 0x47, 0x18, 0xaa, 0x11, 0xbf, 0xa5, 0xda, 0xf6, 0xf1, 0x6f, 0xb9, 0xee, 0xed, 0x60, + 0xca, 0xdc, 0xfc, 0xc6, 0x18, 0x4c, 0xc5, 0xaf, 0x6b, 0x0d, 0xe0, 0xb3, 0x54, 0xd8, 0x94, 0x1b, + 0x26, 0x6c, 0xa2, 0x51, 0x6f, 0x3b, 0xf2, 0xf1, 0xf2, 0xa8, 0x6c, 0x2d, 0xb3, 0xa8, 0x21, 0x8a, + 0x7a, 0x63, 0xc0, 0x00, 0x6b, 0x42, 0x87, 0x48, 0x35, 0xd1, 0x38, 0x88, 0xbb, 0x43, 0x5e, 0xe7, + 0xab, 0xe2, 0x20, 0xcd, 0xc1, 0x5d, 0x01, 0x10, 0xee, 0x6a, 0xb7, 0xeb, 0x30, 0xe5, 0x28, 0x44, + 0x87, 0x57, 0x75, 0x85, 0xc1, 0x31, 0x2a, 0x74, 0x19, 0xc6, 0xa9, 0xc3, 0x20, 0x4d, 0x51, 0x80, + 0xab, 0xb6, 0x16, 0xd7, 0x19, 0x14, 0x0b, 0x2c, 0xba, 0x4a, 0x7d, 0x7b, 0x64, 0xe6, 0x45, 0x5d, + 0xed, 0x42, 0xe4, 0xdb, 0x23, 0x1c, 0xd6, 0x28, 0x69, 0xd7, 0x09, 0xb5, 0xca, 0xcc, 0xf4, 0xc7, + 0xba, 0xce, 0x4c, 0x35, 0xe6, 0x38, 0xb6, 0xd5, 0x4d, 0x58, 0x71, 0x66, 0xb4, 0x0b, 0xb1, 0xad, + 0x6e, 0x02, 0x8f, 0xfb, 0x5a, 0x98, 0x1f, 0x87, 0x19, 0x5d, 0x9b, 0xe9, 0x14, 0x77, 0x7c, 0x6f, + 0xd7, 0x76, 0x48, 0x72, 0x93, 0xbe, 0xc5, 0xc1, 0x58, 0xe2, 0x07, 0xcb, 0x12, 0xff, 0x65, 0x1e, + 0xce, 0xdc, 0x6c, 0xd9, 0xee, 0xc3, 0xc4, 0x89, 0x52, 0xda, 0x4d, 0x6e, 0x63, 0xd8, 0x9b, 0xdc, + 0x51, 0x59, 0x94, 0xb8, 0x97, 0x9e, 0x5e, 0x16, 0x25, 0x2f, 0xad, 0xeb, 0xb4, 0xe8, 0x7b, 0x06, + 0x5c, 0xb0, 0x9a, 0x3c, 0xbe, 0xb0, 0x1c, 0x01, 0x8d, 0x84, 0x4a, 0x1d, 0x0f, 0x46, 0xb4, 0x16, + 0xfd, 0x83, 0x5f, 0xaa, 0x1e, 0x23, 0x95, 0x47, 0xcd, 0xef, 0x16, 0x23, 0xb8, 0x70, 0x1c, 0x29, + 0x3e, 0xb6, 0xfb, 0xe7, 0x6f, 0xc1, 0xbb, 0x4e, 0x14, 0x34, 0x54, 0x6c, 0xfc, 0x7b, 0x06, 0xcc, + 0xb0, 0x7a, 0xc3, 0x28, 0x2c, 0x7b, 0x5e, 0xe5, 0xb4, 0xf8, 0xc7, 0xbb, 0xa8, 0xe7, 0xb4, 0x1e, + 0xf5, 0x2a, 0x25, 0x5e, 0xa1, 0xa8, 0xa7, 0xb8, 0x3e, 0x2a, 0xb6, 0x56, 0x2c, 0xf3, 0x96, 0x1b, + 0x3a, 0xf2, 0x57, 0x07, 0x09, 0x75, 0xc9, 0x04, 0x47, 0xfc, 0xcc, 0xaf, 0xe7, 0xe1, 0x4c, 0x4a, + 0xe1, 0x0c, 0xdd, 0xf5, 0x8c, 0x3b, 0xd6, 0x0e, 0x71, 0x64, 0xde, 0xe8, 0xb5, 0xcc, 0x8b, 0x73, + 0x96, 0x36, 0x18, 0x7f, 0xfe, 0x0d, 0x95, 0x65, 0xe0, 0x40, 0x2c, 0x84, 0xa3, 0xdf, 0x30, 0xa0, + 0x64, 0xc5, 0xd4, 0x8c, 0xa7, 0xd2, 0x76, 0xb2, 0xef, 0x4c, 0x9f, 0x56, 0xc5, 0x4a, 0x00, 0x22, + 0x25, 0x8a, 0xf7, 0xe5, 0xfc, 0xcf, 0x42, 0x29, 0x36, 0x84, 0x61, 0xb4, 0xe3, 0xfc, 0x8b, 0x30, + 0x37, 0x92, 0x76, 0x7d, 0x04, 0x86, 0xbd, 0x77, 0x48, 0x6d, 0xf1, 0x83, 0x78, 0x19, 0xae, 0x9a, + 0x71, 0x51, 0x87, 0x2b, 0xb0, 0xe6, 0x0e, 0xcc, 0x25, 0x43, 0xbf, 0x61, 0x4e, 0x23, 0x07, 0x32, + 0x74, 0xef, 0x87, 0x21, 0x6f, 0x0a, 0x9a, 0x7f, 0x95, 0x83, 0x09, 0x51, 0x7d, 0xf7, 0x04, 0xaa, + 0x67, 0xee, 0x6b, 0xe7, 0xb9, 0x6b, 0x99, 0x14, 0x0d, 0x1e, 0x59, 0x3a, 0x13, 0x24, 0x4a, 0x67, + 0x5e, 0xce, 0x46, 0xdc, 0xf1, 0x75, 0x33, 0xaf, 0xe7, 0x60, 0x36, 0x51, 0xcd, 0x88, 0x7e, 0xd1, + 0xe8, 0x4f, 0x17, 0xdf, 0xc9, 0xb4, 0x60, 0x52, 0xd5, 0x66, 0x1d, 0x9f, 0x39, 0x0e, 0xb4, 0xbb, + 0xc7, 0xb7, 0x33, 0x7b, 0xc7, 0xe1, 0xd8, 0x6b, 0xc8, 0xff, 0x64, 0xc0, 0x3b, 0x8f, 0xac, 0xef, + 0x64, 0x77, 0x3c, 0x7c, 0x1d, 0x2b, 0x74, 0x2f, 0xe3, 0x7a, 0x6d, 0x75, 0x8e, 0x98, 0x2c, 0xfb, + 0x4f, 0x8a, 0x47, 0xcf, 0xc1, 0x14, 0xb3, 0xe3, 0x74, 0xf9, 0x84, 0xa4, 0x23, 0x9e, 0x93, 0x61, + 0x7b, 0xf6, 0x7a, 0x0c, 0x8e, 0x35, 0x2a, 0xf3, 0x77, 0x0c, 0x28, 0x1f, 0x75, 0xa3, 0x60, 0x80, + 0x88, 0xf8, 0x67, 0x12, 0x95, 0x2c, 0x95, 0xbe, 0x4a, 0x96, 0x44, 0x4c, 0x2c, 0x8b, 0x56, 0x62, + 0xe1, 0x68, 0xfe, 0x84, 0x42, 0x8d, 0xaf, 0x19, 0x70, 0xee, 0x08, 0xc5, 0xe9, 0xab, 0x68, 0x32, + 0x1e, 0xbb, 0xa2, 0x29, 0x37, 0x68, 0x45, 0x93, 0xf9, 0x37, 0x79, 0x98, 0x13, 0xfd, 0x89, 0x9c, + 0xf9, 0x55, 0xad, 0x1e, 0xe8, 0xdd, 0x89, 0x7a, 0xa0, 0x85, 0x24, 0xfd, 0xff, 0x17, 0x03, 0xfd, + 0x78, 0x15, 0x03, 0xfd, 0x28, 0x07, 0x67, 0x53, 0x6f, 0x6b, 0xa0, 0xaf, 0xa4, 0x58, 0xc1, 0xbb, + 0x19, 0x5f, 0x0b, 0x19, 0xd0, 0x0e, 0x8e, 0x5a, 0x41, 0xf3, 0xeb, 0xf1, 0xca, 0x15, 0x1e, 0xa0, + 0xef, 0x9e, 0xc2, 0x05, 0x97, 0x61, 0x8b, 0x58, 0x7e, 0x39, 0x0f, 0xcf, 0x0e, 0xca, 0xe8, 0xc7, + 0xb4, 0xc8, 0x31, 0xd0, 0x8a, 0x1c, 0x9f, 0x8c, 0x87, 0x3a, 0x9d, 0x7a, 0xc7, 0x2f, 0xe7, 0x95, + 0xdb, 0xeb, 0xd7, 0xcf, 0x81, 0x8e, 0xf5, 0x27, 0x68, 0x14, 0x23, 0xdf, 0x12, 0x88, 0x4c, 0xe1, + 0x44, 0x9d, 0x83, 0x1f, 0xf5, 0x2a, 0xf3, 0xe2, 0xca, 0x72, 0x9d, 0x84, 0x02, 0x88, 0x65, 0x23, + 0xf4, 0x2c, 0x14, 0x7d, 0x8e, 0x95, 0x65, 0x5d, 0x22, 0x55, 0xc1, 0x61, 0x58, 0x61, 0xd1, 0x67, + 0x63, 0x61, 0xdf, 0xd8, 0x69, 0x5d, 0x18, 0x38, 0x2e, 0x03, 0xf3, 0x1a, 0x14, 0x03, 0xf9, 0xd0, + 0x00, 0x3f, 0x97, 0xfb, 0xe0, 0x80, 0xd5, 0x82, 0x74, 0x97, 0x20, 0x5f, 0x1d, 0xe0, 0xe3, 0x53, + 0x6f, 0x12, 0x28, 0x96, 0xe6, 0x7f, 0x8c, 0x41, 0x49, 0x7c, 0x89, 0x35, 0x77, 0xd7, 0x7b, 0x02, + 0x61, 0xee, 0xe5, 0x84, 0x27, 0x3a, 0x22, 0x58, 0x1c, 0xc2, 0x77, 0x53, 0x85, 0xb1, 0x1b, 0x9e, + 0x2b, 0x8e, 0x9c, 0x94, 0xc2, 0xac, 0x35, 0x3c, 0x17, 0x33, 0x0c, 0x7a, 0x2f, 0x14, 0x03, 0x71, + 0xcd, 0x4b, 0x98, 0x73, 0x35, 0xe7, 0xf2, 0xfa, 0x17, 0x56, 0x14, 0x94, 0x5f, 0x40, 0x83, 0x9b, + 0x71, 0x9d, 0x1f, 0x0b, 0x6c, 0x18, 0x06, 0x2d, 0xc7, 0x6f, 0x18, 0x4e, 0xe8, 0xe5, 0x47, 0xa9, + 0xb7, 0x0c, 0xaf, 0xc2, 0x94, 0xd5, 0x08, 0xbb, 0x96, 0x23, 0xda, 0x14, 0x75, 0x7b, 0x51, 0x8d, + 0xe1, 0xb0, 0x46, 0x49, 0xf7, 0x36, 0x3e, 0xb1, 0x9a, 0x07, 0xc9, 0xc3, 0x26, 0x4c, 0x81, 0x98, + 0xe3, 0xe8, 0x64, 0x89, 0x5b, 0x91, 0xe2, 0x8c, 0x49, 0x4d, 0x96, 0xb8, 0x3f, 0x89, 0x25, 0x9e, + 0x92, 0x36, 0x49, 0x40, 0xd7, 0x24, 0xbb, 0xca, 0x1c, 0x23, 0x5d, 0xe5, 0x60, 0x2c, 0xf1, 0x94, + 0xb4, 0xcb, 0x1c, 0x71, 0x93, 0x5d, 0x2d, 0x8e, 0x91, 0x72, 0xff, 0xdc, 0xc4, 0x12, 0x4f, 0x27, + 0x24, 0xba, 0xbb, 0x35, 0xcd, 0x88, 0xd5, 0x84, 0xa8, 0x72, 0x37, 0x1c, 0xd1, 0x98, 0x6f, 0x19, + 0x4a, 0xf1, 0x9e, 0x40, 0x55, 0xec, 0x3d, 0xbd, 0x2a, 0xf6, 0x5a, 0x26, 0x0e, 0xe9, 0x88, 0x92, + 0xd8, 0x7b, 0x30, 0x15, 0xbf, 0x05, 0x8a, 0x5e, 0x8d, 0x39, 0x54, 0x63, 0x94, 0xdb, 0x66, 0xd2, + 0xe5, 0x46, 0xce, 0xd6, 0xfc, 0x76, 0x41, 0xcd, 0x22, 0xab, 0xbd, 0x8d, 0x1b, 0x36, 0xe3, 0x58, + 0xc3, 0x16, 0xb7, 0x2b, 0xb9, 0xcc, 0xed, 0x0a, 0xba, 0x0d, 0x45, 0xe9, 0xf5, 0x44, 0x6c, 0xf8, + 0x4c, 0xbc, 0x40, 0x89, 0x06, 0x98, 0x94, 0x59, 0xcc, 0x1a, 0xb2, 0xad, 0xaa, 0xfa, 0x86, 0xca, + 0x1b, 0x2b, 0x36, 0xa8, 0x0a, 0xb3, 0x6d, 0xdb, 0x65, 0x6a, 0x2f, 0x4b, 0x72, 0xc7, 0xf8, 0xe3, + 0x15, 0x72, 0xf7, 0xb2, 0xa9, 0xa3, 0x71, 0x92, 0x1e, 0x7d, 0x2a, 0x61, 0x06, 0xb2, 0xda, 0x48, + 0x49, 0x1b, 0x72, 0xac, 0x55, 0xd9, 0x80, 0x05, 0x5f, 0x3c, 0xc2, 0x70, 0xc3, 0x0e, 0x42, 0xcf, + 0x3f, 0xe0, 0xf9, 0x43, 0x7e, 0xaa, 0xcd, 0xde, 0x48, 0xc0, 0x29, 0x78, 0x9c, 0xda, 0x8a, 0x9a, + 0x51, 0x76, 0xa5, 0x98, 0x9f, 0x72, 0x17, 0x23, 0x33, 0xca, 0x94, 0xae, 0x89, 0x05, 0xf6, 0xb8, + 0x82, 0xe6, 0xe2, 0x08, 0x05, 0xcd, 0x77, 0x61, 0xd2, 0x27, 0x6c, 0x8f, 0x57, 0x95, 0x19, 0xd0, + 0xa1, 0x4b, 0x2f, 0xb0, 0x64, 0x80, 0x23, 0x5e, 0xe6, 0x1f, 0x4f, 0xc1, 0xb4, 0x76, 0x9a, 0x40, + 0x0d, 0xa0, 0xb5, 0xe3, 0xf9, 0xfc, 0x08, 0xa9, 0x18, 0x2d, 0xba, 0x2a, 0x05, 0x62, 0x8e, 0x43, + 0xaf, 0x1b, 0x30, 0xdb, 0xd1, 0x4e, 0x3e, 0xe5, 0x5a, 0x1f, 0x31, 0x97, 0xa4, 0x1f, 0xa7, 0xc6, + 0xde, 0x09, 0xd2, 0x85, 0xe1, 0xa4, 0x74, 0xaa, 0xae, 0xa2, 0x20, 0xc8, 0x21, 0x3e, 0xa3, 0x16, + 0xa1, 0x9e, 0x62, 0xb1, 0xa2, 0xa3, 0x71, 0x92, 0x9e, 0x4e, 0x32, 0x1b, 0xdd, 0x28, 0x4f, 0xf9, + 0x55, 0x25, 0x03, 0x1c, 0xf1, 0x42, 0x2f, 0xc2, 0x8c, 0x70, 0x07, 0x5b, 0x5e, 0xf3, 0x86, 0x15, + 0xec, 0x09, 0xa7, 0xa8, 0xf6, 0x64, 0x2b, 0x1a, 0x16, 0x27, 0xa8, 0xd9, 0xd8, 0xa2, 0x97, 0x0a, + 0x18, 0x83, 0x71, 0xfd, 0x19, 0xa5, 0x15, 0x1d, 0x8d, 0x93, 0xf4, 0xd4, 0x23, 0x2b, 0x4b, 0xc5, + 0xf3, 0x34, 0x6a, 0xed, 0xa4, 0x58, 0xab, 0x2a, 0xcc, 0x0a, 0x4f, 0x23, 0x91, 0x42, 0x7b, 0x95, + 0xc0, 0x3b, 0x3a, 0x1a, 0x27, 0xe9, 0xd1, 0x0b, 0x30, 0xcd, 0x7c, 0xa5, 0x62, 0xc0, 0xfd, 0xa9, + 0xca, 0x44, 0xe0, 0x38, 0x12, 0xeb, 0xb4, 0xe8, 0x25, 0x98, 0x8f, 0xae, 0x13, 0x4b, 0x06, 0xdc, + 0xd3, 0xaa, 0x97, 0x0a, 0xaa, 0x49, 0x02, 0xdc, 0xdf, 0x06, 0xfd, 0x1c, 0xcc, 0xc5, 0x66, 0x62, + 0xcd, 0x6d, 0x92, 0x87, 0xc2, 0x0d, 0x2f, 0xb0, 0x8c, 0x50, 0x02, 0x87, 0xfb, 0xa8, 0xd1, 0x87, + 0x60, 0xa6, 0xe1, 0x39, 0x0e, 0xb3, 0x08, 0xfc, 0x09, 0x1f, 0xee, 0x9b, 0xf9, 0x2d, 0x58, 0x0d, + 0x83, 0x13, 0x94, 0x68, 0x1d, 0x90, 0xb7, 0x13, 0x10, 0x7f, 0x9f, 0x34, 0x5f, 0xe2, 0xef, 0x0c, + 0x53, 0xa7, 0x34, 0xad, 0x97, 0x23, 0xde, 0xea, 0xa3, 0xc0, 0x29, 0xad, 0xd0, 0x17, 0xf4, 0x5a, + 0xf5, 0x99, 0x2c, 0x1e, 0x2c, 0x4c, 0x1e, 0x60, 0x9c, 0x58, 0xa8, 0xee, 0xc3, 0x38, 0xaf, 0x0e, + 0x2d, 0xcf, 0x66, 0x71, 0xc5, 0x39, 0xfe, 0x5a, 0x48, 0x64, 0x51, 0x39, 0x14, 0x0b, 0x49, 0xe8, + 0x33, 0x30, 0xb9, 0x23, 0x9f, 0x76, 0x2a, 0xcf, 0x65, 0xe1, 0x45, 0x12, 0xaf, 0x94, 0x45, 0x91, + 0x93, 0x42, 0xe0, 0x48, 0x24, 0xba, 0x0c, 0xa5, 0x1b, 0x5b, 0x55, 0xa5, 0x85, 0xf3, 0xec, 0xeb, + 0x8f, 0xd1, 0x26, 0x38, 0x8e, 0x60, 0x31, 0xaf, 0xf4, 0xf0, 0x28, 0x11, 0xf3, 0xf6, 0x3b, 0x6c, + 0x16, 0x21, 0x33, 0x55, 0xad, 0x97, 0xcf, 0x24, 0x23, 0x64, 0x0e, 0xc7, 0x8a, 0x02, 0xbd, 0x06, + 0x25, 0x61, 0xb2, 0x99, 0x6d, 0x5a, 0x78, 0xbc, 0x7b, 0x10, 0x38, 0x62, 0x81, 0xe3, 0xfc, 0xd0, + 0xf3, 0x50, 0xea, 0xb0, 0x17, 0x6f, 0xc8, 0xf5, 0xae, 0xe3, 0x94, 0xcf, 0x32, 0xbb, 0xa9, 0x72, + 0x23, 0x5b, 0x11, 0x0a, 0xc7, 0xe9, 0xcc, 0xcf, 0x47, 0xe7, 0xcb, 0xea, 0x51, 0x87, 0x4f, 0xc7, + 0xbf, 0x96, 0x91, 0xc5, 0x7b, 0xc4, 0x7d, 0xef, 0x7a, 0x71, 0x43, 0x9b, 0xfa, 0xad, 0x3a, 0x4a, + 0x3f, 0x33, 0xb9, 0x13, 0xab, 0x3f, 0x58, 0xc1, 0x6b, 0xd0, 0x75, 0xed, 0x34, 0xdf, 0xca, 0xab, + 0x33, 0xa6, 0x44, 0x42, 0xd7, 0x87, 0x82, 0x1d, 0x84, 0xb6, 0x97, 0xe1, 0xc5, 0x80, 0xc4, 0x4b, + 0x0f, 0xac, 0x40, 0x8d, 0x21, 0x30, 0x17, 0x45, 0x65, 0xba, 0x2d, 0xdb, 0x7d, 0x28, 0x86, 0x7f, + 0x3b, 0xf3, 0x4c, 0x2d, 0x97, 0xc9, 0x10, 0x98, 0x8b, 0x42, 0xf7, 0x20, 0x6f, 0x39, 0x3b, 0x19, + 0xbd, 0x3d, 0x9d, 0x7c, 0x79, 0x9d, 0x97, 0x77, 0x54, 0x37, 0x6a, 0x98, 0x0a, 0xa1, 0xb2, 0x82, + 0xb6, 0x2d, 0x7c, 0xf3, 0x88, 0xb2, 0xea, 0x9b, 0x6b, 0x69, 0xb2, 0xea, 0x9b, 0x6b, 0x98, 0x0a, + 0x31, 0xdf, 0x30, 0x60, 0xbe, 0x8f, 0x26, 0xf9, 0x4e, 0xbb, 0x31, 0xf8, 0x3b, 0xed, 0xe2, 0x09, + 0x8e, 0x7a, 0xc7, 0xb1, 0x53, 0xef, 0xb4, 0x6c, 0x27, 0xf0, 0xb8, 0xaf, 0x85, 0xf9, 0x4d, 0x03, + 0x4a, 0xb1, 0x7a, 0x64, 0x1a, 0xaa, 0xb1, 0xba, 0x6d, 0xd1, 0x8d, 0xe8, 0xf5, 0x11, 0x76, 0x9a, + 0xc5, 0x71, 0xfc, 0x60, 0xb5, 0x15, 0x1d, 0x2f, 0xc6, 0x0e, 0x56, 0x29, 0x14, 0x0b, 0xac, 0xda, + 0x85, 0xe7, 0xf5, 0xf2, 0xe4, 0xd8, 0x2e, 0x9c, 0x8a, 0xa3, 0x36, 0x43, 0x6c, 0xfc, 0x63, 0x8f, + 0x9d, 0x58, 0x34, 0x32, 0x64, 0x38, 0x74, 0x11, 0xf2, 0xc4, 0x6d, 0x8a, 0x00, 0xa7, 0x24, 0x48, + 0xf2, 0xd7, 0xdc, 0x26, 0xa6, 0x70, 0xf3, 0x16, 0x4c, 0xd5, 0x49, 0xc3, 0x27, 0xe1, 0xcb, 0xe4, + 0x60, 0xb0, 0xa3, 0xbf, 0x8b, 0x3c, 0x65, 0x9a, 0xd3, 0x19, 0xd2, 0xe6, 0x14, 0x6e, 0xfe, 0x81, + 0x01, 0x89, 0xb7, 0x67, 0x90, 0x99, 0xc8, 0x82, 0x42, 0x7f, 0x06, 0x54, 0xdb, 0xb9, 0xe5, 0x8e, + 0xdd, 0xb9, 0xad, 0x03, 0x6a, 0x5b, 0x61, 0x63, 0x4f, 0x7c, 0x1f, 0x71, 0xa0, 0xc0, 0x63, 0xcb, + 0xe8, 0xf6, 0x43, 0x1f, 0x05, 0x4e, 0x69, 0x65, 0x7e, 0x3b, 0x07, 0x53, 0xda, 0x93, 0xbf, 0x27, + 0x0f, 0x7f, 0xf0, 0x8e, 0xa6, 0x6c, 0xd8, 0xf2, 0x43, 0x6e, 0xd8, 0xe2, 0xbb, 0xd4, 0xb1, 0xd3, + 0xdd, 0xa5, 0x16, 0x32, 0xd9, 0xa5, 0x9a, 0xdf, 0x1a, 0x83, 0x19, 0xfd, 0x22, 0xe1, 0x00, 0x73, + 0xfa, 0xde, 0xbe, 0x39, 0x1d, 0x32, 0x18, 0xce, 0x8f, 0x1a, 0x0c, 0x8f, 0x8d, 0x1a, 0x0c, 0x17, + 0x1e, 0x23, 0x18, 0xee, 0x0f, 0x65, 0xc7, 0x07, 0x0e, 0x65, 0x3f, 0xac, 0x8e, 0x11, 0x27, 0xb4, + 0x13, 0xe0, 0x28, 0xa1, 0x85, 0xf4, 0xcf, 0xb0, 0xe2, 0x35, 0x53, 0x13, 0x83, 0xc5, 0x13, 0x0e, + 0x17, 0xfd, 0xd4, 0xfc, 0xd3, 0xf0, 0x5b, 0xde, 0x77, 0x0c, 0x9e, 0x7b, 0x32, 0x3f, 0x97, 0x83, + 0xe8, 0x15, 0x5f, 0xf6, 0x9c, 0x4f, 0x10, 0xb3, 0x51, 0xc2, 0x81, 0xaf, 0x8f, 0xfa, 0x66, 0x56, + 0xc4, 0x51, 0x24, 0x70, 0x63, 0x10, 0xac, 0x49, 0xfc, 0x1f, 0x78, 0xbd, 0xd7, 0x82, 0xd9, 0x44, + 0x05, 0x69, 0xe6, 0x05, 0x21, 0xdf, 0xcc, 0xc1, 0xa4, 0xaa, 0xc1, 0xa5, 0x66, 0xbd, 0xeb, 0xcb, + 0xd7, 0x58, 0x94, 0x59, 0xbf, 0x83, 0x37, 0x30, 0x85, 0xa3, 0x87, 0x30, 0xb1, 0x47, 0xac, 0x26, + 0xf1, 0xe5, 0xb9, 0xc2, 0x66, 0x46, 0xc5, 0xbf, 0x37, 0x18, 0xd7, 0x68, 0x2c, 0xfc, 0x77, 0x80, + 0xa5, 0x38, 0xba, 0x59, 0x0f, 0xed, 0x36, 0xa1, 0x41, 0x6d, 0xcc, 0x8a, 0xe6, 0xa3, 0xcd, 0xfa, + 0xb6, 0x86, 0xc5, 0x09, 0x6a, 0x6a, 0x5c, 0xee, 0x05, 0x9e, 0xcb, 0x6e, 0xca, 0x8e, 0xe9, 0x91, + 0xfd, 0x7a, 0xfd, 0xd6, 0x4d, 0x76, 0x51, 0x56, 0x51, 0x50, 0x6a, 0x9b, 0xd5, 0x20, 0xfa, 0x44, + 0xa4, 0x78, 0xe6, 0xa2, 0x1b, 0x13, 0x1c, 0x8e, 0x15, 0x85, 0x79, 0x07, 0x66, 0x13, 0x03, 0x91, + 0xee, 0xd1, 0x48, 0x77, 0x8f, 0x03, 0xfd, 0x13, 0x91, 0xda, 0xd2, 0x9b, 0x6f, 0x2f, 0x3e, 0xf5, + 0x9d, 0xb7, 0x17, 0x9f, 0xfa, 0xee, 0xdb, 0x8b, 0x4f, 0x7d, 0xee, 0x70, 0xd1, 0x78, 0xf3, 0x70, + 0xd1, 0xf8, 0xce, 0xe1, 0xa2, 0xf1, 0xdd, 0xc3, 0x45, 0xe3, 0x1f, 0x0f, 0x17, 0x8d, 0x37, 0xbe, + 0xbf, 0xf8, 0xd4, 0xab, 0x45, 0x39, 0x99, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xd2, 0x9f, + 0xfa, 0xfd, 0x68, 0x00, 0x00, } func (m *ALBTrafficRouting) Marshal() (dAtA []byte, err error) { @@ -5575,6 +5579,21 @@ func (m *RolloutInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Available)) + i-- + dAtA[i] = 0x68 + i = encodeVarintGenerated(dAtA, i, uint64(m.Updated)) + i-- + dAtA[i] = 0x60 + i = encodeVarintGenerated(dAtA, i, uint64(m.Desired)) + i-- + dAtA[i] = 0x58 + i = encodeVarintGenerated(dAtA, i, uint64(m.Current)) + i-- + dAtA[i] = 0x50 + i = encodeVarintGenerated(dAtA, i, uint64(m.Ready)) + i-- + dAtA[i] = 0x48 i -= len(m.ActualWeight) copy(dAtA[i:], m.ActualWeight) i = encodeVarintGenerated(dAtA, i, uint64(len(m.ActualWeight))) @@ -7685,6 +7704,11 @@ func (m *RolloutInfo) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.ActualWeight) n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Ready)) + n += 1 + sovGenerated(uint64(m.Current)) + n += 1 + sovGenerated(uint64(m.Desired)) + n += 1 + sovGenerated(uint64(m.Updated)) + n += 1 + sovGenerated(uint64(m.Available)) return n } @@ -8894,6 +8918,11 @@ func (this *RolloutInfo) String() string { `Step:` + fmt.Sprintf("%v", this.Step) + `,`, `SetWeight:` + fmt.Sprintf("%v", this.SetWeight) + `,`, `ActualWeight:` + fmt.Sprintf("%v", this.ActualWeight) + `,`, + `Ready:` + fmt.Sprintf("%v", this.Ready) + `,`, + `Current:` + fmt.Sprintf("%v", this.Current) + `,`, + `Desired:` + fmt.Sprintf("%v", this.Desired) + `,`, + `Updated:` + fmt.Sprintf("%v", this.Updated) + `,`, + `Available:` + fmt.Sprintf("%v", this.Available) + `,`, `}`, }, "") return s @@ -19208,6 +19237,101 @@ func (m *RolloutInfo) Unmarshal(dAtA []byte) error { } m.ActualWeight = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Ready", wireType) + } + m.Ready = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Ready |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Current", wireType) + } + m.Current = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Current |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Desired", wireType) + } + m.Desired = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Desired |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 12: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Updated", wireType) + } + m.Updated = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Updated |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) + } + m.Available = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Available |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index 3094048e37..d9434b69f0 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -917,6 +917,16 @@ message RolloutInfo { optional string setWeight = 7; optional string actualWeight = 8; + + optional int32 ready = 9; + + optional int32 current = 10; + + optional int32 desired = 11; + + optional int32 updated = 12; + + optional int32 available = 13; } // RolloutList is a list of Rollout resources diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index 133331669c..e32c6227ac 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -679,11 +679,11 @@ type RolloutInfo struct { SetWeight string `json:"setWeight,omitempty" protobuf:"bytes,7,opt,name=setWeight"` ActualWeight string `json:"actualWeight,omitempty" protobuf:"bytes,8,opt,name=actualWeight"` - // Ready int32 - // Current int32 - // Desired int32 - // Updated int32 - // Available int32 + Ready int32 `json:"ready,omitempty" protobuf:"bytes,9,opt,name=ready"` + Current int32 `json:"current,omitempty" protobuf:"bytes,10,opt,name=current"` + Desired int32 `json:"desired,omitempty" protobuf:"bytes,11,opt,name=desired"` + Updated int32 `json:"updated,omitempty" protobuf:"bytes,12,opt,name=updated"` + Available int32 `json:"available,omitempty" protobuf:"bytes,13,opt,name=available"` // ReplicaSets []ReplicaSetInfo // Experiments []ExperimentInfo diff --git a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go index 6746876767..b2dda554dc 100644 --- a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go +++ b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go @@ -6,6 +6,7 @@ import ( "text/tabwriter" "time" + log "github.com/sirupsen/logrus" "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -99,12 +100,7 @@ func (o *ListOptions) PrintRolloutTable(roList *v1alpha1.RolloutList) error { return nil } -// PrintRolloutUpdates watches for changes to rollouts and prints the updates -func (o *ListOptions) PrintRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList) error { - w := tabwriter.NewWriter(o.Out, 0, 0, 2, ' ', 0) - - opts := o.ListOptions() - opts.ResourceVersion = roList.ListMeta.ResourceVersion +func SubscribeRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList, opts metav1.ListOptions, flush func() error, callback func(r *v1alpha1.Rollout)) error { watchIf, err := rolloutIf.Watch(ctx, opts) if err != nil { return err @@ -129,20 +125,21 @@ L: case next := <-watchIf.ResultChan(): ro, _ = next.Object.(*v1alpha1.Rollout) case <-ticker.C: - _ = w.Flush() + _ = flush() continue case <-ctx.Done(): break L } if ro == nil { // if we get here, it means an error on the watch. try to re-establish the watch + log.Info("Error on rollout watch") watchIf.Stop() newWatchIf, err := rolloutIf.Watch(ctx, opts) if err != nil { if retries > 5 { return err } - o.Log.Warn(err) + log.Warn(err) // this sleep prevents a hot-loop in the event there is a persistent error time.Sleep(time.Second) retries++ @@ -155,10 +152,23 @@ L: opts.ResourceVersion = ro.ObjectMeta.ResourceVersion roLine := newRolloutInfo(*ro) if prevLine, ok := prevLines[roLine.key()]; !ok || prevLine != roLine { - fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) + callback(ro) prevLines[roLine.key()] = roLine } } watchIf.Stop() return nil } + +// PrintRolloutUpdates watches for changes to rollouts and prints the updates +func (o *ListOptions) PrintRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList) error { + opts := o.ListOptions() + opts.ResourceVersion = roList.ListMeta.ResourceVersion + + w := tabwriter.NewWriter(o.Out, 0, 0, 2, ' ', 0) + + return SubscribeRolloutUpdates(ctx, rolloutIf, roList, opts, w.Flush, func(r *v1alpha1.Rollout) { + roLine := newRolloutInfo(*r) + fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) + }) +} diff --git a/server/server.go b/server/server.go index f9c40e705d..abf27eb61b 100644 --- a/server/server.go +++ b/server/server.go @@ -12,10 +12,12 @@ import ( "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/list" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" "github.com/argoproj/argo-rollouts/utils/json" "github.com/argoproj/pkg/errors" + "github.com/golang/protobuf/ptypes/empty" "github.com/grpc-ecosystem/grpc-gateway/runtime" log "github.com/sirupsen/logrus" "github.com/soheilhy/cmux" @@ -25,6 +27,10 @@ import ( "k8s.io/client-go/kubernetes" ) +var ( + watchAPIBufferSize = 1000 +) + var backoff = wait.Backoff{ Steps: 5, Duration: 500 * time.Millisecond, @@ -154,8 +160,8 @@ func infoToResponse(ri *info.RolloutInfo) *v1alpha1.RolloutInfo { } } -// Get returns a rollout -func (s* ArgoRolloutsServer) Get(c context.Context, q *rollout.RolloutQuery) (*v1alpha1.RolloutInfo, error) { +// GetRollout returns a rollout +func (s* ArgoRolloutsServer) GetRollout(c context.Context, q *rollout.RolloutQuery) (*v1alpha1.RolloutInfo, error) { controller := s.initRolloutViewController(q.GetName(), context.Background()) ri, err := controller.GetRolloutInfo() if (err != nil) { @@ -164,8 +170,8 @@ func (s* ArgoRolloutsServer) Get(c context.Context, q *rollout.RolloutQuery) (*v return infoToResponse(ri), nil } -// Watch returns a rollout -func (s* ArgoRolloutsServer) Watch(q *rollout.RolloutQuery, ws rollout.RolloutService_WatchServer) error { +// WatchRollout returns a rollout stream +func (s* ArgoRolloutsServer) WatchRollout(q *rollout.RolloutQuery, ws rollout.RolloutService_WatchRolloutServer) error { ctx := context.Background() controller := s.initRolloutViewController(q.GetName(), ctx) @@ -180,4 +186,56 @@ func (s* ArgoRolloutsServer) Watch(q *rollout.RolloutQuery, ws rollout.RolloutSe controller.Run(ctx) close(rolloutUpdates) return nil +} + +// ListRollouts returns a list of all rollouts +func (s* ArgoRolloutsServer) ListRollouts(ctx context.Context, e *empty.Empty) (*v1alpha1.RolloutList, error) { + rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) + rolloutList, err := rolloutIf.List(ctx, v1.ListOptions{}) + if (err != nil) { + return nil, err + } + return rolloutList, nil +} + +// WatchRollouts returns a stream of all rollouts +func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutService_WatchRolloutsServer) error { + send := func(r* v1alpha1.Rollout) { + log.Info("sent! A"); + err := ws.Send(&rollout.RolloutWatchEvent{ + Type: "Updated", + Rollout: r, + }) + if err != nil { + return + } + } + + ctx := context.Background() + rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) + rolloutList, err := rolloutIf.List(ctx, v1.ListOptions{}) + if err != nil { + return err + } + + for i := range(rolloutList.Items) { + log.Info("sent! B"); + err := ws.Send(&rollout.RolloutWatchEvent{ + Type: "Added", + Rollout: &rolloutList.Items[i], + }) + if err != nil { + return err + } + } + + flush := func() error { + return nil + } + + err = list.SubscribeRolloutUpdates(ctx, rolloutIf, rolloutList, v1.ListOptions{}, flush, send) + if err != nil { + return err + } + return nil } \ No newline at end of file diff --git a/ui/package.json b/ui/package.json index 880ced1c77..a858ce6a0c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,53 +1,60 @@ { - "name": "ui", - "version": "0.1.0", - "private": true, - "dependencies": { - "@fortawesome/fontawesome-free": "^5.15.2", - "@testing-library/jest-dom": "^5.11.4", - "@testing-library/react": "^11.1.0", - "@testing-library/user-event": "^12.1.10", - "@types/jest": "^26.0.15", - "@types/node": "^12.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", - "react-hot-loader": "^3.1.3", - "react-scripts": "4.0.3", - "typescript": "^4.1.2", - "web-vitals": "^1.0.1", - "webpack-dev-server": "^3.11.2" - }, - "scripts": { - "start": "webpack serve --config ./src/app/webpack.config.js", - "build": "react-scripts build", - "test": "react-scripts test", - "eject": "react-scripts eject" - }, - "eslintConfig": { - "extends": [ - "react-app", - "react-app/jest" - ] - }, - "browserslist": { - "production": [ - ">0.2%", - "not dead", - "not op_mini all" - ], - "development": [ - "last 1 chrome version", - "last 1 firefox version", - "last 1 safari version" - ] - }, - "devDependencies": { - "copy-webpack-plugin": "^6.3.2", - "raw-loader": "^4.0.2", - "sass": "^1.32.8", - "ts-loader": "^8.0.17", - "webpack-cli": "^4.5.0" - } + "name": "ui", + "version": "0.1.0", + "private": true, + "dependencies": { + "@fortawesome/fontawesome-free": "^5.15.2", + "@fortawesome/fontawesome-svg-core": "^1.2.34", + "@fortawesome/free-regular-svg-icons": "^5.15.2", + "@fortawesome/free-solid-svg-icons": "^5.15.2", + "@fortawesome/react-fontawesome": "^0.1.14", + "@testing-library/jest-dom": "^5.11.4", + "@testing-library/react": "^11.1.0", + "@testing-library/user-event": "^12.1.10", + "@types/jest": "^26.0.15", + "@types/node": "^12.0.0", + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "portable-fetch": "^3.0.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-hot-loader": "^3.1.3", + "react-scripts": "4.0.3", + "rxjs": "^6.6.6", + "typescript": "^4.1.2", + "web-vitals": "^1.0.1", + "webpack-dev-server": "^3.11.2" + }, + "scripts": { + "start": "webpack serve --config ./src/app/webpack.config.js", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "protogen": "swagger-codegen generate -i ../pkg/apiclient/rollout/rollout.swagger.json -l typescript-fetch -o src/models/rollout/generated" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "copy-webpack-plugin": "^6.3.2", + "raw-loader": "^4.0.2", + "sass": "^1.32.8", + "ts-loader": "^8.0.17", + "webpack-cli": "^4.5.0" + } } diff --git a/ui/src/app/App.scss b/ui/src/app/App.scss index b4abd5e6fc..c58e12ab05 100644 --- a/ui/src/app/App.scss +++ b/ui/src/app/App.scss @@ -1,4 +1,12 @@ -.App { - font-family: 'Heebo'; - text-align: center; +@import './shared/styles/colors.scss'; + +body, +html { + padding: 0; + margin: 0; + background-color: $midnight-sky; +} + +.rollouts { + font-family: 'Heebo', sans-serif; } diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx index 129794ec89..db9e38c39a 100644 --- a/ui/src/app/App.tsx +++ b/ui/src/app/App.tsx @@ -1,7 +1,13 @@ import * as React from 'react'; - import './App.scss'; +import {Header} from './components/header/header'; +import {RolloutsList} from './components/rollouts-list/rollouts-list'; -const App = () =>
Argo Rollouts
; +const App = () => ( +
+
+ +
+); export default App; diff --git a/ui/src/app/components/header/header.scss b/ui/src/app/components/header/header.scss new file mode 100644 index 0000000000..f1a4ae45ab --- /dev/null +++ b/ui/src/app/components/header/header.scss @@ -0,0 +1,22 @@ +@import '../../shared/styles/colors.scss'; + +.rollouts-header { + display: flex; + background: $slate; + color: white; + align-items: center; + padding: 10px 0; + margin-bottom: 1em; + + h1 { + font-size: 20px; + font-weight: 400; + margin: 0; + } + + &__version { + margin-left: auto; + color: $shine; + margin-right: 15px; + } +} diff --git a/ui/src/app/components/header/header.tsx b/ui/src/app/components/header/header.tsx new file mode 100644 index 0000000000..80a098d263 --- /dev/null +++ b/ui/src/app/components/header/header.tsx @@ -0,0 +1,13 @@ +import * as React from 'react'; + +import './header.scss'; + +export const Logo = () => Argo Logo; + +export const Header = () => ( +
+ +

Rollouts

+
v0.1.0
+
+); diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss new file mode 100644 index 0000000000..16571b8b0a --- /dev/null +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -0,0 +1,37 @@ +@import '../../shared/styles/colors.scss'; + +.rollouts-list { + display: flex; + padding: 20px; + &__widget { + border: 1px solid $silver-lining; + border-radius: 5px; + padding: 10px; + box-shadow: 1px 0px 3px 0px $space; + color: $shine; + font-size: 14px; + margin-right: 20px; + + header { + font-weight: 500; + font-size: 18px; + border-bottom: 1px solid $silver-lining; + padding-bottom: 0.5em; + margin-bottom: 0.5em; + } + + &__item { + width: 300px; + display: flex; + margin: 0.25em 0; + align-items: center; + &__content { + background-color: $fog; + border-radius: 3px; + border: 1px solid $silver-lining; + padding: 3px 5px; + margin-left: auto; + } + } + } +} diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx new file mode 100644 index 0000000000..2a59367af6 --- /dev/null +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -0,0 +1,45 @@ +import * as React from 'react'; +import {Rollout} from '../../../models/rollout/rollout'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faDove, faPalette} from '@fortawesome/free-solid-svg-icons'; + +import './rollouts-list.scss'; +import {useWatchRollouts} from '../../shared/services/rollout'; + +export const RolloutsList = () => { + const rollouts = useWatchRollouts(); + return ( +
+ {(rollouts || []).map((rollout) => ( + + ))} +
+ ); +}; + +export const RolloutWidget = (props: {rollout: Rollout}) => { + const {rollout} = props; + const strategy = rollout.spec?.strategy?.blueGreen ? 'BlueGreen' : 'Canary'; + return ( +
+
{rollout.metadata?.name}
+
+ + } /> +
+
+ ); +}; + +const WidgetItem = (props: {label: string; content: string; icon?: JSX.Element}) => { + const {label, content, icon} = props; + return ( +
+ +
+ {icon && {icon}} + {content} +
+
+ ); +}; diff --git a/ui/src/app/shared/services/rollout.ts b/ui/src/app/shared/services/rollout.ts new file mode 100644 index 0000000000..a0e7b68e0d --- /dev/null +++ b/ui/src/app/shared/services/rollout.ts @@ -0,0 +1,15 @@ +import {RolloutRolloutWatchEvent, RolloutServiceApiFetchParamCreator} from '../../../models/rollout/generated'; +import {useWatch, watchFromUrl} from '../utils/watch'; +import {Rollout} from '../../../models/rollout/rollout'; + +export const useWatchRollouts = (init?: Rollout[]) => { + const streamUrl = RolloutServiceApiFetchParamCreator().watchRollouts().url; + return useWatch(() => + watchFromUrl( + streamUrl, + (rollout, change) => rollout.metadata.name === change.rollout.metadata.name, + (change) => change.rollout, + init + ) + ); +}; diff --git a/ui/src/app/shared/styles/colors.scss b/ui/src/app/shared/styles/colors.scss new file mode 100644 index 0000000000..822182da3c --- /dev/null +++ b/ui/src/app/shared/styles/colors.scss @@ -0,0 +1,54 @@ +$argo-color-gray-1: #f8fbfb; +$argo-color-gray-2: #eff3f5; +$argo-color-gray-3: #dee6eb; +$argo-color-gray-4: #ccd6dd; +$argo-color-gray-5: #8fa4b1; +$argo-color-gray-6: #6d7f8b; +$argo-color-gray-7: #495763; +$argo-color-gray-8: #363c4a; +$argo-color-gray-9: #000000; + +$argo-color-teal-1: #f5fbfd; +$argo-color-teal-2: #dff6f9; +$argo-color-teal-3: #bdecf2; +$argo-color-teal-4: #99e1ea; +$argo-color-teal-5: #1fbdd0; +$argo-color-teal-6: #00a2b3; +$argo-color-teal-7: #006f8a; +$argo-color-teal-8: #004c67; + +$white-color: #ffffff; + +// Status colors +$argo-failed-color: #e96d76; +$argo-failed-color-dark: #c04b4f; +$argo-failed-color-light: #ff6262; +$argo-status-failed-color: #ef0b28; +$argo-color-red: #f00052; + +$argo-success-color: #18be94; +$argo-success-color-dark: #3f946d; +$argo-success-color-light: #95d58f; +$argo-status-success-color: #0d8d38; +$argo-color-green: #7ed321; + +$argo-status-warning-color: #f4c030; +$argo-color-yellow: #ffd100; + +$argo-running-color-dark: #378398; +$argo-running-color-light: #02c4d3; +$argo-running-color: #0dadea; + +$argo-waiting-color-dark: $argo-color-gray-6; +$argo-waiting-color-light: $argo-color-gray-5; +$argo-waiting-color: $argo-color-gray-5; +$argo-cancelled-color: $argo-color-gray-5; +$argo-init-color: $argo-color-gray-5; + +// Dark Mode +$midnight-sky: #10151a; +$space: #080c0f; +$slate: #181e26; +$shine: #d6dee7; +$silver-lining: #30363d; +$fog: #21262d; diff --git a/ui/src/app/shared/utils/watch.ts b/ui/src/app/shared/utils/watch.ts new file mode 100644 index 0000000000..b162a53ee0 --- /dev/null +++ b/ui/src/app/shared/utils/watch.ts @@ -0,0 +1,57 @@ +import * as React from 'react'; +import {Observable} from 'rxjs'; +import {delay, map, repeat, retryWhen, scan} from 'rxjs/operators'; + +function fromEventSource(url: string): Observable { + return new Observable((subscriber) => { + let sse = new EventSource(url); + sse.onmessage = (e) => subscriber.next(e); + sse.onerror = (e) => subscriber.error(e); + return () => { + if (sse.readyState === 1) { + sse.close(); + sse = null; + } + }; + }); +} + +interface WatchEvent { + type?: string; +} + +export function watchFromUrl(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): Observable { + const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as E)); + return stream.pipe( + repeat(), + retryWhen((errors) => errors.pipe(delay(500))), + scan((items, change) => { + const index = items.findIndex((i) => findItem(i, change)); + switch (change.type) { + case 'DELETED': + if (index > -1) { + items.splice(index, 1); + } + break; + default: + if (index > -1) { + items[index] = getItem(change); + } else { + items.unshift(getItem(change)); + } + break; + } + return items; + }, init || []) + ); +} + +export function useWatch(watchFxn: () => Observable): T[] { + const [items, setItems] = React.useState([] as T[]); + React.useEffect(() => { + watchFxn().subscribe((list) => { + setItems(list); + }); + }, [watchFxn]); + return items; +} diff --git a/ui/src/app/tsconfig.json b/ui/src/app/tsconfig.json index b7473ce285..130f3aadcd 100644 --- a/ui/src/app/tsconfig.json +++ b/ui/src/app/tsconfig.json @@ -1,15 +1,16 @@ { - "compilerOptions": { - "outDir": "./../../dist/app", - "sourceMap": true, - "noImplicitAny": true, - "module": "commonjs", - "target": "es5", - "jsx": "react", - "experimentalDecorators": true, - "noUnusedLocals": true, - "declaration": false, - "lib": ["es2017", "dom"] - }, - "include": ["./**/*"] + "compilerOptions": { + "outDir": "./../../dist/app", + "sourceMap": true, + "noImplicitAny": true, + "module": "commonjs", + "target": "es6", + "jsx": "react", + "experimentalDecorators": true, + "noUnusedLocals": true, + "declaration": false, + "lib": ["es2017", "dom"] + }, + "include": ["./**/*"], + "exclude": ["node_modules", "./**/*.test.ts", "./**/*.test.tsx"] } diff --git a/ui/src/app/webpack.config.js b/ui/src/app/webpack.config.js index ca6d0a19f2..e65d9d7c38 100644 --- a/ui/src/app/webpack.config.js +++ b/ui/src/app/webpack.config.js @@ -1,97 +1,92 @@ -"use strict;"; +'use strict;'; -const CopyWebpackPlugin = require("copy-webpack-plugin"); -const HtmlWebpackPlugin = require("html-webpack-plugin"); -const webpack = require("webpack"); -const path = require("path"); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const webpack = require('webpack'); +const path = require('path'); -const isProd = process.env.NODE_ENV === "production"; +const isProd = process.env.NODE_ENV === 'production'; -console.log( - `Starting webpack in ${process.env.NODE_ENV || "development"} mode` -); +console.log(`Starting webpack in ${process.env.NODE_ENV || 'development'} mode`); const config = { - mode: isProd ? "production" : "development", - entry: { - main: "./src/app/index.tsx", - }, - output: { - filename: "[name].[chunkhash].js", - path: __dirname + "/../../dist/app", - }, + mode: isProd ? 'production' : 'development', + entry: { + main: './src/app/index.tsx', + }, + output: { + filename: '[name].[chunkhash].js', + path: __dirname + '/../../dist/app', + }, - devtool: "source-map", + devtool: 'source-map', - resolve: { - extensions: [".ts", ".tsx", ".js", ".json", ".ttf"], - }, + resolve: { + extensions: ['.ts', '.tsx', '.js', '.json', '.ttf'], + }, - module: { - rules: [ - { - test: /\.tsx?$/, - loaders: [ - ...(isProd ? [] : ["react-hot-loader/webpack"]), - `ts-loader?transpileOnly=${!isProd}&allowTsInNodeModules=true&configFile=${path.resolve( - "./src/app/tsconfig.json" - )}`, + module: { + rules: [ + { + test: /\.tsx?$/, + loaders: [ + ...(isProd ? [] : ['react-hot-loader/webpack']), + `ts-loader?transpileOnly=${!isProd}&allowTsInNodeModules=true&configFile=${path.resolve('./src/app/tsconfig.json')}`, + ], + }, + { + test: /\.scss$/, + loader: 'style-loader!raw-loader!sass-loader', + }, + { + test: /\.css$/, + loader: 'style-loader!raw-loader', + }, + { + test: /\.ttf$/, + use: ['file-loader'], + }, ], - }, - { - test: /\.scss$/, - loader: "style-loader!raw-loader!sass-loader", - }, - { - test: /\.css$/, - loader: "style-loader!raw-loader", - }, - { - test: /\.ttf$/, - use: ["file-loader"], - }, - ], - }, - node: { - fs: "empty", - }, - plugins: [ - new webpack.DefinePlugin({ - "process.env.NODE_ENV": JSON.stringify( - process.env.NODE_ENV || "development" - ), - SYSTEM_INFO: JSON.stringify({ - version: process.env.VERSION || "latest", - }), - }), - new HtmlWebpackPlugin({ template: "src/app/index.html" }), - new CopyWebpackPlugin({ - patterns: [ - { - from: "node_modules/@fortawesome/fontawesome-free/webfonts", - to: "assets/fonts", - }, - ], - }), - ], - devServer: { - historyApiFallback: { - disableDotRule: true, - }, - watchOptions: { - ignored: [/dist/, /node_modules/], }, - headers: { - "X-Frame-Options": "SAMEORIGIN", + node: { + fs: 'empty', }, - port: 3101, - proxy: { - "/api/v1": { - target: isProd ? "" : "http://localhost:3100", - secure: false, - }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'), + 'SYSTEM_INFO': JSON.stringify({ + version: process.env.VERSION || 'latest', + }), + }), + new HtmlWebpackPlugin({template: 'src/app/index.html'}), + new CopyWebpackPlugin({ + patterns: [ + {from: 'src/assets', to: 'assets'}, + { + from: 'node_modules/@fortawesome/fontawesome-free/webfonts', + to: 'assets/fonts', + }, + ], + }), + ], + devServer: { + historyApiFallback: { + disableDotRule: true, + }, + watchOptions: { + ignored: [/dist/, /node_modules/], + }, + headers: { + 'X-Frame-Options': 'SAMEORIGIN', + }, + port: 3101, + proxy: { + '/api/v1': { + target: isProd ? '' : 'http://localhost:3100', + secure: false, + }, + }, }, - }, }; module.exports = config; diff --git a/ui/src/assets/images/argo-icon-white-square.svg b/ui/src/assets/images/argo-icon-white-square.svg new file mode 100644 index 0000000000..f3975864d4 --- /dev/null +++ b/ui/src/assets/images/argo-icon-white-square.svg @@ -0,0 +1,14 @@ + + + Slice 1 + + + + + + + + + + + \ No newline at end of file diff --git a/ui/src/assets/images/argo-icon-white.svg b/ui/src/assets/images/argo-icon-white.svg new file mode 100644 index 0000000000..41902c62be --- /dev/null +++ b/ui/src/assets/images/argo-icon-white.svg @@ -0,0 +1 @@ +cloudevents-icon-white \ No newline at end of file diff --git a/ui/src/models/rollout/generated/.gitignore b/ui/src/models/rollout/generated/.gitignore new file mode 100644 index 0000000000..35e2fb2b02 --- /dev/null +++ b/ui/src/models/rollout/generated/.gitignore @@ -0,0 +1,3 @@ +wwwroot/*.js +node_modules +typings diff --git a/ui/src/models/rollout/generated/.swagger-codegen-ignore b/ui/src/models/rollout/generated/.swagger-codegen-ignore new file mode 100644 index 0000000000..c5fa491b4c --- /dev/null +++ b/ui/src/models/rollout/generated/.swagger-codegen-ignore @@ -0,0 +1,23 @@ +# Swagger Codegen Ignore +# Generated by swagger-codegen https://github.com/swagger-api/swagger-codegen + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell Swagger Codgen to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/ui/src/models/rollout/generated/.swagger-codegen/VERSION b/ui/src/models/rollout/generated/.swagger-codegen/VERSION new file mode 100644 index 0000000000..b39b0b9e01 --- /dev/null +++ b/ui/src/models/rollout/generated/.swagger-codegen/VERSION @@ -0,0 +1 @@ +3.0.24 \ No newline at end of file diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts new file mode 100644 index 0000000000..74d0843e39 --- /dev/null +++ b/ui/src/models/rollout/generated/api.ts @@ -0,0 +1,5023 @@ +/// +// tslint:disable +/** + * pkg/apiclient/rollout/rollout.proto + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: version not set + * + * + * NOTE: This file is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the file manually. + */ + +import * as url from "url"; +import * as portableFetch from "portable-fetch"; +import { Configuration } from "./configuration"; + +const BASE_PATH = "/".replace(/\/+$/, ""); + +/** + * + * @export + */ +export const COLLECTION_FORMATS = { + csv: ",", + ssv: " ", + tsv: "\t", + pipes: "|", +}; + +/** + * + * @export + * @interface FetchAPI + */ +export interface FetchAPI { + (url: string, init?: any): Promise; +} + +/** + * + * @export + * @interface FetchArgs + */ +export interface FetchArgs { + url: string; + options: any; +} + +/** + * + * @export + * @class BaseAPI + */ +export class BaseAPI { + protected configuration: Configuration; + + constructor(configuration?: Configuration, protected basePath: string = BASE_PATH, protected fetch: FetchAPI = portableFetch) { + if (configuration) { + this.configuration = configuration; + this.basePath = configuration.basePath || this.basePath; + } + } +}; + +/** + * + * @export + * @class RequiredError + * @extends {Error} + */ +export class RequiredError extends Error { + name: "RequiredError" + constructor(public field: string, msg?: string) { + super(msg); + } +} + +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting + */ + ingress?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting + */ + servicePort?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting + */ + rootService?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting + */ + annotationPrefix?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunArgument + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunArgument { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunArgument + */ + name?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunArgument + */ + value?: string; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunArgument + */ + valueFrom?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDuringSchedulingIgnoredDuringExecution} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity + */ + preferredDuringSchedulingIgnoredDuringExecution?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDuringSchedulingIgnoredDuringExecution; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RequiredDuringSchedulingIgnoredDuringExecution} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity + */ + requiredDuringSchedulingIgnoredDuringExecution?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RequiredDuringSchedulingIgnoredDuringExecution; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom + */ + podTemplateHashValue?: string; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1FieldRef} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom + */ + fieldRef?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1FieldRef; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ + previewSelector?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ + activeSelector?: string; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ + scaleUpPreviewCheckPoint?: boolean; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ + prePromotionAnalysisRunStatus?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus + */ + postPromotionAnalysisRunStatus?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy { + /** + * Name of the service that the rollout modifies as the active service. + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + activeService?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + previewService?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + previewReplicaCount?: number; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + autoPromotionEnabled?: boolean; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + autoPromotionSeconds?: number; + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + maxUnavailable?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + scaleDownDelaySeconds?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + scaleDownDelayRevisionLimit?: number; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + prePromotionAnalysis?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + antiAffinity?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + postPromotionAnalysis?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + previewMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy + */ + activeMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus + */ + currentStepAnalysisRunStatus?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus + */ + currentBackgroundAnalysisRunStatus?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus + */ + currentExperiment?: string; +} +/** + * CanaryStep defines a step of a canary deployment. + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep { + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ + setWeight?: number; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutPause} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ + pause?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutPause; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ + experiment?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ + analysis?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStep + */ + setCanaryScale?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + canaryService?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + stableService?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + steps?: Array; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + trafficRouting?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting; + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + maxUnavailable?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + maxSurge?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + analysis?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + antiAffinity?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AntiAffinity; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + canaryMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy + */ + stableMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1FieldRef + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1FieldRef { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1FieldRef + */ + fieldPath?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule + */ + name?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule + */ + canarySubsetName?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule + */ + stableSubsetName?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting + */ + virtualService?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting + */ + destinationRule?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioDestinationRule; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService + */ + name?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtualService + */ + routes?: Array; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting + */ + annotationPrefix?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting + */ + stableIngress?: string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting + */ + additionalIngressAnnotations?: { [key: string]: string; }; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PauseCondition + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PauseCondition { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PauseCondition + */ + reason?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PauseCondition + */ + startTime?: K8sIoApimachineryPkgApisMetaV1Time; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata { + /** + * + * @type {{ [key: string]: string; }} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata + */ + labels?: { [key: string]: string; }; + /** + * + * @type {{ [key: string]: string; }} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata + */ + annotations?: { [key: string]: string; }; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDuringSchedulingIgnoredDuringExecution + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDuringSchedulingIgnoredDuringExecution { + /** + * Weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDuringSchedulingIgnoredDuringExecution + */ + weight?: number; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RequiredDuringSchedulingIgnoredDuringExecution + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RequiredDuringSchedulingIgnoredDuringExecution { +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout + */ + metadata?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout + */ + spec?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout + */ + status?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis { + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis + */ + templates?: Array; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis + */ + args?: Array; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground + */ + rolloutAnalysis?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysis; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisBackground + */ + startingStep?: number; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus + */ + name?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisRunStatus + */ + message?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisTemplate + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisTemplate { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisTemplate + */ + templateName?: string; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutAnalysisTemplate + */ + clusterScope?: boolean; +} +/** + * RolloutCondition describes the state of a rollout at a certain point. + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition { + /** + * Type of deployment condition. + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + type?: string; + /** + * Phase of the condition, one of True, False, Unknown. + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + status?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + lastUpdateTime?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + lastTransitionTime?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * The reason for the condition's last transition. + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + reason?: string; + /** + * A human readable message indicating details about the transition. + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition + */ + message?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep { + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep + */ + templates?: Array; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep + */ + duration?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStep + */ + analyses?: Array; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ + name?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ + templateName?: string; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ + clusterScope?: boolean; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ + args?: Array; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentStepAnalysisTemplateRef + */ + requiredForCompletion?: boolean; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + name?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + specRef?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + replicas?: number; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + metadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1LabelSelector} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutExperimentTemplate + */ + selector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + metadata?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + message?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + icon?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + strategy?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + step?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + setWeight?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + actualWeight?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + ready?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + current?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + desired?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + updated?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + available?: number; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutList + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutList { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ListMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutList + */ + metadata?: K8sIoApimachineryPkgApisMetaV1ListMeta; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutList + */ + items?: Array; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutPause + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutPause { + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutPause + */ + duration?: K8sIoApimachineryPkgUtilIntstrIntOrString; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec { + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + replicas?: number; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1LabelSelector} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + selector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; + /** + * + * @type {K8sIoApiCoreV1PodTemplateSpec} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + template?: K8sIoApiCoreV1PodTemplateSpec; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + minReadySeconds?: number; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + strategy?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + revisionHistoryLimit?: number; + /** + * Paused pauses the rollout at its current step. + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + paused?: boolean; + /** + * ProgressDeadlineSeconds The maximum time in seconds for a rollout to make progress before it is considered to be failed. Argo Rollouts will continue to process failed rollouts and a condition with a ProgressDeadlineExceeded reason will be surfaced in the rollout status. Note that progress will not be estimated during the time a rollout is paused. Defaults to 600s. + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + progressDeadlineSeconds?: number; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutSpec + */ + restartAt?: K8sIoApimachineryPkgApisMetaV1Time; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus { + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + abort?: boolean; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + pauseConditions?: Array; + /** + * ControllerPause indicates the controller has paused the rollout. It is set to true when the controller adds a pause condition. This field helps to discern the scenario where a rollout was resumed after being paused by the controller (e.g. via the plugin). In that situation, the pauseConditions would have been cleared , but controllerPause would still be set to true. + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + controllerPause?: boolean; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + abortedAt?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + currentPodHash?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + currentStepHash?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + replicas?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + updatedReplicas?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + readyReplicas?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + availableReplicas?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + currentStepIndex?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + collisionCount?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + observedGeneration?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + conditions?: Array; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + canary?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStatus; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + blueGreen?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStatus; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + hPAReplicas?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + selector?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + stableRS?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + restartedAt?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * PromoteFull indicates if the rollout should perform a full promotion, skipping analysis and pauses. + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStatus + */ + promoteFull?: boolean; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy + */ + blueGreen?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1BlueGreenStrategy; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutStrategy + */ + canary?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrategy; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting + */ + istio?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioTrafficRouting; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting + */ + nginx?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1NginxTrafficRouting; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting + */ + alb?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ALBTrafficRouting; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutTrafficRouting + */ + smi?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting { + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting + */ + rootService?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SMITrafficRouting + */ + trafficSplitName?: string; +} +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale { + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale + */ + weight?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale + */ + replicas?: number; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1SetCanaryScale + */ + matchTrafficWeight?: boolean; +} +/** + * + * @export + * @interface GoogleProtobufAny + */ +export interface GoogleProtobufAny { + /** + * + * @type {string} + * @memberof GoogleProtobufAny + */ + typeUrl?: string; + /** + * + * @type {string} + * @memberof GoogleProtobufAny + */ + value?: string; +} +/** + * + * @export + * @interface GrpcGatewayRuntimeStreamError + */ +export interface GrpcGatewayRuntimeStreamError { + /** + * + * @type {number} + * @memberof GrpcGatewayRuntimeStreamError + */ + grpcCode?: number; + /** + * + * @type {number} + * @memberof GrpcGatewayRuntimeStreamError + */ + httpCode?: number; + /** + * + * @type {string} + * @memberof GrpcGatewayRuntimeStreamError + */ + message?: string; + /** + * + * @type {string} + * @memberof GrpcGatewayRuntimeStreamError + */ + httpStatus?: string; + /** + * + * @type {Array} + * @memberof GrpcGatewayRuntimeStreamError + */ + details?: Array; +} +/** + * Represents a Persistent Disk resource in AWS. An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource + */ +export interface K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource + */ + volumeID?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource + */ + fsType?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource + */ + partition?: number; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource + */ + readOnly?: boolean; +} +/** + * Affinity is a group of affinity scheduling rules. + * @export + * @interface K8sIoApiCoreV1Affinity + */ +export interface K8sIoApiCoreV1Affinity { + /** + * + * @type {K8sIoApiCoreV1NodeAffinity} + * @memberof K8sIoApiCoreV1Affinity + */ + nodeAffinity?: K8sIoApiCoreV1NodeAffinity; + /** + * + * @type {K8sIoApiCoreV1PodAffinity} + * @memberof K8sIoApiCoreV1Affinity + */ + podAffinity?: K8sIoApiCoreV1PodAffinity; + /** + * + * @type {K8sIoApiCoreV1PodAntiAffinity} + * @memberof K8sIoApiCoreV1Affinity + */ + podAntiAffinity?: K8sIoApiCoreV1PodAntiAffinity; +} +/** + * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. + * @export + * @interface K8sIoApiCoreV1AzureDiskVolumeSource + */ +export interface K8sIoApiCoreV1AzureDiskVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + diskName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + diskURI?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + cachingMode?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureDiskVolumeSource + */ + kind?: string; +} +/** + * AzureFile represents an Azure File Service mount on the host and bind mount to the pod. + * @export + * @interface K8sIoApiCoreV1AzureFileVolumeSource + */ +export interface K8sIoApiCoreV1AzureFileVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureFileVolumeSource + */ + secretName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1AzureFileVolumeSource + */ + shareName?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1AzureFileVolumeSource + */ + readOnly?: boolean; +} +/** + * + * @export + * @interface K8sIoApiCoreV1CSIVolumeSource + */ +export interface K8sIoApiCoreV1CSIVolumeSource { + /** + * Driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. + * @type {string} + * @memberof K8sIoApiCoreV1CSIVolumeSource + */ + driver?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1CSIVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CSIVolumeSource + */ + fsType?: string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApiCoreV1CSIVolumeSource + */ + volumeAttributes?: { [key: string]: string; }; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1CSIVolumeSource + */ + nodePublishSecretRef?: K8sIoApiCoreV1LocalObjectReference; +} +/** + * Adds and removes POSIX capabilities from running containers. + * @export + * @interface K8sIoApiCoreV1Capabilities + */ +export interface K8sIoApiCoreV1Capabilities { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Capabilities + */ + add?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Capabilities + */ + drop?: Array; +} +/** + * Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1CephFSVolumeSource + */ +export interface K8sIoApiCoreV1CephFSVolumeSource { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + monitors?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + path?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + user?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + secretFile?: string; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1CephFSVolumeSource + */ + readOnly?: boolean; +} +/** + * Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1CinderVolumeSource + */ +export interface K8sIoApiCoreV1CinderVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CinderVolumeSource + */ + volumeID?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1CinderVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1CinderVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1CinderVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; +} +/** + * ConfigMapEnvSource selects a ConfigMap to populate the environment variables with. The contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables. + * @export + * @interface K8sIoApiCoreV1ConfigMapEnvSource + */ +export interface K8sIoApiCoreV1ConfigMapEnvSource { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ConfigMapEnvSource + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ConfigMapEnvSource + */ + optional?: boolean; +} +/** + * Selects a key from a ConfigMap. + * @export + * @interface K8sIoApiCoreV1ConfigMapKeySelector + */ +export interface K8sIoApiCoreV1ConfigMapKeySelector { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ConfigMapKeySelector + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * The key to select. + * @type {string} + * @memberof K8sIoApiCoreV1ConfigMapKeySelector + */ + key?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ConfigMapKeySelector + */ + optional?: boolean; +} +/** + * Adapts a ConfigMap into a projected volume. The contents of the target ConfigMap's Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode. + * @export + * @interface K8sIoApiCoreV1ConfigMapProjection + */ +export interface K8sIoApiCoreV1ConfigMapProjection { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ConfigMapProjection + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ConfigMapProjection + */ + items?: Array; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ConfigMapProjection + */ + optional?: boolean; +} +/** + * Adapts a ConfigMap into a volume. The contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1ConfigMapVolumeSource + */ +export interface K8sIoApiCoreV1ConfigMapVolumeSource { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ConfigMapVolumeSource + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ConfigMapVolumeSource + */ + items?: Array; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ConfigMapVolumeSource + */ + defaultMode?: number; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ConfigMapVolumeSource + */ + optional?: boolean; +} +/** + * A single application container that you want to run within a pod. + * @export + * @interface K8sIoApiCoreV1Container + */ +export interface K8sIoApiCoreV1Container { + /** + * Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated. + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + image?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + command?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + args?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + workingDir?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + ports?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + envFrom?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + env?: Array; + /** + * + * @type {K8sIoApiCoreV1ResourceRequirements} + * @memberof K8sIoApiCoreV1Container + */ + resources?: K8sIoApiCoreV1ResourceRequirements; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + volumeMounts?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1Container + */ + volumeDevices?: Array; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1Container + */ + livenessProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1Container + */ + readinessProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1Container + */ + startupProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Lifecycle} + * @memberof K8sIoApiCoreV1Container + */ + lifecycle?: K8sIoApiCoreV1Lifecycle; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + terminationMessagePath?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + terminationMessagePolicy?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Container + */ + imagePullPolicy?: string; + /** + * + * @type {K8sIoApiCoreV1SecurityContext} + * @memberof K8sIoApiCoreV1Container + */ + securityContext?: K8sIoApiCoreV1SecurityContext; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1Container + */ + stdin?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1Container + */ + stdinOnce?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1Container + */ + tty?: boolean; +} +/** + * ContainerPort represents a network port in a single container. + * @export + * @interface K8sIoApiCoreV1ContainerPort + */ +export interface K8sIoApiCoreV1ContainerPort { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ContainerPort + */ + name?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ContainerPort + */ + hostPort?: number; + /** + * Number of port to expose on the pod's IP address. This must be a valid port number, 0 < x < 65536. + * @type {number} + * @memberof K8sIoApiCoreV1ContainerPort + */ + containerPort?: number; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ContainerPort + */ + protocol?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ContainerPort + */ + hostIP?: string; +} +/** + * Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode. + * @export + * @interface K8sIoApiCoreV1DownwardAPIProjection + */ +export interface K8sIoApiCoreV1DownwardAPIProjection { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1DownwardAPIProjection + */ + items?: Array; +} +/** + * + * @export + * @interface K8sIoApiCoreV1DownwardAPIVolumeFile + */ +export interface K8sIoApiCoreV1DownwardAPIVolumeFile { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeFile + */ + path?: string; + /** + * + * @type {K8sIoApiCoreV1ObjectFieldSelector} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeFile + */ + fieldRef?: K8sIoApiCoreV1ObjectFieldSelector; + /** + * + * @type {K8sIoApiCoreV1ResourceFieldSelector} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeFile + */ + resourceFieldRef?: K8sIoApiCoreV1ResourceFieldSelector; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeFile + */ + mode?: number; +} +/** + * DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1DownwardAPIVolumeSource + */ +export interface K8sIoApiCoreV1DownwardAPIVolumeSource { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeSource + */ + items?: Array; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1DownwardAPIVolumeSource + */ + defaultMode?: number; +} +/** + * Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1EmptyDirVolumeSource + */ +export interface K8sIoApiCoreV1EmptyDirVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EmptyDirVolumeSource + */ + medium?: string; + /** + * + * @type {K8sIoApimachineryPkgApiResourceQuantity} + * @memberof K8sIoApiCoreV1EmptyDirVolumeSource + */ + sizeLimit?: K8sIoApimachineryPkgApiResourceQuantity; +} +/** + * + * @export + * @interface K8sIoApiCoreV1EnvFromSource + */ +export interface K8sIoApiCoreV1EnvFromSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EnvFromSource + */ + prefix?: string; + /** + * + * @type {K8sIoApiCoreV1ConfigMapEnvSource} + * @memberof K8sIoApiCoreV1EnvFromSource + */ + configMapRef?: K8sIoApiCoreV1ConfigMapEnvSource; + /** + * + * @type {K8sIoApiCoreV1SecretEnvSource} + * @memberof K8sIoApiCoreV1EnvFromSource + */ + secretRef?: K8sIoApiCoreV1SecretEnvSource; +} +/** + * EnvVar represents an environment variable present in a Container. + * @export + * @interface K8sIoApiCoreV1EnvVar + */ +export interface K8sIoApiCoreV1EnvVar { + /** + * Name of the environment variable. Must be a C_IDENTIFIER. + * @type {string} + * @memberof K8sIoApiCoreV1EnvVar + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EnvVar + */ + value?: string; + /** + * + * @type {K8sIoApiCoreV1EnvVarSource} + * @memberof K8sIoApiCoreV1EnvVar + */ + valueFrom?: K8sIoApiCoreV1EnvVarSource; +} +/** + * EnvVarSource represents a source for the value of an EnvVar. + * @export + * @interface K8sIoApiCoreV1EnvVarSource + */ +export interface K8sIoApiCoreV1EnvVarSource { + /** + * + * @type {K8sIoApiCoreV1ObjectFieldSelector} + * @memberof K8sIoApiCoreV1EnvVarSource + */ + fieldRef?: K8sIoApiCoreV1ObjectFieldSelector; + /** + * + * @type {K8sIoApiCoreV1ResourceFieldSelector} + * @memberof K8sIoApiCoreV1EnvVarSource + */ + resourceFieldRef?: K8sIoApiCoreV1ResourceFieldSelector; + /** + * + * @type {K8sIoApiCoreV1ConfigMapKeySelector} + * @memberof K8sIoApiCoreV1EnvVarSource + */ + configMapKeyRef?: K8sIoApiCoreV1ConfigMapKeySelector; + /** + * + * @type {K8sIoApiCoreV1SecretKeySelector} + * @memberof K8sIoApiCoreV1EnvVarSource + */ + secretKeyRef?: K8sIoApiCoreV1SecretKeySelector; +} +/** + * An EphemeralContainer is a container that may be added temporarily to an existing pod for user-initiated activities such as debugging. Ephemeral containers have no resource or scheduling guarantees, and they will not be restarted when they exit or when a pod is removed or restarted. If an ephemeral container causes a pod to exceed its resource allocation, the pod may be evicted. Ephemeral containers may not be added by directly updating the pod spec. They must be added via the pod's ephemeralcontainers subresource, and they will appear in the pod spec once added. This is an alpha feature enabled by the EphemeralContainers feature flag. + * @export + * @interface K8sIoApiCoreV1EphemeralContainer + */ +export interface K8sIoApiCoreV1EphemeralContainer { + /** + * + * @type {K8sIoApiCoreV1EphemeralContainerCommon} + * @memberof K8sIoApiCoreV1EphemeralContainer + */ + ephemeralContainerCommon?: K8sIoApiCoreV1EphemeralContainerCommon; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainer + */ + targetContainerName?: string; +} +/** + * EphemeralContainerCommon is a copy of all fields in Container to be inlined in EphemeralContainer. This separate type allows easy conversion from EphemeralContainer to Container and allows separate documentation for the fields of EphemeralContainer. When a new field is added to Container it must be added here as well. + * @export + * @interface K8sIoApiCoreV1EphemeralContainerCommon + */ +export interface K8sIoApiCoreV1EphemeralContainerCommon { + /** + * Name of the ephemeral container specified as a DNS_LABEL. This name must be unique among all containers, init containers and ephemeral containers. + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + image?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + command?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + args?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + workingDir?: string; + /** + * Ports are not allowed for ephemeral containers. + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + ports?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + envFrom?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + env?: Array; + /** + * + * @type {K8sIoApiCoreV1ResourceRequirements} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + resources?: K8sIoApiCoreV1ResourceRequirements; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + volumeMounts?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + volumeDevices?: Array; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + livenessProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + readinessProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Probe} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + startupProbe?: K8sIoApiCoreV1Probe; + /** + * + * @type {K8sIoApiCoreV1Lifecycle} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + lifecycle?: K8sIoApiCoreV1Lifecycle; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + terminationMessagePath?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + terminationMessagePolicy?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + imagePullPolicy?: string; + /** + * + * @type {K8sIoApiCoreV1SecurityContext} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + securityContext?: K8sIoApiCoreV1SecurityContext; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + stdin?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + stdinOnce?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1EphemeralContainerCommon + */ + tty?: boolean; +} +/** + * Represents an ephemeral volume that is handled by a normal storage driver. + * @export + * @interface K8sIoApiCoreV1EphemeralVolumeSource + */ +export interface K8sIoApiCoreV1EphemeralVolumeSource { + /** + * + * @type {K8sIoApiCoreV1PersistentVolumeClaimTemplate} + * @memberof K8sIoApiCoreV1EphemeralVolumeSource + */ + volumeClaimTemplate?: K8sIoApiCoreV1PersistentVolumeClaimTemplate; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1EphemeralVolumeSource + */ + readOnly?: boolean; +} +/** + * ExecAction describes a \"run in container\" action. + * @export + * @interface K8sIoApiCoreV1ExecAction + */ +export interface K8sIoApiCoreV1ExecAction { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ExecAction + */ + command?: Array; +} +/** + * Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1FCVolumeSource + */ +export interface K8sIoApiCoreV1FCVolumeSource { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1FCVolumeSource + */ + targetWWNs?: Array; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1FCVolumeSource + */ + lun?: number; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1FCVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1FCVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1FCVolumeSource + */ + wwids?: Array; +} +/** + * FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. + * @export + * @interface K8sIoApiCoreV1FlexVolumeSource + */ +export interface K8sIoApiCoreV1FlexVolumeSource { + /** + * Driver is the name of the driver to use for this volume. + * @type {string} + * @memberof K8sIoApiCoreV1FlexVolumeSource + */ + driver?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1FlexVolumeSource + */ + fsType?: string; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1FlexVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1FlexVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApiCoreV1FlexVolumeSource + */ + options?: { [key: string]: string; }; +} +/** + * Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1FlockerVolumeSource + */ +export interface K8sIoApiCoreV1FlockerVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1FlockerVolumeSource + */ + datasetName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1FlockerVolumeSource + */ + datasetUUID?: string; +} +/** + * Represents a Persistent Disk resource in Google Compute Engine. A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1GCEPersistentDiskVolumeSource + */ +export interface K8sIoApiCoreV1GCEPersistentDiskVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GCEPersistentDiskVolumeSource + */ + pdName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GCEPersistentDiskVolumeSource + */ + fsType?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1GCEPersistentDiskVolumeSource + */ + partition?: number; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1GCEPersistentDiskVolumeSource + */ + readOnly?: boolean; +} +/** + * Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. + * @export + * @interface K8sIoApiCoreV1GitRepoVolumeSource + */ +export interface K8sIoApiCoreV1GitRepoVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GitRepoVolumeSource + */ + repository?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GitRepoVolumeSource + */ + revision?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GitRepoVolumeSource + */ + directory?: string; +} +/** + * Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1GlusterfsVolumeSource + */ +export interface K8sIoApiCoreV1GlusterfsVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GlusterfsVolumeSource + */ + endpoints?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1GlusterfsVolumeSource + */ + path?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1GlusterfsVolumeSource + */ + readOnly?: boolean; +} +/** + * HTTPGetAction describes an action based on HTTP Get requests. + * @export + * @interface K8sIoApiCoreV1HTTPGetAction + */ +export interface K8sIoApiCoreV1HTTPGetAction { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HTTPGetAction + */ + path?: string; + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof K8sIoApiCoreV1HTTPGetAction + */ + port?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HTTPGetAction + */ + host?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HTTPGetAction + */ + scheme?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1HTTPGetAction + */ + httpHeaders?: Array; +} +/** + * + * @export + * @interface K8sIoApiCoreV1HTTPHeader + */ +export interface K8sIoApiCoreV1HTTPHeader { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HTTPHeader + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HTTPHeader + */ + value?: string; +} +/** + * Handler defines a specific action that should be taken TODO: pass structured data to these actions, and document that data here. + * @export + * @interface K8sIoApiCoreV1Handler + */ +export interface K8sIoApiCoreV1Handler { + /** + * + * @type {K8sIoApiCoreV1ExecAction} + * @memberof K8sIoApiCoreV1Handler + */ + exec?: K8sIoApiCoreV1ExecAction; + /** + * + * @type {K8sIoApiCoreV1HTTPGetAction} + * @memberof K8sIoApiCoreV1Handler + */ + httpGet?: K8sIoApiCoreV1HTTPGetAction; + /** + * + * @type {K8sIoApiCoreV1TCPSocketAction} + * @memberof K8sIoApiCoreV1Handler + */ + tcpSocket?: K8sIoApiCoreV1TCPSocketAction; +} +/** + * HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod's hosts file. + * @export + * @interface K8sIoApiCoreV1HostAlias + */ +export interface K8sIoApiCoreV1HostAlias { + /** + * IP address of the host file entry. + * @type {string} + * @memberof K8sIoApiCoreV1HostAlias + */ + ip?: string; + /** + * Hostnames for the above IP address. + * @type {Array} + * @memberof K8sIoApiCoreV1HostAlias + */ + hostnames?: Array; +} +/** + * Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1HostPathVolumeSource + */ +export interface K8sIoApiCoreV1HostPathVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HostPathVolumeSource + */ + path?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1HostPathVolumeSource + */ + type?: string; +} +/** + * Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1ISCSIVolumeSource + */ +export interface K8sIoApiCoreV1ISCSIVolumeSource { + /** + * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). + * @type {string} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + targetPortal?: string; + /** + * Target iSCSI Qualified Name. + * @type {string} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + iqn?: string; + /** + * iSCSI Target Lun number. + * @type {number} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + lun?: number; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + iscsiInterface?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + portals?: Array; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + chapAuthDiscovery?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + chapAuthSession?: boolean; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ISCSIVolumeSource + */ + initiatorName?: string; +} +/** + * Maps a string key to a path within a volume. + * @export + * @interface K8sIoApiCoreV1KeyToPath + */ +export interface K8sIoApiCoreV1KeyToPath { + /** + * The key to project. + * @type {string} + * @memberof K8sIoApiCoreV1KeyToPath + */ + key?: string; + /** + * The relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. + * @type {string} + * @memberof K8sIoApiCoreV1KeyToPath + */ + path?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1KeyToPath + */ + mode?: number; +} +/** + * Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted. + * @export + * @interface K8sIoApiCoreV1Lifecycle + */ +export interface K8sIoApiCoreV1Lifecycle { + /** + * + * @type {K8sIoApiCoreV1Handler} + * @memberof K8sIoApiCoreV1Lifecycle + */ + postStart?: K8sIoApiCoreV1Handler; + /** + * + * @type {K8sIoApiCoreV1Handler} + * @memberof K8sIoApiCoreV1Lifecycle + */ + preStop?: K8sIoApiCoreV1Handler; +} +/** + * LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. + * @export + * @interface K8sIoApiCoreV1LocalObjectReference + */ +export interface K8sIoApiCoreV1LocalObjectReference { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1LocalObjectReference + */ + name?: string; +} +/** + * Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1NFSVolumeSource + */ +export interface K8sIoApiCoreV1NFSVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1NFSVolumeSource + */ + server?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1NFSVolumeSource + */ + path?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1NFSVolumeSource + */ + readOnly?: boolean; +} +/** + * Node affinity is a group of node affinity scheduling rules. + * @export + * @interface K8sIoApiCoreV1NodeAffinity + */ +export interface K8sIoApiCoreV1NodeAffinity { + /** + * + * @type {K8sIoApiCoreV1NodeSelector} + * @memberof K8sIoApiCoreV1NodeAffinity + */ + requiredDuringSchedulingIgnoredDuringExecution?: K8sIoApiCoreV1NodeSelector; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1NodeAffinity + */ + preferredDuringSchedulingIgnoredDuringExecution?: Array; +} +/** + * A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms. + * @export + * @interface K8sIoApiCoreV1NodeSelector + */ +export interface K8sIoApiCoreV1NodeSelector { + /** + * Required. A list of node selector terms. The terms are ORed. + * @type {Array} + * @memberof K8sIoApiCoreV1NodeSelector + */ + nodeSelectorTerms?: Array; +} +/** + * A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + * @export + * @interface K8sIoApiCoreV1NodeSelectorRequirement + */ +export interface K8sIoApiCoreV1NodeSelectorRequirement { + /** + * The label key that the selector applies to. + * @type {string} + * @memberof K8sIoApiCoreV1NodeSelectorRequirement + */ + key?: string; + /** + * Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + * @type {string} + * @memberof K8sIoApiCoreV1NodeSelectorRequirement + */ + operator?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1NodeSelectorRequirement + */ + values?: Array; +} +/** + * A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. + * @export + * @interface K8sIoApiCoreV1NodeSelectorTerm + */ +export interface K8sIoApiCoreV1NodeSelectorTerm { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1NodeSelectorTerm + */ + matchExpressions?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1NodeSelectorTerm + */ + matchFields?: Array; +} +/** + * ObjectFieldSelector selects an APIVersioned field of an object. + * @export + * @interface K8sIoApiCoreV1ObjectFieldSelector + */ +export interface K8sIoApiCoreV1ObjectFieldSelector { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ObjectFieldSelector + */ + apiVersion?: string; + /** + * Path of the field to select in the specified API version. + * @type {string} + * @memberof K8sIoApiCoreV1ObjectFieldSelector + */ + fieldPath?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1PersistentVolumeClaimSpec + */ +export interface K8sIoApiCoreV1PersistentVolumeClaimSpec { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + accessModes?: Array; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1LabelSelector} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + selector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; + /** + * + * @type {K8sIoApiCoreV1ResourceRequirements} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + resources?: K8sIoApiCoreV1ResourceRequirements; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + volumeName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + storageClassName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + volumeMode?: string; + /** + * + * @type {K8sIoApiCoreV1TypedLocalObjectReference} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimSpec + */ + dataSource?: K8sIoApiCoreV1TypedLocalObjectReference; +} +/** + * PersistentVolumeClaimTemplate is used to produce PersistentVolumeClaim objects as part of an EphemeralVolumeSource. + * @export + * @interface K8sIoApiCoreV1PersistentVolumeClaimTemplate + */ +export interface K8sIoApiCoreV1PersistentVolumeClaimTemplate { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimTemplate + */ + metadata?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {K8sIoApiCoreV1PersistentVolumeClaimSpec} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimTemplate + */ + spec?: K8sIoApiCoreV1PersistentVolumeClaimSpec; +} +/** + * PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system). + * @export + * @interface K8sIoApiCoreV1PersistentVolumeClaimVolumeSource + */ +export interface K8sIoApiCoreV1PersistentVolumeClaimVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimVolumeSource + */ + claimName?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PersistentVolumeClaimVolumeSource + */ + readOnly?: boolean; +} +/** + * Represents a Photon Controller persistent disk resource. + * @export + * @interface K8sIoApiCoreV1PhotonPersistentDiskVolumeSource + */ +export interface K8sIoApiCoreV1PhotonPersistentDiskVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PhotonPersistentDiskVolumeSource + */ + pdID?: string; + /** + * Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified. + * @type {string} + * @memberof K8sIoApiCoreV1PhotonPersistentDiskVolumeSource + */ + fsType?: string; +} +/** + * Pod affinity is a group of inter pod affinity scheduling rules. + * @export + * @interface K8sIoApiCoreV1PodAffinity + */ +export interface K8sIoApiCoreV1PodAffinity { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodAffinity + */ + requiredDuringSchedulingIgnoredDuringExecution?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodAffinity + */ + preferredDuringSchedulingIgnoredDuringExecution?: Array; +} +/** + * + * @export + * @interface K8sIoApiCoreV1PodAffinityTerm + */ +export interface K8sIoApiCoreV1PodAffinityTerm { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1LabelSelector} + * @memberof K8sIoApiCoreV1PodAffinityTerm + */ + labelSelector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodAffinityTerm + */ + namespaces?: Array; + /** + * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + * @type {string} + * @memberof K8sIoApiCoreV1PodAffinityTerm + */ + topologyKey?: string; +} +/** + * Pod anti affinity is a group of inter pod anti affinity scheduling rules. + * @export + * @interface K8sIoApiCoreV1PodAntiAffinity + */ +export interface K8sIoApiCoreV1PodAntiAffinity { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodAntiAffinity + */ + requiredDuringSchedulingIgnoredDuringExecution?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodAntiAffinity + */ + preferredDuringSchedulingIgnoredDuringExecution?: Array; +} +/** + * PodDNSConfig defines the DNS parameters of a pod in addition to those generated from DNSPolicy. + * @export + * @interface K8sIoApiCoreV1PodDNSConfig + */ +export interface K8sIoApiCoreV1PodDNSConfig { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodDNSConfig + */ + nameservers?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodDNSConfig + */ + searches?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodDNSConfig + */ + options?: Array; +} +/** + * PodDNSConfigOption defines DNS resolver options of a pod. + * @export + * @interface K8sIoApiCoreV1PodDNSConfigOption + */ +export interface K8sIoApiCoreV1PodDNSConfigOption { + /** + * Required. + * @type {string} + * @memberof K8sIoApiCoreV1PodDNSConfigOption + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodDNSConfigOption + */ + value?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1PodReadinessGate + */ +export interface K8sIoApiCoreV1PodReadinessGate { + /** + * ConditionType refers to a condition in the pod's condition list with matching type. + * @type {string} + * @memberof K8sIoApiCoreV1PodReadinessGate + */ + conditionType?: string; +} +/** + * PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext. + * @export + * @interface K8sIoApiCoreV1PodSecurityContext + */ +export interface K8sIoApiCoreV1PodSecurityContext { + /** + * + * @type {K8sIoApiCoreV1SELinuxOptions} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + seLinuxOptions?: K8sIoApiCoreV1SELinuxOptions; + /** + * + * @type {K8sIoApiCoreV1WindowsSecurityContextOptions} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + windowsOptions?: K8sIoApiCoreV1WindowsSecurityContextOptions; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + runAsUser?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + runAsGroup?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + runAsNonRoot?: boolean; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + supplementalGroups?: Array; + /** + * 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. +optional + * @type {string} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + fsGroup?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + sysctls?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + fsGroupChangePolicy?: string; + /** + * + * @type {K8sIoApiCoreV1SeccompProfile} + * @memberof K8sIoApiCoreV1PodSecurityContext + */ + seccompProfile?: K8sIoApiCoreV1SeccompProfile; +} +/** + * PodSpec is a description of a pod. + * @export + * @interface K8sIoApiCoreV1PodSpec + */ +export interface K8sIoApiCoreV1PodSpec { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + volumes?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + initContainers?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + containers?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + ephemeralContainers?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + restartPolicy?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + terminationGracePeriodSeconds?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + activeDeadlineSeconds?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + dnsPolicy?: string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApiCoreV1PodSpec + */ + nodeSelector?: { [key: string]: string; }; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + serviceAccountName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + serviceAccount?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + automountServiceAccountToken?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + nodeName?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostNetwork?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostPID?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostIPC?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + shareProcessNamespace?: boolean; + /** + * + * @type {K8sIoApiCoreV1PodSecurityContext} + * @memberof K8sIoApiCoreV1PodSpec + */ + securityContext?: K8sIoApiCoreV1PodSecurityContext; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + imagePullSecrets?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostname?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + subdomain?: string; + /** + * + * @type {K8sIoApiCoreV1Affinity} + * @memberof K8sIoApiCoreV1PodSpec + */ + affinity?: K8sIoApiCoreV1Affinity; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + schedulerName?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + tolerations?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + hostAliases?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + priorityClassName?: string; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1PodSpec + */ + priority?: number; + /** + * + * @type {K8sIoApiCoreV1PodDNSConfig} + * @memberof K8sIoApiCoreV1PodSpec + */ + dnsConfig?: K8sIoApiCoreV1PodDNSConfig; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + readinessGates?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + runtimeClassName?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + enableServiceLinks?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PodSpec + */ + preemptionPolicy?: string; + /** + * + * @type {{ [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }} + * @memberof K8sIoApiCoreV1PodSpec + */ + overhead?: { [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1PodSpec + */ + topologySpreadConstraints?: Array; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PodSpec + */ + setHostnameAsFQDN?: boolean; +} +/** + * + * @export + * @interface K8sIoApiCoreV1PodTemplateSpec + */ +export interface K8sIoApiCoreV1PodTemplateSpec { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof K8sIoApiCoreV1PodTemplateSpec + */ + metadata?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {K8sIoApiCoreV1PodSpec} + * @memberof K8sIoApiCoreV1PodTemplateSpec + */ + spec?: K8sIoApiCoreV1PodSpec; +} +/** + * PortworxVolumeSource represents a Portworx volume resource. + * @export + * @interface K8sIoApiCoreV1PortworxVolumeSource + */ +export interface K8sIoApiCoreV1PortworxVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1PortworxVolumeSource + */ + volumeID?: string; + /** + * FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified. + * @type {string} + * @memberof K8sIoApiCoreV1PortworxVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1PortworxVolumeSource + */ + readOnly?: boolean; +} +/** + * An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). + * @export + * @interface K8sIoApiCoreV1PreferredSchedulingTerm + */ +export interface K8sIoApiCoreV1PreferredSchedulingTerm { + /** + * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. + * @type {number} + * @memberof K8sIoApiCoreV1PreferredSchedulingTerm + */ + weight?: number; + /** + * + * @type {K8sIoApiCoreV1NodeSelectorTerm} + * @memberof K8sIoApiCoreV1PreferredSchedulingTerm + */ + preference?: K8sIoApiCoreV1NodeSelectorTerm; +} +/** + * Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic. + * @export + * @interface K8sIoApiCoreV1Probe + */ +export interface K8sIoApiCoreV1Probe { + /** + * + * @type {K8sIoApiCoreV1Handler} + * @memberof K8sIoApiCoreV1Probe + */ + handler?: K8sIoApiCoreV1Handler; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1Probe + */ + initialDelaySeconds?: number; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1Probe + */ + timeoutSeconds?: number; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1Probe + */ + periodSeconds?: number; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1Probe + */ + successThreshold?: number; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1Probe + */ + failureThreshold?: number; +} +/** + * + * @export + * @interface K8sIoApiCoreV1ProjectedVolumeSource + */ +export interface K8sIoApiCoreV1ProjectedVolumeSource { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1ProjectedVolumeSource + */ + sources?: Array; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1ProjectedVolumeSource + */ + defaultMode?: number; +} +/** + * Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1QuobyteVolumeSource + */ +export interface K8sIoApiCoreV1QuobyteVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + registry?: string; + /** + * Volume is a string that references an already created Quobyte volume by name. + * @type {string} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + volume?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + user?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + group?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1QuobyteVolumeSource + */ + tenant?: string; +} +/** + * Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1RBDVolumeSource + */ +export interface K8sIoApiCoreV1RBDVolumeSource { + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + monitors?: Array; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + image?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + fsType?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + pool?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + user?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + keyring?: string; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1RBDVolumeSource + */ + readOnly?: boolean; +} +/** + * + * @export + * @interface K8sIoApiCoreV1ResourceFieldSelector + */ +export interface K8sIoApiCoreV1ResourceFieldSelector { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ResourceFieldSelector + */ + containerName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ResourceFieldSelector + */ + resource?: string; + /** + * + * @type {K8sIoApimachineryPkgApiResourceQuantity} + * @memberof K8sIoApiCoreV1ResourceFieldSelector + */ + divisor?: K8sIoApimachineryPkgApiResourceQuantity; +} +/** + * ResourceRequirements describes the compute resource requirements. + * @export + * @interface K8sIoApiCoreV1ResourceRequirements + */ +export interface K8sIoApiCoreV1ResourceRequirements { + /** + * + * @type {{ [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }} + * @memberof K8sIoApiCoreV1ResourceRequirements + */ + limits?: { [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }; + /** + * + * @type {{ [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }} + * @memberof K8sIoApiCoreV1ResourceRequirements + */ + requests?: { [key: string]: K8sIoApimachineryPkgApiResourceQuantity; }; +} +/** + * + * @export + * @interface K8sIoApiCoreV1SELinuxOptions + */ +export interface K8sIoApiCoreV1SELinuxOptions { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SELinuxOptions + */ + user?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SELinuxOptions + */ + role?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SELinuxOptions + */ + type?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SELinuxOptions + */ + level?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1ScaleIOVolumeSource + */ +export interface K8sIoApiCoreV1ScaleIOVolumeSource { + /** + * The host address of the ScaleIO API Gateway. + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + gateway?: string; + /** + * The name of the storage system as configured in ScaleIO. + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + system?: string; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + sslEnabled?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + protectionDomain?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + storagePool?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + storageMode?: string; + /** + * The name of a volume already created in the ScaleIO system that is associated with this volume source. + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + volumeName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1ScaleIOVolumeSource + */ + readOnly?: boolean; +} +/** + * + * @export + * @interface K8sIoApiCoreV1SeccompProfile + */ +export interface K8sIoApiCoreV1SeccompProfile { + /** + * Localhost - a profile defined in a file on the node should be used. RuntimeDefault - the container runtime default profile should be used. Unconfined - no profile should be applied. +unionDiscriminator + * @type {string} + * @memberof K8sIoApiCoreV1SeccompProfile + */ + type?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SeccompProfile + */ + localhostProfile?: string; +} +/** + * SecretEnvSource selects a Secret to populate the environment variables with. The contents of the target Secret's Data field will represent the key-value pairs as environment variables. + * @export + * @interface K8sIoApiCoreV1SecretEnvSource + */ +export interface K8sIoApiCoreV1SecretEnvSource { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1SecretEnvSource + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecretEnvSource + */ + optional?: boolean; +} +/** + * SecretKeySelector selects a key of a Secret. + * @export + * @interface K8sIoApiCoreV1SecretKeySelector + */ +export interface K8sIoApiCoreV1SecretKeySelector { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1SecretKeySelector + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * The key of the secret to select from. Must be a valid secret key. + * @type {string} + * @memberof K8sIoApiCoreV1SecretKeySelector + */ + key?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecretKeySelector + */ + optional?: boolean; +} +/** + * Adapts a secret into a projected volume. The contents of the target Secret's Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode. + * @export + * @interface K8sIoApiCoreV1SecretProjection + */ +export interface K8sIoApiCoreV1SecretProjection { + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1SecretProjection + */ + localObjectReference?: K8sIoApiCoreV1LocalObjectReference; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1SecretProjection + */ + items?: Array; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecretProjection + */ + optional?: boolean; +} +/** + * Adapts a Secret into a volume. The contents of the target Secret's Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling. + * @export + * @interface K8sIoApiCoreV1SecretVolumeSource + */ +export interface K8sIoApiCoreV1SecretVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SecretVolumeSource + */ + secretName?: string; + /** + * + * @type {Array} + * @memberof K8sIoApiCoreV1SecretVolumeSource + */ + items?: Array; + /** + * + * @type {number} + * @memberof K8sIoApiCoreV1SecretVolumeSource + */ + defaultMode?: number; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecretVolumeSource + */ + optional?: boolean; +} +/** + * SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence. + * @export + * @interface K8sIoApiCoreV1SecurityContext + */ +export interface K8sIoApiCoreV1SecurityContext { + /** + * + * @type {K8sIoApiCoreV1Capabilities} + * @memberof K8sIoApiCoreV1SecurityContext + */ + capabilities?: K8sIoApiCoreV1Capabilities; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecurityContext + */ + privileged?: boolean; + /** + * + * @type {K8sIoApiCoreV1SELinuxOptions} + * @memberof K8sIoApiCoreV1SecurityContext + */ + seLinuxOptions?: K8sIoApiCoreV1SELinuxOptions; + /** + * + * @type {K8sIoApiCoreV1WindowsSecurityContextOptions} + * @memberof K8sIoApiCoreV1SecurityContext + */ + windowsOptions?: K8sIoApiCoreV1WindowsSecurityContextOptions; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SecurityContext + */ + runAsUser?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SecurityContext + */ + runAsGroup?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecurityContext + */ + runAsNonRoot?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecurityContext + */ + readOnlyRootFilesystem?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1SecurityContext + */ + allowPrivilegeEscalation?: boolean; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1SecurityContext + */ + procMount?: string; + /** + * + * @type {K8sIoApiCoreV1SeccompProfile} + * @memberof K8sIoApiCoreV1SecurityContext + */ + seccompProfile?: K8sIoApiCoreV1SeccompProfile; +} +/** + * ServiceAccountTokenProjection represents a projected service account token volume. This projection can be used to insert a service account token into the pods runtime filesystem for use against APIs (Kubernetes API Server or otherwise). + * @export + * @interface K8sIoApiCoreV1ServiceAccountTokenProjection + */ +export interface K8sIoApiCoreV1ServiceAccountTokenProjection { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceAccountTokenProjection + */ + audience?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1ServiceAccountTokenProjection + */ + expirationSeconds?: string; + /** + * Path is the path relative to the mount point of the file to project the token into. + * @type {string} + * @memberof K8sIoApiCoreV1ServiceAccountTokenProjection + */ + path?: string; +} +/** + * Represents a StorageOS persistent volume resource. + * @export + * @interface K8sIoApiCoreV1StorageOSVolumeSource + */ +export interface K8sIoApiCoreV1StorageOSVolumeSource { + /** + * VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. + * @type {string} + * @memberof K8sIoApiCoreV1StorageOSVolumeSource + */ + volumeName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1StorageOSVolumeSource + */ + volumeNamespace?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1StorageOSVolumeSource + */ + fsType?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1StorageOSVolumeSource + */ + readOnly?: boolean; + /** + * + * @type {K8sIoApiCoreV1LocalObjectReference} + * @memberof K8sIoApiCoreV1StorageOSVolumeSource + */ + secretRef?: K8sIoApiCoreV1LocalObjectReference; +} +/** + * + * @export + * @interface K8sIoApiCoreV1Sysctl + */ +export interface K8sIoApiCoreV1Sysctl { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Sysctl + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Sysctl + */ + value?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1TCPSocketAction + */ +export interface K8sIoApiCoreV1TCPSocketAction { + /** + * + * @type {K8sIoApimachineryPkgUtilIntstrIntOrString} + * @memberof K8sIoApiCoreV1TCPSocketAction + */ + port?: K8sIoApimachineryPkgUtilIntstrIntOrString; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1TCPSocketAction + */ + host?: string; +} +/** + * The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . + * @export + * @interface K8sIoApiCoreV1Toleration + */ +export interface K8sIoApiCoreV1Toleration { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Toleration + */ + key?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Toleration + */ + operator?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Toleration + */ + value?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Toleration + */ + effect?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Toleration + */ + tolerationSeconds?: string; +} +/** + * TopologySpreadConstraint specifies how to spread matching pods among the given topology. + * @export + * @interface K8sIoApiCoreV1TopologySpreadConstraint + */ +export interface K8sIoApiCoreV1TopologySpreadConstraint { + /** + * MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 1/1/0: +-------+-------+-------+ | zone1 | zone2 | zone3 | +-------+-------+-------+ | P | P | | +-------+-------+-------+ - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 1/1/1; scheduling it onto zone1(zone2) would make the ActualSkew(2-0) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed. + * @type {number} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + maxSkew?: number; + /** + * TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each as a \"bucket\", and try to put balanced number of pods into each bucket. It's a required field. + * @type {string} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + topologyKey?: string; + /** + * WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy the spread constraint. - DoNotSchedule (default) tells the scheduler not to schedule it. - ScheduleAnyway tells the scheduler to schedule the pod in any location, but giving higher precedence to topologies that would help reduce the skew. A constraint is considered \"Unsatisfiable\" for an incoming pod if and only if every possible node assigment for that pod would violate \"MaxSkew\" on some topology. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 3/1/1: +-------+-------+-------+ | zone1 | zone2 | zone3 | +-------+-------+-------+ | P P P | P | P | +-------+-------+-------+ If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler won't make it *more* imbalanced. It's a required field. + * @type {string} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + whenUnsatisfiable?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1LabelSelector} + * @memberof K8sIoApiCoreV1TopologySpreadConstraint + */ + labelSelector?: K8sIoApimachineryPkgApisMetaV1LabelSelector; +} +/** + * TypedLocalObjectReference contains enough information to let you locate the typed referenced object inside the same namespace. + * @export + * @interface K8sIoApiCoreV1TypedLocalObjectReference + */ +export interface K8sIoApiCoreV1TypedLocalObjectReference { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1TypedLocalObjectReference + */ + apiGroup?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1TypedLocalObjectReference + */ + kind?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1TypedLocalObjectReference + */ + name?: string; +} +/** + * Volume represents a named volume in a pod that may be accessed by any container in the pod. + * @export + * @interface K8sIoApiCoreV1Volume + */ +export interface K8sIoApiCoreV1Volume { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1Volume + */ + name?: string; + /** + * + * @type {K8sIoApiCoreV1VolumeSource} + * @memberof K8sIoApiCoreV1Volume + */ + volumeSource?: K8sIoApiCoreV1VolumeSource; +} +/** + * volumeDevice describes a mapping of a raw block device within a container. + * @export + * @interface K8sIoApiCoreV1VolumeDevice + */ +export interface K8sIoApiCoreV1VolumeDevice { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VolumeDevice + */ + name?: string; + /** + * devicePath is the path inside of the container that the device will be mapped to. + * @type {string} + * @memberof K8sIoApiCoreV1VolumeDevice + */ + devicePath?: string; +} +/** + * VolumeMount describes a mounting of a Volume within a container. + * @export + * @interface K8sIoApiCoreV1VolumeMount + */ +export interface K8sIoApiCoreV1VolumeMount { + /** + * This must match the Name of a Volume. + * @type {string} + * @memberof K8sIoApiCoreV1VolumeMount + */ + name?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApiCoreV1VolumeMount + */ + readOnly?: boolean; + /** + * Path within the container at which the volume should be mounted. Must not contain ':'. + * @type {string} + * @memberof K8sIoApiCoreV1VolumeMount + */ + mountPath?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VolumeMount + */ + subPath?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VolumeMount + */ + mountPropagation?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VolumeMount + */ + subPathExpr?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1VolumeProjection + */ +export interface K8sIoApiCoreV1VolumeProjection { + /** + * + * @type {K8sIoApiCoreV1SecretProjection} + * @memberof K8sIoApiCoreV1VolumeProjection + */ + secret?: K8sIoApiCoreV1SecretProjection; + /** + * + * @type {K8sIoApiCoreV1DownwardAPIProjection} + * @memberof K8sIoApiCoreV1VolumeProjection + */ + downwardAPI?: K8sIoApiCoreV1DownwardAPIProjection; + /** + * + * @type {K8sIoApiCoreV1ConfigMapProjection} + * @memberof K8sIoApiCoreV1VolumeProjection + */ + configMap?: K8sIoApiCoreV1ConfigMapProjection; + /** + * + * @type {K8sIoApiCoreV1ServiceAccountTokenProjection} + * @memberof K8sIoApiCoreV1VolumeProjection + */ + serviceAccountToken?: K8sIoApiCoreV1ServiceAccountTokenProjection; +} +/** + * Represents the source of a volume to mount. Only one of its members may be specified. + * @export + * @interface K8sIoApiCoreV1VolumeSource + */ +export interface K8sIoApiCoreV1VolumeSource { + /** + * + * @type {K8sIoApiCoreV1HostPathVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + hostPath?: K8sIoApiCoreV1HostPathVolumeSource; + /** + * + * @type {K8sIoApiCoreV1EmptyDirVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + emptyDir?: K8sIoApiCoreV1EmptyDirVolumeSource; + /** + * + * @type {K8sIoApiCoreV1GCEPersistentDiskVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + gcePersistentDisk?: K8sIoApiCoreV1GCEPersistentDiskVolumeSource; + /** + * + * @type {K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + awsElasticBlockStore?: K8sIoApiCoreV1AWSElasticBlockStoreVolumeSource; + /** + * + * @type {K8sIoApiCoreV1GitRepoVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + gitRepo?: K8sIoApiCoreV1GitRepoVolumeSource; + /** + * + * @type {K8sIoApiCoreV1SecretVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + secret?: K8sIoApiCoreV1SecretVolumeSource; + /** + * + * @type {K8sIoApiCoreV1NFSVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + nfs?: K8sIoApiCoreV1NFSVolumeSource; + /** + * + * @type {K8sIoApiCoreV1ISCSIVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + iscsi?: K8sIoApiCoreV1ISCSIVolumeSource; + /** + * + * @type {K8sIoApiCoreV1GlusterfsVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + glusterfs?: K8sIoApiCoreV1GlusterfsVolumeSource; + /** + * + * @type {K8sIoApiCoreV1PersistentVolumeClaimVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + persistentVolumeClaim?: K8sIoApiCoreV1PersistentVolumeClaimVolumeSource; + /** + * + * @type {K8sIoApiCoreV1RBDVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + rbd?: K8sIoApiCoreV1RBDVolumeSource; + /** + * + * @type {K8sIoApiCoreV1FlexVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + flexVolume?: K8sIoApiCoreV1FlexVolumeSource; + /** + * + * @type {K8sIoApiCoreV1CinderVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + cinder?: K8sIoApiCoreV1CinderVolumeSource; + /** + * + * @type {K8sIoApiCoreV1CephFSVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + cephfs?: K8sIoApiCoreV1CephFSVolumeSource; + /** + * + * @type {K8sIoApiCoreV1FlockerVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + flocker?: K8sIoApiCoreV1FlockerVolumeSource; + /** + * + * @type {K8sIoApiCoreV1DownwardAPIVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + downwardAPI?: K8sIoApiCoreV1DownwardAPIVolumeSource; + /** + * + * @type {K8sIoApiCoreV1FCVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + fc?: K8sIoApiCoreV1FCVolumeSource; + /** + * + * @type {K8sIoApiCoreV1AzureFileVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + azureFile?: K8sIoApiCoreV1AzureFileVolumeSource; + /** + * + * @type {K8sIoApiCoreV1ConfigMapVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + configMap?: K8sIoApiCoreV1ConfigMapVolumeSource; + /** + * + * @type {K8sIoApiCoreV1VsphereVirtualDiskVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + vsphereVolume?: K8sIoApiCoreV1VsphereVirtualDiskVolumeSource; + /** + * + * @type {K8sIoApiCoreV1QuobyteVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + quobyte?: K8sIoApiCoreV1QuobyteVolumeSource; + /** + * + * @type {K8sIoApiCoreV1AzureDiskVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + azureDisk?: K8sIoApiCoreV1AzureDiskVolumeSource; + /** + * + * @type {K8sIoApiCoreV1PhotonPersistentDiskVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + photonPersistentDisk?: K8sIoApiCoreV1PhotonPersistentDiskVolumeSource; + /** + * + * @type {K8sIoApiCoreV1ProjectedVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + projected?: K8sIoApiCoreV1ProjectedVolumeSource; + /** + * + * @type {K8sIoApiCoreV1PortworxVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + portworxVolume?: K8sIoApiCoreV1PortworxVolumeSource; + /** + * + * @type {K8sIoApiCoreV1ScaleIOVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + scaleIO?: K8sIoApiCoreV1ScaleIOVolumeSource; + /** + * + * @type {K8sIoApiCoreV1StorageOSVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + storageos?: K8sIoApiCoreV1StorageOSVolumeSource; + /** + * + * @type {K8sIoApiCoreV1CSIVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + csi?: K8sIoApiCoreV1CSIVolumeSource; + /** + * + * @type {K8sIoApiCoreV1EphemeralVolumeSource} + * @memberof K8sIoApiCoreV1VolumeSource + */ + ephemeral?: K8sIoApiCoreV1EphemeralVolumeSource; +} +/** + * Represents a vSphere volume resource. + * @export + * @interface K8sIoApiCoreV1VsphereVirtualDiskVolumeSource + */ +export interface K8sIoApiCoreV1VsphereVirtualDiskVolumeSource { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VsphereVirtualDiskVolumeSource + */ + volumePath?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VsphereVirtualDiskVolumeSource + */ + fsType?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VsphereVirtualDiskVolumeSource + */ + storagePolicyName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1VsphereVirtualDiskVolumeSource + */ + storagePolicyID?: string; +} +/** + * + * @export + * @interface K8sIoApiCoreV1WeightedPodAffinityTerm + */ +export interface K8sIoApiCoreV1WeightedPodAffinityTerm { + /** + * weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + * @type {number} + * @memberof K8sIoApiCoreV1WeightedPodAffinityTerm + */ + weight?: number; + /** + * + * @type {K8sIoApiCoreV1PodAffinityTerm} + * @memberof K8sIoApiCoreV1WeightedPodAffinityTerm + */ + podAffinityTerm?: K8sIoApiCoreV1PodAffinityTerm; +} +/** + * WindowsSecurityContextOptions contain Windows-specific options and credentials. + * @export + * @interface K8sIoApiCoreV1WindowsSecurityContextOptions + */ +export interface K8sIoApiCoreV1WindowsSecurityContextOptions { + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1WindowsSecurityContextOptions + */ + gmsaCredentialSpecName?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1WindowsSecurityContextOptions + */ + gmsaCredentialSpec?: string; + /** + * + * @type {string} + * @memberof K8sIoApiCoreV1WindowsSecurityContextOptions + */ + runAsUserName?: string; +} +/** + * Quantity is a fixed-point representation of a number. It provides convenient marshaling/unmarshaling in JSON and YAML, in addition to String() and AsInt64() accessors. The serialization format is: ::= (Note that may be empty, from the \"\" case in .) ::= 0 | 1 | ... | 9 ::= | ::= | . | . | . ::= \"+\" | \"-\" ::= | ::= | | ::= Ki | Mi | Gi | Ti | Pi | Ei (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) ::= m | \"\" | k | M | G | T | P | E (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) ::= \"e\" | \"E\" No matter which of the three exponent forms is used, no quantity may represent a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal places. Numbers larger or more precise will be capped or rounded up. (E.g.: 0.1m will rounded up to 1m.) This may be extended in the future if we require larger or smaller quantities. When a Quantity is parsed from a string, it will remember the type of suffix it had, and will use the same type again when it is serialized. Before serializing, Quantity will be put in \"canonical form\". This means that Exponent/suffix will be adjusted up or down (with a corresponding increase or decrease in Mantissa) such that: a. No precision is lost b. No fractional digits will be emitted c. The exponent (or suffix) is as large as possible. The sign will be omitted unless the number is negative. Examples: 1.5 will be serialized as \"1500m\" 1.5Gi will be serialized as \"1536Mi\" Note that the quantity will NEVER be internally represented by a floating point number. That is the whole point of this exercise. Non-canonical values will still parse as long as they are well formed, but will be re-emitted in their canonical form. (So always use canonical form, or don't diff.) This format is intended to make it difficult to use these numbers without writing some sort of special handling code in the hopes that that will cause implementors to also use a fixed point implementation. +protobuf=true +protobuf.embed=string +protobuf.options.marshal=false +protobuf.options.(gogoproto.goproto_stringer)=false +k8s:deepcopy-gen=true +k8s:openapi-gen=true + * @export + * @interface K8sIoApimachineryPkgApiResourceQuantity + */ +export interface K8sIoApimachineryPkgApiResourceQuantity { + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApiResourceQuantity + */ + string?: string; +} +/** + * FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. The exact format is defined in sigs.k8s.io/structured-merge-diff +protobuf.options.(gogoproto.goproto_stringer)=false + * @export + * @interface K8sIoApimachineryPkgApisMetaV1FieldsV1 + */ +export interface K8sIoApimachineryPkgApisMetaV1FieldsV1 { + /** + * Raw is the underlying serialization of this object. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1FieldsV1 + */ + raw?: string; +} +/** + * + * @export + * @interface K8sIoApimachineryPkgApisMetaV1LabelSelector + */ +export interface K8sIoApimachineryPkgApisMetaV1LabelSelector { + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApimachineryPkgApisMetaV1LabelSelector + */ + matchLabels?: { [key: string]: string; }; + /** + * + * @type {Array} + * @memberof K8sIoApimachineryPkgApisMetaV1LabelSelector + */ + matchExpressions?: Array; +} +/** + * A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + * @export + * @interface K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement + */ +export interface K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement { + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement + */ + key?: string; + /** + * operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement + */ + operator?: string; + /** + * + * @type {Array} + * @memberof K8sIoApimachineryPkgApisMetaV1LabelSelectorRequirement + */ + values?: Array; +} +/** + * ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}. + * @export + * @interface K8sIoApimachineryPkgApisMetaV1ListMeta + */ +export interface K8sIoApimachineryPkgApisMetaV1ListMeta { + /** + * selfLink is a URL representing this object. Populated by the system. Read-only. DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release. +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ListMeta + */ + selfLink?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ListMeta + */ + resourceVersion?: string; + /** + * continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a consistent list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response, unless you have received this token from an error message. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ListMeta + */ + _continue?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ListMeta + */ + remainingItemCount?: string; +} +/** + * ManagedFieldsEntry is a workflow-id, a FieldSet and the group version of the resource that the fieldset applies to. + * @export + * @interface K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ +export interface K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry { + /** + * Manager is an identifier of the workflow managing these fields. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + manager?: string; + /** + * Operation is the type of operation which lead to this ManagedFieldsEntry being created. The only valid values for this field are 'Apply' and 'Update'. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + operation?: string; + /** + * APIVersion defines the version of this resource that this field set applies to. The format is \"group/version\" just like the top-level APIVersion field. It is necessary to track the version of a field set because it cannot be automatically converted. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + apiVersion?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + time?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + fieldsType?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1FieldsV1} + * @memberof K8sIoApimachineryPkgApisMetaV1ManagedFieldsEntry + */ + fieldsV1?: K8sIoApimachineryPkgApisMetaV1FieldsV1; +} +/** + * ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. + * @export + * @interface K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ +export interface K8sIoApimachineryPkgApisMetaV1ObjectMeta { + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + name?: string; + /** + * GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header). Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + generateName?: string; + /** + * Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + namespace?: string; + /** + * SelfLink is a URL representing this object. Populated by the system. Read-only. DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release. +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + selfLink?: string; + /** + * UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + uid?: string; + /** + * An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources. Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency +optional + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + resourceVersion?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + generation?: string; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + creationTimestamp?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1Time} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + deletionTimestamp?: K8sIoApimachineryPkgApisMetaV1Time; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + deletionGracePeriodSeconds?: string; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + labels?: { [key: string]: string; }; + /** + * + * @type {{ [key: string]: string; }} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + annotations?: { [key: string]: string; }; + /** + * + * @type {Array} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + ownerReferences?: Array; + /** + * + * @type {Array} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + finalizers?: Array; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + clusterName?: string; + /** + * ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like \"ci-cd\". The set of fields is always in the version that the workflow used when modifying the object. +optional + * @type {Array} + * @memberof K8sIoApimachineryPkgApisMetaV1ObjectMeta + */ + managedFields?: Array; +} +/** + * OwnerReference contains enough information to let you identify an owning object. An owning object must be in the same namespace as the dependent, or be cluster-scoped, so there is no namespace field. + * @export + * @interface K8sIoApimachineryPkgApisMetaV1OwnerReference + */ +export interface K8sIoApimachineryPkgApisMetaV1OwnerReference { + /** + * API version of the referent. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + apiVersion?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + kind?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + name?: string; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + uid?: string; + /** + * + * @type {boolean} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + controller?: boolean; + /** + * + * @type {boolean} + * @memberof K8sIoApimachineryPkgApisMetaV1OwnerReference + */ + blockOwnerDeletion?: boolean; +} +/** + * Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +protobuf.options.marshal=false +protobuf.as=Timestamp +protobuf.options.(gogoproto.goproto_stringer)=false + * @export + * @interface K8sIoApimachineryPkgApisMetaV1Time + */ +export interface K8sIoApimachineryPkgApisMetaV1Time { + /** + * Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. + * @type {string} + * @memberof K8sIoApimachineryPkgApisMetaV1Time + */ + seconds?: string; + /** + * Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive. This field may be limited in precision depending on context. + * @type {number} + * @memberof K8sIoApimachineryPkgApisMetaV1Time + */ + nanos?: number; +} +/** + * +protobuf=true +protobuf.options.(gogoproto.goproto_stringer)=false +k8s:openapi-gen=true + * @export + * @interface K8sIoApimachineryPkgUtilIntstrIntOrString + */ +export interface K8sIoApimachineryPkgUtilIntstrIntOrString { + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgUtilIntstrIntOrString + */ + type?: string; + /** + * + * @type {number} + * @memberof K8sIoApimachineryPkgUtilIntstrIntOrString + */ + intVal?: number; + /** + * + * @type {string} + * @memberof K8sIoApimachineryPkgUtilIntstrIntOrString + */ + strVal?: string; +} +/** + * + * @export + * @interface RolloutRolloutWatchEvent + */ +export interface RolloutRolloutWatchEvent { + /** + * + * @type {string} + * @memberof RolloutRolloutWatchEvent + */ + type?: string; + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout} + * @memberof RolloutRolloutWatchEvent + */ + rollout?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout; +} +/** + * + * @export + * @interface StreamResultOfGithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ +export interface StreamResultOfGithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo { + /** + * + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo} + * @memberof StreamResultOfGithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + result?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo; + /** + * + * @type {GrpcGatewayRuntimeStreamError} + * @memberof StreamResultOfGithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + error?: GrpcGatewayRuntimeStreamError; +} +/** + * + * @export + * @interface StreamResultOfRolloutRolloutWatchEvent + */ +export interface StreamResultOfRolloutRolloutWatchEvent { + /** + * + * @type {RolloutRolloutWatchEvent} + * @memberof StreamResultOfRolloutRolloutWatchEvent + */ + result?: RolloutRolloutWatchEvent; + /** + * + * @type {GrpcGatewayRuntimeStreamError} + * @memberof StreamResultOfRolloutRolloutWatchEvent + */ + error?: GrpcGatewayRuntimeStreamError; +} +/** + * RolloutServiceApi - fetch parameter creator + * @export + */ +export const RolloutServiceApiFetchParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @summary Get returns a rollout + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRollout(name: string, options: any = {}): FetchArgs { + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new RequiredError('name','Required parameter name was null or undefined when calling getRollout.'); + } + const localVarPath = `/api/v1/rollout/{name}` + .replace(`{${"name"}}`, encodeURIComponent(String(name))); + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listRollouts(options: any = {}): FetchArgs { + const localVarPath = `/api/v1/rollouts`; + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollout(name: string, options: any = {}): FetchArgs { + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new RequiredError('name','Required parameter name was null or undefined when calling watchRollout.'); + } + const localVarPath = `/api/v1/rollout/watch/{name}` + .replace(`{${"name"}}`, encodeURIComponent(String(name))); + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollouts(options: any = {}): FetchArgs { + const localVarPath = `/api/v1/rollouts/watch`; + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * RolloutServiceApi - functional programming interface + * @export + */ +export const RolloutServiceApiFp = function(configuration?: Configuration) { + return { + /** + * + * @summary Get returns a rollout + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRollout(name: string, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).getRollout(name, options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listRollouts(options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).listRollouts(options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollout(name: string, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).watchRollout(name, options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollouts(options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).watchRollouts(options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, + } +}; + +/** + * RolloutServiceApi - factory interface + * @export + */ +export const RolloutServiceApiFactory = function (configuration?: Configuration, fetch?: FetchAPI, basePath?: string) { + return { + /** + * + * @summary Get returns a rollout + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getRollout(name: string, options?: any) { + return RolloutServiceApiFp(configuration).getRollout(name, options)(fetch, basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + listRollouts(options?: any) { + return RolloutServiceApiFp(configuration).listRollouts(options)(fetch, basePath); + }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollout(name: string, options?: any) { + return RolloutServiceApiFp(configuration).watchRollout(name, options)(fetch, basePath); + }, + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + watchRollouts(options?: any) { + return RolloutServiceApiFp(configuration).watchRollouts(options)(fetch, basePath); + }, + }; +}; + +/** + * RolloutServiceApi - object-oriented interface + * @export + * @class RolloutServiceApi + * @extends {BaseAPI} + */ +export class RolloutServiceApi extends BaseAPI { + /** + * + * @summary Get returns a rollout + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public getRollout(name: string, options?: any) { + return RolloutServiceApiFp(this.configuration).getRollout(name, options)(this.fetch, this.basePath); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public listRollouts(options?: any) { + return RolloutServiceApiFp(this.configuration).listRollouts(options)(this.fetch, this.basePath); + } + + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public watchRollout(name: string, options?: any) { + return RolloutServiceApiFp(this.configuration).watchRollout(name, options)(this.fetch, this.basePath); + } + + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public watchRollouts(options?: any) { + return RolloutServiceApiFp(this.configuration).watchRollouts(options)(this.fetch, this.basePath); + } + +} diff --git a/ui/src/models/rollout/generated/api_test.spec.ts b/ui/src/models/rollout/generated/api_test.spec.ts new file mode 100644 index 0000000000..4e0b711bd2 --- /dev/null +++ b/ui/src/models/rollout/generated/api_test.spec.ts @@ -0,0 +1,39 @@ +/** + * pkg/apiclient/rollout/rollout.proto + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: version not set + * + * + * NOTE: This file is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the file manually. + */ + +import * as api from "./api" +import { Configuration } from "./configuration" + +const config: Configuration = {} + +describe("RolloutServiceApi", () => { + let instance: api.RolloutServiceApi + beforeEach(function() { + instance = new api.RolloutServiceApi(config) + }); + + test("getRollout", () => { + const name: string = "name_example" + return expect(instance.getRollout(name, {})).resolves.toBe(null) + }) + test("listRollouts", () => { + return expect(instance.listRollouts({})).resolves.toBe(null) + }) + test("watchRollout", () => { + const name: string = "name_example" + return expect(instance.watchRollout(name, {})).resolves.toBe(null) + }) + test("watchRollouts", () => { + return expect(instance.watchRollouts({})).resolves.toBe(null) + }) +}) + diff --git a/ui/src/models/rollout/generated/configuration.ts b/ui/src/models/rollout/generated/configuration.ts new file mode 100644 index 0000000000..c4678fdc59 --- /dev/null +++ b/ui/src/models/rollout/generated/configuration.ts @@ -0,0 +1,65 @@ +// tslint:disable +/** + * pkg/apiclient/rollout/rollout.proto + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: version not set + * + * + * NOTE: This file is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the file manually. + */ + +export interface ConfigurationParameters { + apiKey?: string | ((name: string) => string); + username?: string; + password?: string; + accessToken?: string | ((name: string, scopes?: string[]) => string); + basePath?: string; +} + +export class Configuration { + /** + * parameter for apiKey security + * @param name security name + * @memberof Configuration + */ + apiKey?: string | ((name: string) => string); + /** + * parameter for basic security + * + * @type {string} + * @memberof Configuration + */ + username?: string; + /** + * parameter for basic security + * + * @type {string} + * @memberof Configuration + */ + password?: string; + /** + * parameter for oauth2 security + * @param name security name + * @param scopes oauth2 scope + * @memberof Configuration + */ + accessToken?: string | ((name: string, scopes?: string[]) => string); + /** + * override base path + * + * @type {string} + * @memberof Configuration + */ + basePath?: string; + + constructor(param: ConfigurationParameters = {}) { + this.apiKey = param.apiKey; + this.username = param.username; + this.password = param.password; + this.accessToken = param.accessToken; + this.basePath = param.basePath; + } +} diff --git a/ui/src/models/rollout/generated/custom.d.ts b/ui/src/models/rollout/generated/custom.d.ts new file mode 100644 index 0000000000..9a5ceb3588 --- /dev/null +++ b/ui/src/models/rollout/generated/custom.d.ts @@ -0,0 +1,2 @@ +declare module 'portable-fetch'; +declare module 'url'; \ No newline at end of file diff --git a/ui/src/models/rollout/generated/git_push.sh b/ui/src/models/rollout/generated/git_push.sh new file mode 100644 index 0000000000..a1ff4c9bcb --- /dev/null +++ b/ui/src/models/rollout/generated/git_push.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="GIT_USER_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' diff --git a/ui/src/models/rollout/generated/index.ts b/ui/src/models/rollout/generated/index.ts new file mode 100644 index 0000000000..2dc292c366 --- /dev/null +++ b/ui/src/models/rollout/generated/index.ts @@ -0,0 +1,15 @@ +// tslint:disable +/** + * pkg/apiclient/rollout/rollout.proto + * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) + * + * OpenAPI spec version: version not set + * + * + * NOTE: This file is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the file manually. + */ + +export * from "./api"; +export * from "./configuration"; diff --git a/ui/src/models/rollout/rollout.tsx b/ui/src/models/rollout/rollout.tsx new file mode 100644 index 0000000000..4136829d34 --- /dev/null +++ b/ui/src/models/rollout/rollout.tsx @@ -0,0 +1,3 @@ +import * as Generated from './generated'; + +export type Rollout = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout; diff --git a/ui/yarn.lock b/ui/yarn.lock index 0b966817dc..83366c6c17 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1182,11 +1182,44 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@fortawesome/fontawesome-common-types@^0.2.34": + version "0.2.34" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.34.tgz#0a8c348bb23b7b760030f5b1d912e582be4ec915" + integrity sha512-XcIn3iYbTEzGIxD0/dY5+4f019jIcEIWBiHc3KrmK/ROahwxmZ/s+tdj97p/5K0klz4zZUiMfUlYP0ajhSJjmA== + "@fortawesome/fontawesome-free@^5.15.2": version "5.15.2" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.2.tgz#218cd7276ab4f9ab57cc3d2efa2697e6a579f25d" integrity sha512-7l/AX41m609L/EXI9EKH3Vs3v0iA8tKlIOGtw+kgcoanI7p+e4I4GYLqW3UXWiTnjSFymKSmTTPKYrivzbxxqA== +"@fortawesome/fontawesome-svg-core@^1.2.34": + version "1.2.34" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.34.tgz#1d1a7c92537cbc2b8a83eef6b6d824b4b5b46b26" + integrity sha512-0KNN0nc5eIzaJxlv43QcDmTkDY1CqeN6J7OCGSs+fwGPdtv0yOQqRjieopBCmw+yd7uD3N2HeNL3Zm5isDleLg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/free-regular-svg-icons@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.2.tgz#61eeb8c206e792c530eaa58279cc32c55332fe8f" + integrity sha512-Uv5NQCYjyisNVTu/1Xjs+z8vwQjbfT6hiqYvQNfF0n8qdgfWLM581bAfVMQ3BCs1SPy+eEUKNcGkK4n0FihFHg== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/free-solid-svg-icons@^5.15.2": + version "5.15.2" + resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.2.tgz#25bb035de57cf85aee8072965732368ccc8e8943" + integrity sha512-ZfCU+QjaFsdNZmOGmfqEWhzI3JOe37x5dF4kz9GeXvKn/sTxhqMtZ7mh3lBf76SvcYY5/GKFuyG7p1r4iWMQqw== + dependencies: + "@fortawesome/fontawesome-common-types" "^0.2.34" + +"@fortawesome/react-fontawesome@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@fortawesome/react-fontawesome/-/react-fontawesome-0.1.14.tgz#bf28875c3935b69ce2dc620e1060b217a47f64ca" + integrity sha512-4wqNb0gRLVaBm/h+lGe8UfPPivcbuJ6ecI4hIgW0LjI7kzpYB9FkN0L9apbVzg+lsBdcTf0AlBtODjcSX5mmKA== + dependencies: + prop-types "^15.7.2" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -4323,6 +4356,13 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.11: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -5717,6 +5757,13 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -6162,7 +6209,7 @@ is-root@2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== -is-stream@^1.1.0: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= @@ -7488,6 +7535,14 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-fetch@^1.0.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + integrity sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ== + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" @@ -8128,6 +8183,14 @@ pnp-webpack-plugin@1.6.4: dependencies: ts-pnp "^1.1.6" +portable-fetch@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/portable-fetch/-/portable-fetch-3.0.0.tgz#3cbf4aa6dbc5a5734b41c0419c9273313bfd9ad8" + integrity sha1-PL9KptvFpXNLQcBBnJJzMTv9mtg= + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + portfinder@^1.0.26: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" @@ -9684,6 +9747,13 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" +rxjs@^6.6.6: + version "6.6.6" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.6.tgz#14d8417aa5a07c5e633995b525e1e3c0dec03b70" + integrity sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg== + dependencies: + tslib "^1.9.0" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -9701,7 +9771,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -11370,6 +11440,11 @@ whatwg-encoding@^1.0.5: dependencies: iconv-lite "0.4.24" +whatwg-fetch@>=0.10.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c" + integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA== + whatwg-fetch@^3.4.1: version "3.6.1" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.1.tgz#93bc4005af6c2cc30ba3e42ec3125947c8f54ed3" From cd36f6076d8887236f0791d88f697539492287db Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Thu, 4 Mar 2021 17:10:59 -0800 Subject: [PATCH 006/112] Fix streaming. More UI progress Signed-off-by: Remington Breeze --- pkg/apiclient/rollout/rollout.pb.go | 279 ++++++++++++++++-- pkg/apiclient/rollout/rollout.pb.gw.go | 62 ++++ pkg/apiclient/rollout/rollout.proto | 8 + pkg/apiclient/rollout/rollout.swagger.json | 24 ++ .../cmd/list/list_rollouts.go | 26 +- server/server.go | 19 +- ui/package.json | 5 + ui/src/app/App.scss | 10 + ui/src/app/App.tsx | 31 +- .../action-button/action-button.scss | 17 ++ .../action-button/action-button.tsx | 18 ++ ui/src/app/components/header/header.scss | 22 +- ui/src/app/components/header/header.tsx | 29 +- .../app/components/info-item/info-item.scss | 19 ++ ui/src/app/components/info-item/info-item.tsx | 24 ++ .../rollout-actions/rollout-actions.tsx | 41 +++ ui/src/app/components/rollout/rollout.scss | 21 ++ ui/src/app/components/rollout/rollout.tsx | 30 ++ .../rollouts-list/rollouts-list.scss | 67 ++++- .../rollouts-list/rollouts-list.tsx | 63 ++-- .../components/status-icon/status-icon.scss | 17 ++ .../components/status-icon/status-icon.tsx | 71 +++++ ui/src/app/index.html | 19 +- ui/src/app/shared/services/rollout.ts | 16 +- ui/src/app/shared/styles/colors.scss | 31 +- ui/src/app/shared/utils/utils.tsx | 37 +++ ui/src/app/shared/utils/watch.ts | 109 +++++-- ui/src/app/webpack.config.js | 1 + .../assets/images/argo-icon-color-square.png | Bin 0 -> 102248 bytes ui/src/models/rollout/generated/api.ts | 70 +++++ .../models/rollout/generated/api_test.spec.ts | 3 + ui/src/models/rollout/rollout.tsx | 1 + ui/yarn.lock | 162 +++++++++- 33 files changed, 1208 insertions(+), 144 deletions(-) create mode 100644 ui/src/app/components/action-button/action-button.scss create mode 100644 ui/src/app/components/action-button/action-button.tsx create mode 100644 ui/src/app/components/info-item/info-item.scss create mode 100644 ui/src/app/components/info-item/info-item.tsx create mode 100644 ui/src/app/components/rollout-actions/rollout-actions.tsx create mode 100644 ui/src/app/components/rollout/rollout.scss create mode 100644 ui/src/app/components/rollout/rollout.tsx create mode 100644 ui/src/app/components/status-icon/status-icon.scss create mode 100644 ui/src/app/components/status-icon/status-icon.tsx create mode 100644 ui/src/app/shared/utils/utils.tsx create mode 100644 ui/src/assets/images/argo-icon-color-square.png diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index 799fe6eed3..3e0c01df57 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -131,9 +131,57 @@ func (m *RolloutWatchEvent) GetRollout() *v1alpha1.Rollout { return nil } +type NamespaceInfo struct { + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NamespaceInfo) Reset() { *m = NamespaceInfo{} } +func (m *NamespaceInfo) String() string { return proto.CompactTextString(m) } +func (*NamespaceInfo) ProtoMessage() {} +func (*NamespaceInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_99101d942e8912a7, []int{2} +} +func (m *NamespaceInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NamespaceInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_NamespaceInfo.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *NamespaceInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_NamespaceInfo.Merge(m, src) +} +func (m *NamespaceInfo) XXX_Size() int { + return m.Size() +} +func (m *NamespaceInfo) XXX_DiscardUnknown() { + xxx_messageInfo_NamespaceInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_NamespaceInfo proto.InternalMessageInfo + +func (m *NamespaceInfo) GetNamespace() string { + if m != nil { + return m.Namespace + } + return "" +} + func init() { proto.RegisterType((*RolloutQuery)(nil), "rollout.RolloutQuery") proto.RegisterType((*RolloutWatchEvent)(nil), "rollout.RolloutWatchEvent") + proto.RegisterType((*NamespaceInfo)(nil), "rollout.NamespaceInfo") } func init() { @@ -141,34 +189,37 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 424 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0x41, 0xab, 0x13, 0x31, - 0x10, 0xc7, 0x49, 0x29, 0x8a, 0xb1, 0x8a, 0x06, 0x2c, 0xcb, 0x5a, 0x96, 0xb2, 0x7a, 0xe8, 0xc5, - 0xa4, 0xad, 0x07, 0xef, 0xc2, 0x22, 0x85, 0x5e, 0xac, 0x07, 0xc1, 0x4b, 0x49, 0xd7, 0x74, 0xbb, - 0x76, 0x9b, 0x84, 0xdd, 0xec, 0x4a, 0x11, 0x2f, 0x9e, 0x04, 0xc1, 0x8b, 0x17, 0xbf, 0x86, 0xdf, - 0xc2, 0xa3, 0xe0, 0x17, 0x78, 0x94, 0xf7, 0x41, 0x1e, 0xc9, 0x26, 0xdb, 0xbe, 0x42, 0xe1, 0x1d, - 0xca, 0x3b, 0xed, 0x64, 0x76, 0x32, 0xf3, 0xfb, 0xcf, 0x4c, 0xe0, 0x33, 0xb9, 0x4e, 0x08, 0x95, - 0x69, 0x9c, 0xa5, 0x8c, 0x2b, 0x92, 0x8b, 0x2c, 0x13, 0x65, 0xf3, 0xc5, 0x32, 0x17, 0x4a, 0xa0, - 0xbb, 0xf6, 0xe8, 0xf7, 0x12, 0x21, 0x92, 0x8c, 0xe9, 0x0b, 0x84, 0x72, 0x2e, 0x14, 0x55, 0xa9, - 0xe0, 0x45, 0x1d, 0xe6, 0x4f, 0x93, 0x54, 0xad, 0xca, 0x05, 0x8e, 0xc5, 0x86, 0xd0, 0x3c, 0x11, - 0x32, 0x17, 0x9f, 0x8c, 0xf1, 0xc2, 0xde, 0x2f, 0x88, 0xad, 0x56, 0x90, 0xc6, 0x53, 0x8d, 0x68, - 0x26, 0x57, 0x74, 0x44, 0x12, 0xc6, 0x59, 0x4e, 0x15, 0xfb, 0x68, 0xb3, 0x3d, 0xb5, 0xb5, 0xcc, - 0x69, 0x51, 0x2e, 0x09, 0xdb, 0x48, 0xb5, 0xad, 0x7f, 0x86, 0x21, 0xec, 0xcc, 0xea, 0x0c, 0x6f, - 0x4b, 0x96, 0x6f, 0x11, 0x82, 0x6d, 0x4e, 0x37, 0xcc, 0x03, 0x7d, 0x30, 0xb8, 0x37, 0x33, 0x76, - 0xf8, 0x1d, 0xc0, 0xc7, 0x36, 0xe8, 0x3d, 0x55, 0xf1, 0x2a, 0xaa, 0x18, 0x57, 0x3a, 0x52, 0x6d, - 0x65, 0x13, 0xa9, 0x6d, 0x34, 0x87, 0x4e, 0xa1, 0xd7, 0xea, 0x83, 0xc1, 0xfd, 0x71, 0x84, 0xf7, - 0x52, 0xb0, 0x93, 0x62, 0x8c, 0xb9, 0x03, 0xc7, 0x72, 0x9d, 0x60, 0x2d, 0x05, 0x37, 0x1e, 0x27, - 0x05, 0xdb, 0xaa, 0x33, 0x97, 0x75, 0xfc, 0xa7, 0x0d, 0x1f, 0x5a, 0xe7, 0x3b, 0x96, 0x57, 0x69, - 0xcc, 0xd0, 0x4f, 0x00, 0xe1, 0x1b, 0xa6, 0xac, 0x17, 0x3d, 0x71, 0x69, 0xf0, 0xa1, 0x2e, 0x7f, - 0x72, 0x16, 0x90, 0x09, 0x5f, 0x8a, 0x30, 0xf8, 0xf6, 0xff, 0xf2, 0x57, 0xcb, 0x43, 0x5d, 0x33, - 0xbd, 0x6a, 0xd4, 0xcc, 0xfa, 0x8b, 0xee, 0xd6, 0x57, 0xf4, 0x1b, 0xc0, 0x8e, 0xe9, 0xd3, 0xed, - 0x21, 0x3d, 0x37, 0x48, 0x01, 0xea, 0x1d, 0x23, 0x7d, 0xd6, 0x1c, 0x16, 0x6c, 0x08, 0xd0, 0x0f, - 0x00, 0x3b, 0xd3, 0xb4, 0x70, 0xcd, 0x2a, 0x50, 0x17, 0xd7, 0xcb, 0x81, 0xdd, 0x72, 0xe0, 0x48, - 0x2f, 0xc7, 0x99, 0xd8, 0x74, 0xa9, 0xd0, 0x33, 0x6c, 0x08, 0x3d, 0x3a, 0x62, 0x2b, 0x10, 0x83, - 0x0f, 0x0e, 0xfb, 0x74, 0x9a, 0xc6, 0x3f, 0x6e, 0xe0, 0x7e, 0x0d, 0x4f, 0x4e, 0xa3, 0xa8, 0xb5, - 0x0f, 0xc1, 0xeb, 0xe8, 0xef, 0x2e, 0x00, 0xff, 0x76, 0x01, 0xb8, 0xd8, 0x05, 0xe0, 0xc3, 0xab, - 0x1b, 0xbf, 0xad, 0xeb, 0x2f, 0x79, 0x71, 0xc7, 0x40, 0xbd, 0xbc, 0x0a, 0x00, 0x00, 0xff, 0xff, - 0xa3, 0x62, 0x27, 0x72, 0xe9, 0x03, 0x00, 0x00, + // 471 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xcf, 0x6b, 0x13, 0x41, + 0x14, 0xc7, 0x99, 0xe2, 0x0f, 0x3a, 0xa6, 0x62, 0x9f, 0x18, 0x62, 0x0c, 0x4b, 0x59, 0x3d, 0xf4, + 0xd2, 0xd9, 0xa6, 0x1e, 0xbc, 0x0b, 0xa1, 0x14, 0x8a, 0x60, 0x3c, 0x88, 0x5e, 0xca, 0x64, 0x7d, + 0xdd, 0xac, 0xdd, 0xcc, 0x0c, 0x3b, 0x93, 0x48, 0x10, 0x2f, 0x9e, 0x04, 0xc5, 0x8b, 0x17, 0xff, + 0x24, 0x8f, 0x82, 0xff, 0x80, 0x04, 0xff, 0x10, 0x99, 0xd9, 0x99, 0x49, 0x1b, 0x08, 0x78, 0x08, + 0x9e, 0xf2, 0xe6, 0xe5, 0xcd, 0xfb, 0x7e, 0xde, 0x9b, 0x6f, 0x42, 0x1f, 0xaa, 0x8b, 0x22, 0xe3, + 0xaa, 0xcc, 0xab, 0x12, 0x85, 0xc9, 0x6a, 0x59, 0x55, 0x72, 0x1a, 0x3f, 0x99, 0xaa, 0xa5, 0x91, + 0x70, 0xd3, 0x1f, 0xbb, 0xbd, 0x42, 0xca, 0xa2, 0x42, 0x7b, 0x21, 0xe3, 0x42, 0x48, 0xc3, 0x4d, + 0x29, 0x85, 0x6e, 0xca, 0xba, 0xa7, 0x45, 0x69, 0xc6, 0xd3, 0x11, 0xcb, 0xe5, 0x24, 0xe3, 0x75, + 0x21, 0x55, 0x2d, 0xdf, 0xba, 0xe0, 0xc0, 0xdf, 0xd7, 0x99, 0x57, 0xd3, 0x59, 0xcc, 0xcc, 0xfa, + 0xbc, 0x52, 0x63, 0xde, 0xcf, 0x0a, 0x14, 0x58, 0x73, 0x83, 0x6f, 0x7c, 0xb7, 0x07, 0x5e, 0xcb, + 0x9d, 0x46, 0xd3, 0xf3, 0x0c, 0x27, 0xca, 0xcc, 0x9b, 0x2f, 0xd3, 0x94, 0xb6, 0x86, 0x4d, 0x87, + 0xe7, 0x53, 0xac, 0xe7, 0x00, 0xf4, 0x9a, 0xe0, 0x13, 0xec, 0x90, 0x3d, 0xb2, 0xbf, 0x3d, 0x74, + 0x71, 0xfa, 0x89, 0xd0, 0x5d, 0x5f, 0xf4, 0x92, 0x9b, 0x7c, 0x3c, 0x98, 0xa1, 0x30, 0xb6, 0xd2, + 0xcc, 0x55, 0xac, 0xb4, 0x31, 0x9c, 0xd1, 0x30, 0x61, 0x67, 0x6b, 0x8f, 0xec, 0xdf, 0x3a, 0x1a, + 0xb0, 0xe5, 0x28, 0x2c, 0x8c, 0xe2, 0x82, 0xb3, 0x00, 0xce, 0xd4, 0x45, 0xc1, 0xec, 0x28, 0x2c, + 0x66, 0xc2, 0x28, 0xcc, 0xab, 0x0e, 0x43, 0xd7, 0xf4, 0x80, 0xee, 0x3c, 0xe3, 0x13, 0xd4, 0x8a, + 0xe7, 0x78, 0x22, 0xce, 0x25, 0xf4, 0xe8, 0xb6, 0x08, 0x09, 0x8f, 0xb2, 0x4c, 0x1c, 0x7d, 0xb9, + 0x4e, 0x6f, 0xfb, 0x1e, 0x2f, 0xb0, 0x9e, 0x95, 0x39, 0xc2, 0x57, 0x42, 0xe9, 0x31, 0x1a, 0x9f, + 0x85, 0x7b, 0x41, 0x95, 0x5d, 0x5e, 0x43, 0xf7, 0x64, 0x23, 0xdc, 0x96, 0x30, 0x4d, 0x3e, 0xfe, + 0xfa, 0xf3, 0x6d, 0xab, 0x03, 0x6d, 0xf7, 0xd8, 0xb3, 0x7e, 0xb4, 0xc6, 0x7b, 0xcb, 0xf9, 0x01, + 0xbe, 0x13, 0xda, 0x72, 0x6b, 0xfd, 0x7f, 0x48, 0x8f, 0x1c, 0x52, 0x02, 0xbd, 0x55, 0xa4, 0x77, + 0x96, 0xc3, 0x83, 0x1d, 0x12, 0xf8, 0x4c, 0x68, 0xeb, 0xb4, 0xd4, 0x61, 0x59, 0x1a, 0xda, 0xac, + 0xf1, 0x12, 0x0b, 0x5e, 0x62, 0x03, 0xeb, 0xa5, 0x0d, 0xb1, 0x59, 0xa9, 0xb4, 0xe3, 0xd8, 0x00, + 0xee, 0xac, 0xb0, 0x69, 0x40, 0xba, 0x73, 0x79, 0x4f, 0xeb, 0x69, 0xba, 0xab, 0x0b, 0x5c, 0xba, + 0x76, 0xed, 0x6b, 0xe8, 0x66, 0xf6, 0x43, 0x02, 0xaf, 0x68, 0xeb, 0x18, 0x4d, 0x74, 0xd9, 0x5a, + 0x95, 0x76, 0x54, 0xb9, 0xe2, 0xc8, 0xf4, 0xbe, 0x53, 0xb8, 0x0b, 0xbb, 0x41, 0x21, 0xda, 0xf1, + 0xe9, 0xe0, 0xc7, 0x22, 0x21, 0x3f, 0x17, 0x09, 0xf9, 0xbd, 0x48, 0xc8, 0xeb, 0x27, 0xff, 0xfc, + 0x2b, 0xbf, 0xfa, 0x9f, 0x32, 0xba, 0xe1, 0x48, 0x1e, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, + 0x84, 0x44, 0xc4, 0x73, 0x04, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -188,6 +239,7 @@ type RolloutServiceClient interface { WatchRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (RolloutService_WatchRolloutClient, error) ListRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*v1alpha1.RolloutList, error) WatchRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (RolloutService_WatchRolloutsClient, error) + GetNamespace(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*NamespaceInfo, error) } type rolloutServiceClient struct { @@ -280,6 +332,15 @@ func (x *rolloutServiceWatchRolloutsClient) Recv() (*RolloutWatchEvent, error) { return m, nil } +func (c *rolloutServiceClient) GetNamespace(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*NamespaceInfo, error) { + out := new(NamespaceInfo) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/GetNamespace", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // Get returns a rollout @@ -287,6 +348,7 @@ type RolloutServiceServer interface { WatchRollout(*RolloutQuery, RolloutService_WatchRolloutServer) error ListRollouts(context.Context, *empty.Empty) (*v1alpha1.RolloutList, error) WatchRollouts(*empty.Empty, RolloutService_WatchRolloutsServer) error + GetNamespace(context.Context, *empty.Empty) (*NamespaceInfo, error) } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. @@ -305,6 +367,9 @@ func (*UnimplementedRolloutServiceServer) ListRollouts(ctx context.Context, req func (*UnimplementedRolloutServiceServer) WatchRollouts(req *empty.Empty, srv RolloutService_WatchRolloutsServer) error { return status.Errorf(codes.Unimplemented, "method WatchRollouts not implemented") } +func (*UnimplementedRolloutServiceServer) GetNamespace(ctx context.Context, req *empty.Empty) (*NamespaceInfo, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetNamespace not implemented") +} func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) @@ -388,6 +453,24 @@ func (x *rolloutServiceWatchRolloutsServer) Send(m *RolloutWatchEvent) error { return x.ServerStream.SendMsg(m) } +func _RolloutService_GetNamespace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).GetNamespace(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/GetNamespace", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).GetNamespace(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), @@ -400,6 +483,10 @@ var _RolloutService_serviceDesc = grpc.ServiceDesc{ MethodName: "ListRollouts", Handler: _RolloutService_ListRollouts_Handler, }, + { + MethodName: "GetNamespace", + Handler: _RolloutService_GetNamespace_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -496,6 +583,40 @@ func (m *RolloutWatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *NamespaceInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NamespaceInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NamespaceInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Namespace) > 0 { + i -= len(m.Namespace) + copy(dAtA[i:], m.Namespace) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Namespace))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintRollout(dAtA []byte, offset int, v uint64) int { offset -= sovRollout(v) base := offset @@ -543,6 +664,22 @@ func (m *RolloutWatchEvent) Size() (n int) { return n } +func (m *NamespaceInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Namespace) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func sovRollout(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -757,6 +894,92 @@ func (m *RolloutWatchEvent) Unmarshal(dAtA []byte) error { } return nil } +func (m *NamespaceInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NamespaceInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NamespaceInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRollout(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipRollout(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index 38f5bf999b..a92dda8ab3 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -156,6 +156,24 @@ func request_RolloutService_WatchRollouts_0(ctx context.Context, marshaler runti } +func request_RolloutService_GetNamespace_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetNamespace(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_GetNamespace_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetNamespace(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". // UnaryRPC :call RolloutServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -215,6 +233,26 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve return }) + mux.Handle("GET", pattern_RolloutService_GetNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_GetNamespace_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_GetNamespace_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -336,6 +374,26 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_GetNamespace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_GetNamespace_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_GetNamespace_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -347,6 +405,8 @@ var ( pattern_RolloutService_ListRollouts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "rollouts"}, "", runtime.AssumeColonVerbOpt(true))) pattern_RolloutService_WatchRollouts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rollouts", "watch"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_GetNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -357,4 +417,6 @@ var ( forward_RolloutService_ListRollouts_0 = runtime.ForwardResponseMessage forward_RolloutService_WatchRollouts_0 = runtime.ForwardResponseStream + + forward_RolloutService_GetNamespace_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index 6542ddae37..6e3f6b52fd 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -16,6 +16,10 @@ message RolloutWatchEvent { github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout rollout = 2; } +message NamespaceInfo { + string namespace = 1; +} + service RolloutService { // Get returns a rollout rpc GetRollout(RolloutQuery) returns (github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo) { @@ -33,4 +37,8 @@ service RolloutService { rpc WatchRollouts(google.protobuf.Empty) returns (stream RolloutWatchEvent) { option (google.api.http).get = "/api/v1/rollouts/watch"; } + + rpc GetNamespace(google.protobuf.Empty) returns (NamespaceInfo) { + option (google.api.http).get = "/api/v1/namespace"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 1e32f76951..f582c094c0 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -11,6 +11,22 @@ "application/json" ], "paths": { + "/api/v1/namespace": { + "get": { + "operationId": "GetNamespace", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/rollout.NamespaceInfo" + } + } + }, + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/rollout/watch/{name}": { "get": { "operationId": "WatchRollout", @@ -3703,6 +3719,14 @@ "description": "+protobuf=true\n+protobuf.options.(gogoproto.goproto_stringer)=false\n+k8s:openapi-gen=true", "title": "IntOrString is a type that can hold an int32 or a string. When used in\nJSON or YAML marshalling and unmarshalling, it produces or consumes the\ninner type. This allows you to have, for example, a JSON field that can\naccept a name or number.\nTODO: Rename to Int32OrString" }, + "rollout.NamespaceInfo": { + "type": "object", + "properties": { + "namespace": { + "type": "string" + } + } + }, "rollout.RolloutWatchEvent": { "type": "object", "properties": { diff --git a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go index b2dda554dc..4f896d2e05 100644 --- a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go +++ b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go @@ -100,7 +100,7 @@ func (o *ListOptions) PrintRolloutTable(roList *v1alpha1.RolloutList) error { return nil } -func SubscribeRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList, opts metav1.ListOptions, flush func() error, callback func(r *v1alpha1.Rollout)) error { +func SubscribeRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList, opts metav1.ListOptions, flush func() error, c chan *v1alpha1.Rollout) error { watchIf, err := rolloutIf.Watch(ctx, opts) if err != nil { return err @@ -131,8 +131,8 @@ L: break L } if ro == nil { + log.Warn("error on rollout watch. Attempting to re-establish") // if we get here, it means an error on the watch. try to re-establish the watch - log.Info("Error on rollout watch") watchIf.Stop() newWatchIf, err := rolloutIf.Watch(ctx, opts) if err != nil { @@ -152,7 +152,7 @@ L: opts.ResourceVersion = ro.ObjectMeta.ResourceVersion roLine := newRolloutInfo(*ro) if prevLine, ok := prevLines[roLine.key()]; !ok || prevLine != roLine { - callback(ro) + c <- ro prevLines[roLine.key()] = roLine } } @@ -167,8 +167,20 @@ func (o *ListOptions) PrintRolloutUpdates(ctx context.Context, rolloutIf argopro w := tabwriter.NewWriter(o.Out, 0, 0, 2, ' ', 0) - return SubscribeRolloutUpdates(ctx, rolloutIf, roList, opts, w.Flush, func(r *v1alpha1.Rollout) { - roLine := newRolloutInfo(*r) - fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) - }) + stream := make(chan *v1alpha1.Rollout, 1000) + err := SubscribeRolloutUpdates(ctx, rolloutIf, roList, opts, w.Flush, stream) + if (err != nil) { + return err + } + + for { + select { + case r := <-stream: + roLine := newRolloutInfo(*r) + fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) + case <-ctx.Done(): + return nil + } + } + } diff --git a/server/server.go b/server/server.go index abf27eb61b..a99ca7986c 100644 --- a/server/server.go +++ b/server/server.go @@ -201,7 +201,6 @@ func (s* ArgoRolloutsServer) ListRollouts(ctx context.Context, e *empty.Empty) ( // WatchRollouts returns a stream of all rollouts func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutService_WatchRolloutsServer) error { send := func(r* v1alpha1.Rollout) { - log.Info("sent! A"); err := ws.Send(&rollout.RolloutWatchEvent{ Type: "Updated", Rollout: r, @@ -219,7 +218,6 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer } for i := range(rolloutList.Items) { - log.Info("sent! B"); err := ws.Send(&rollout.RolloutWatchEvent{ Type: "Added", Rollout: &rolloutList.Items[i], @@ -233,9 +231,22 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer return nil } - err = list.SubscribeRolloutUpdates(ctx, rolloutIf, rolloutList, v1.ListOptions{}, flush, send) + stream := make(chan *v1alpha1.Rollout, 1000) + err = list.SubscribeRolloutUpdates(ctx, rolloutIf, rolloutList, v1.ListOptions{}, flush, stream) if err != nil { return err } - return nil + + for { + select { + case r := <-stream: + send(r) + case <-ws.Context().Done(): + return nil + } + } +} + +func (s* ArgoRolloutsServer) GetNamespace(ctx context.Context, e* empty.Empty) (*rollout.NamespaceInfo, error) { + return &rollout.NamespaceInfo{ Namespace: s.Options.Namespace }, nil } \ No newline at end of file diff --git a/ui/package.json b/ui/package.json index a858ce6a0c..b1e93bac5c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -15,10 +15,15 @@ "@types/node": "^12.0.0", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", + "@types/react-helmet": "^6.1.0", + "@types/react-router-dom": "^5.1.7", + "moment": "^2.29.1", "portable-fetch": "^3.0.0", "react": "^17.0.1", "react-dom": "^17.0.1", + "react-helmet": "^6.1.0", "react-hot-loader": "^3.1.3", + "react-router-dom": "^5.2.0", "react-scripts": "4.0.3", "rxjs": "^6.6.6", "typescript": "^4.1.2", diff --git a/ui/src/app/App.scss b/ui/src/app/App.scss index c58e12ab05..aeb9d114a3 100644 --- a/ui/src/app/App.scss +++ b/ui/src/app/App.scss @@ -5,6 +5,16 @@ html { padding: 0; margin: 0; background-color: $midnight-sky; + button, + form, + input, + textarea { + appearance: none; + -webkit-appearance: none; + color: inherit; + font: inherit; + margin: 0; + } } .rollouts { diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx index db9e38c39a..7beb3e88e7 100644 --- a/ui/src/app/App.tsx +++ b/ui/src/app/App.tsx @@ -1,13 +1,38 @@ import * as React from 'react'; + import './App.scss'; import {Header} from './components/header/header'; import {RolloutsList} from './components/rollouts-list/rollouts-list'; +import {Redirect, Route, Router, Switch} from 'react-router-dom'; +import {Rollout} from './components/rollout/rollout'; +import {createBrowserHistory} from 'history'; -const App = () => ( +const bases = document.getElementsByTagName('base'); +const base = bases.length > 0 ? bases[0].getAttribute('href') || '/' : '/'; +export const history = createBrowserHistory({basename: base}); + +const Page = (props: {path: string; component: React.ReactNode; exact?: boolean}) => (
-
- + + +
+ {props.component} + +
); +const App = () => ( + + + + + } /> + } /> + + + + +); + export default App; diff --git a/ui/src/app/components/action-button/action-button.scss b/ui/src/app/components/action-button/action-button.scss new file mode 100644 index 0000000000..faa1278bb6 --- /dev/null +++ b/ui/src/app/components/action-button/action-button.scss @@ -0,0 +1,17 @@ +@import '../../shared/styles/colors.scss'; + +.action-button { + border-radius: 20px; + border: 1px solid $silver-lining; + padding: 10px 14px; + background-color: $fog; + color: $shine; + cursor: pointer; + margin-right: 5px; + + &:hover { + background-color: $spray-tan; + color: white; + border-color: $sherbert; + } +} diff --git a/ui/src/app/components/action-button/action-button.tsx b/ui/src/app/components/action-button/action-button.tsx new file mode 100644 index 0000000000..313ddc59c9 --- /dev/null +++ b/ui/src/app/components/action-button/action-button.tsx @@ -0,0 +1,18 @@ +import * as React from 'react'; + +import {InfoLabelProps} from '../info-item/info-item'; +import './action-button.scss'; + +export interface ButtonAction extends InfoLabelProps { + action: () => any; +} + +export const ActionButton = (props: {action: () => any} & InfoLabelProps) => { + const {label, action, icon} = props; + return ( + + ); +}; diff --git a/ui/src/app/components/header/header.scss b/ui/src/app/components/header/header.scss index f1a4ae45ab..f919463ec5 100644 --- a/ui/src/app/components/header/header.scss +++ b/ui/src/app/components/header/header.scss @@ -8,15 +8,33 @@ padding: 10px 0; margin-bottom: 1em; + &__brand { + color: $shine; + display: flex; + align-items: center; + text-decoration: none; + } + h1 { font-size: 20px; font-weight: 400; margin: 0; } - &__version { + h2 { + font-size: 18px; + color: $sherbert; + margin: 0; + margin-left: 10px; + } + + &__info { margin-left: auto; + display: flex; + align-items: center; + } + &__version { color: $shine; - margin-right: 15px; + margin: 0 15px; } } diff --git a/ui/src/app/components/header/header.tsx b/ui/src/app/components/header/header.tsx index 80a098d263..123790ffe5 100644 --- a/ui/src/app/components/header/header.tsx +++ b/ui/src/app/components/header/header.tsx @@ -1,13 +1,32 @@ import * as React from 'react'; +import {Link, useParams} from 'react-router-dom'; +import {RolloutNamespaceInfo, RolloutServiceApi} from '../../../models/rollout/generated'; +import {useServerData} from '../../shared/utils/utils'; +import {InfoItemRow} from '../info-item/info-item'; import './header.scss'; -export const Logo = () => Argo Logo; +export const Logo = () => Argo Logo; -export const Header = () => ( -
+const Brand = (props: {path?: string}) => ( +

Rollouts

-
v0.1.0
-
+ {props.path &&

/ {props.path}

} + ); + +export const Header = () => { + const getNs = React.useCallback(() => new RolloutServiceApi().getNamespace(), []); + const nsData = useServerData(getNs); + const {name} = useParams<{name: string}>(); + return ( +
+ +
+ +
v0.1.0
+
+
+ ); +}; diff --git a/ui/src/app/components/info-item/info-item.scss b/ui/src/app/components/info-item/info-item.scss new file mode 100644 index 0000000000..a3958b6b88 --- /dev/null +++ b/ui/src/app/components/info-item/info-item.scss @@ -0,0 +1,19 @@ +@import '../../shared/styles/colors.scss'; + +.info-item { + background-color: $fog; + border-radius: 3px; + border: 1px solid $silver-lining; + padding: 3px 5px; + margin-left: auto; + + &--row { + display: flex; + align-items: center; + margin: 0.25em 0; + label { + margin-right: auto; + padding-right: 5px; + } + } +} diff --git a/ui/src/app/components/info-item/info-item.tsx b/ui/src/app/components/info-item/info-item.tsx new file mode 100644 index 0000000000..fc4019d0c9 --- /dev/null +++ b/ui/src/app/components/info-item/info-item.tsx @@ -0,0 +1,24 @@ +import * as React from 'react'; +import './info-item.scss'; + +export interface InfoLabelProps { + label: string; + icon?: JSX.Element; +} + +export const InfoItem = (props: InfoLabelProps) => ( +
+ {props.icon && {props.icon}} + {props.label} +
+); + +export const InfoItemRow = (props: {content: string} & InfoLabelProps) => { + const {label, content, icon} = props; + return ( +
+ + +
+ ); +}; diff --git a/ui/src/app/components/rollout-actions/rollout-actions.tsx b/ui/src/app/components/rollout-actions/rollout-actions.tsx new file mode 100644 index 0000000000..5f36120265 --- /dev/null +++ b/ui/src/app/components/rollout-actions/rollout-actions.tsx @@ -0,0 +1,41 @@ +import {faPlayCircle} from '@fortawesome/free-regular-svg-icons'; +import {faArrowCircleUp, faExclamationCircle, faRedoAlt, faSync} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import * as React from 'react'; +import {ActionButton} from '../action-button/action-button'; + +const Actions = [ + { + label: 'RESTART', + icon: faSync, + action: (): any => null, + }, + { + label: 'RESUME', + icon: faPlayCircle, + action: (): any => null, + }, + { + label: 'RETRY', + icon: faRedoAlt, + action: (): any => null, + }, + { + label: 'ABORT', + icon: faExclamationCircle, + action: (): any => null, + }, + { + label: 'PROMOTE-FULL', + icon: faArrowCircleUp, + action: (): any => null, + }, +]; + +export const RolloutActions = () => ( +
+ {Actions.map((action) => ( + } /> + ))} +
+); diff --git a/ui/src/app/components/rollout/rollout.scss b/ui/src/app/components/rollout/rollout.scss new file mode 100644 index 0000000000..1212d26d8f --- /dev/null +++ b/ui/src/app/components/rollout/rollout.scss @@ -0,0 +1,21 @@ +@import '../../shared/styles/colors.scss'; + +.rollout { + header { + color: $shine; + font-size: 22px; + } + &__toolbar { + box-sizing: border-box; + font-size: 14px; + width: 100%; + border-bottom: 1px solid $silver-lining; + padding: 0 10px; + padding-bottom: 1em; + margin-bottom: 1em; + } + + &__body { + padding: 0 20px; + } +} diff --git a/ui/src/app/components/rollout/rollout.tsx b/ui/src/app/components/rollout/rollout.tsx new file mode 100644 index 0000000000..a7e11728eb --- /dev/null +++ b/ui/src/app/components/rollout/rollout.tsx @@ -0,0 +1,30 @@ +import * as React from 'react'; +import {useParams} from 'react-router-dom'; +import {Helmet} from 'react-helmet'; + +import './rollout.scss'; +import {RolloutActions} from '../rollout-actions/rollout-actions'; +import {useServerData} from '../../shared/utils/utils'; +import {RolloutServiceApi} from '../../../models/rollout/generated'; +import {RolloutStatus, statusIcon} from '../status-icon/status-icon'; + +export const Rollout = () => { + const {name} = useParams<{name: string}>(); + const getRollout = React.useCallback(() => new RolloutServiceApi().getRollout(name), [name]); + const rollout = useServerData(getRollout); + return ( +
+ + {name} / Argo Rollouts + +
+ +
+
+
+ {name} {statusIcon(rollout.status as RolloutStatus)} +
+
+
+ ); +}; diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss index 16571b8b0a..a9fe154f80 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.scss +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -1,18 +1,67 @@ @import '../../shared/styles/colors.scss'; +.pods { + margin-top: 10px; + border: 1px solid $silver-lining; + display: flex; + align-items: center; + border-radius: 3px; + background-color: $space; + padding: 7px; + .pod { + margin: 3px; + } +} + +.pod { + $size: 25px; + width: $size; + height: $size; + line-height: $size; + text-align: center; + border: 1px solid $silver-lining; + background-color: $fog; + color: $shine; + border-radius: 3px; + cursor: pointer; + &--available { + background-color: $forest; + color: $lime; + border: 1px solid $leaf; + &:hover { + border-color: $lime; + } + } + &--errored { + background-color: $dirt; + color: $coral; + border: 1px solid $clay; + &:hover { + border-color: $coral; + } + } +} + .rollouts-list { display: flex; padding: 20px; &__widget { + text-decoration: none; border: 1px solid $silver-lining; border-radius: 5px; padding: 10px; - box-shadow: 1px 0px 3px 0px $space; - color: $shine; + box-shadow: 1px 0px 4px 1px $space; + color: $dull-shine; font-size: 14px; margin-right: 20px; + &:hover { + border-color: $spray-tan; + } header { + color: $shine; + display: flex; + align-items: center; font-weight: 500; font-size: 18px; border-bottom: 1px solid $silver-lining; @@ -20,18 +69,14 @@ margin-bottom: 0.5em; } - &__item { + &__body { width: 300px; + } + + &__actions { display: flex; - margin: 0.25em 0; align-items: center; - &__content { - background-color: $fog; - border-radius: 3px; - border: 1px solid $silver-lining; - padding: 3px 5px; - margin-left: auto; - } + margin-top: 1em; } } } diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx index 2a59367af6..6a38d87acb 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.tsx +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -1,10 +1,14 @@ +import {faCheck, faClock, faDove, faHistory, faPalette, faPlayCircle, faSync, faTimes} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; +import {Link} from 'react-router-dom'; import {Rollout} from '../../../models/rollout/rollout'; -import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; -import {faDove, faPalette} from '@fortawesome/free-solid-svg-icons'; - -import './rollouts-list.scss'; import {useWatchRollouts} from '../../shared/services/rollout'; +import {formatTimestamp, latestCondition} from '../../shared/utils/utils'; +import {ActionButton} from '../action-button/action-button'; +import {InfoItemRow} from '../info-item/info-item'; +import {conditionIcon} from '../status-icon/status-icon'; +import './rollouts-list.scss'; export const RolloutsList = () => { const rollouts = useWatchRollouts(); @@ -21,25 +25,50 @@ export const RolloutWidget = (props: {rollout: Rollout}) => { const {rollout} = props; const strategy = rollout.spec?.strategy?.blueGreen ? 'BlueGreen' : 'Canary'; return ( -
-
{rollout.metadata?.name}
+ +
- - } /> + } /> + } /> + } />
-
+
+ +
+
+ null} icon={} /> + null} icon={} /> +
+ ); }; -const WidgetItem = (props: {label: string; content: string; icon?: JSX.Element}) => { - const {label, content, icon} = props; +const Pods = () => { + const pods = Array(3); + pods.fill({status: true}); + pods.push({status: false}); + pods.push({status: false}); return ( -
- -
- {icon && {icon}} - {content} -
+
+ {pods.map((pod, i) => ( + + ))}
); }; + +const Pod = (props: {status: boolean}) => ( +
+ +
+); + +const WidgetHeader = (props: {rollout: Rollout}) => { + const {rollout} = props; + return ( +
+ {rollout.metadata?.name} + {conditionIcon(latestCondition(rollout.status?.conditions || []))} +
+ ); +}; diff --git a/ui/src/app/components/status-icon/status-icon.scss b/ui/src/app/components/status-icon/status-icon.scss new file mode 100644 index 0000000000..9eb2658a59 --- /dev/null +++ b/ui/src/app/components/status-icon/status-icon.scss @@ -0,0 +1,17 @@ +@import '../../shared/styles/colors.scss'; + +.status-icon, +.condition-icon { + &--progressing { + color: $sky; + } + &--healthy { + color: $lime; + } + &--degraded { + color: $coral; + } + &--degraded { + color: $peach; + } +} diff --git a/ui/src/app/components/status-icon/status-icon.tsx b/ui/src/app/components/status-icon/status-icon.tsx new file mode 100644 index 0000000000..4f2728dc9b --- /dev/null +++ b/ui/src/app/components/status-icon/status-icon.tsx @@ -0,0 +1,71 @@ +import * as React from 'react'; + +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {faCheckCircle, faPauseCircle, faQuestionCircle, faTimesCircle} from '@fortawesome/free-regular-svg-icons'; +import {RolloutCondition} from '../../../models/rollout/rollout'; + +import './status-icon.scss'; + +export const conditionIcon = (condition: RolloutCondition): JSX.Element => { + let icon, className; + let spin = false; + switch (condition.type) { + case 'Progressing': { + icon = faCircleNotch; + className = 'progressing'; + spin = true; + break; + } + case 'Available': { + icon = faCheckCircle; + className = 'healthy'; + break; + } + default: { + icon = faQuestionCircle; + className = 'unknown'; + } + } + return ; +}; + +export enum RolloutStatus { + Progressing = 'Progressing', + Degraded = 'Degraded', + Paused = 'Paused', + Healthy = 'Healthy', +} + +export const statusIcon = (status: RolloutStatus): JSX.Element => { + let icon, className; + let spin = false; + switch (status) { + case 'Progressing': { + icon = faCircleNotch; + className = 'progressing'; + spin = true; + break; + } + case 'Healthy': { + icon = faCheckCircle; + className = 'healthy'; + break; + } + case 'Paused': { + icon = faPauseCircle; + className = 'paused'; + break; + } + case 'Degraded': { + icon = faTimesCircle; + className = 'degraded'; + break; + } + default: { + icon = faQuestionCircle; + className = 'unknown'; + } + } + return ; +}; diff --git a/ui/src/app/index.html b/ui/src/app/index.html index 9acb3e1c82..92ddb91acd 100644 --- a/ui/src/app/index.html +++ b/ui/src/app/index.html @@ -1,12 +1,13 @@ - - - - Argo Rollouts - - - -
- + + + + + Argo Rollouts + + + +
+ diff --git a/ui/src/app/shared/services/rollout.ts b/ui/src/app/shared/services/rollout.ts index a0e7b68e0d..50e5cd3e20 100644 --- a/ui/src/app/shared/services/rollout.ts +++ b/ui/src/app/shared/services/rollout.ts @@ -1,15 +1,11 @@ import {RolloutRolloutWatchEvent, RolloutServiceApiFetchParamCreator} from '../../../models/rollout/generated'; -import {useWatch, watchFromUrl} from '../utils/watch'; +import {useWatch} from '../utils/watch'; import {Rollout} from '../../../models/rollout/rollout'; +import * as React from 'react'; -export const useWatchRollouts = (init?: Rollout[]) => { +export const useWatchRollouts = (init?: Rollout[]): Rollout[] => { + const findRollout = React.useCallback((rollout: Rollout, change: RolloutRolloutWatchEvent) => rollout.metadata.name === change.rollout.metadata.name, []); + const getRollout = React.useCallback((c) => c.rollout, []); const streamUrl = RolloutServiceApiFetchParamCreator().watchRollouts().url; - return useWatch(() => - watchFromUrl( - streamUrl, - (rollout, change) => rollout.metadata.name === change.rollout.metadata.name, - (change) => change.rollout, - init - ) - ); + return useWatch(streamUrl, findRollout, getRollout, init); }; diff --git a/ui/src/app/shared/styles/colors.scss b/ui/src/app/shared/styles/colors.scss index 822182da3c..085373cebf 100644 --- a/ui/src/app/shared/styles/colors.scss +++ b/ui/src/app/shared/styles/colors.scss @@ -46,9 +46,28 @@ $argo-cancelled-color: $argo-color-gray-5; $argo-init-color: $argo-color-gray-5; // Dark Mode -$midnight-sky: #10151a; -$space: #080c0f; -$slate: #181e26; -$shine: #d6dee7; -$silver-lining: #30363d; -$fog: #21262d; +$midnight-sky: #0e0e14; +$space: #09090f; +$slate: #191826; +$shine: #dad6e7; +$dull-shine: #abb2b9; +$silver-lining: #30303d; +$fog: #22212d; +$glow: #434355; + +// Highlights +$spray-tan: #8b4329; +$sherbert: #f07548; +$peach: #fd8a5f; + +// Statuses +$lime: #3eb74f; +$leaf: #246b2d; +$forest: #12221e; + +$sky: #58a6fe; +$sea: #3a5e88; + +$coral: #f85149; +$clay: #9e3d38; +$dirt: #22141a; diff --git a/ui/src/app/shared/utils/utils.tsx b/ui/src/app/shared/utils/utils.tsx new file mode 100644 index 0000000000..9be561bb1b --- /dev/null +++ b/ui/src/app/shared/utils/utils.tsx @@ -0,0 +1,37 @@ +import * as React from 'react'; +import {RolloutCondition} from '../../../models/rollout/rollout'; +import * as moment from 'moment'; + +export function useServerData(getData: () => Promise) { + const [data, setData] = React.useState({} as T); + React.useEffect(() => { + const fx = async () => { + const data = await getData(); + setData(data); + }; + fx(); + }, [getData]); + return data as T; +} + +export function latestCondition(conditions: RolloutCondition[]): RolloutCondition { + if (conditions.length === 0) return {} as RolloutCondition; + let latest = conditions[0]; + conditions.forEach((condition) => { + const curTimestamp = moment(condition.lastUpdateTime as string); + const latestTimestamp = moment(latest.lastUpdateTime as string); + if (latestTimestamp.isSameOrBefore(curTimestamp)) { + latest = condition; + } + }); + return latest; +} + +export function formatTimestamp(ts: string): string { + const inputFormat = 'YYYY-MM-DDTHH:mm:ss[Z]'; + const m = moment(ts, inputFormat); + if (!ts || !m.isValid()) { + return 'Never'; + } + return m.format('MMM D YYYY [at] hh:mm:ss'); +} diff --git a/ui/src/app/shared/utils/watch.ts b/ui/src/app/shared/utils/watch.ts index b162a53ee0..760e88d349 100644 --- a/ui/src/app/shared/utils/watch.ts +++ b/ui/src/app/shared/utils/watch.ts @@ -1,6 +1,6 @@ import * as React from 'react'; -import {Observable} from 'rxjs'; -import {delay, map, repeat, retryWhen, scan} from 'rxjs/operators'; +import {fromEvent, Observable, Observer, Subscription} from 'rxjs'; +import {debounceTime, delay, map, repeat, retryWhen, scan} from 'rxjs/operators'; function fromEventSource(url: string): Observable { return new Observable((subscriber) => { @@ -16,42 +16,87 @@ function fromEventSource(url: string): Observable { }); } -interface WatchEvent { - type?: string; +export function handlePageVisibility(src: () => Observable): Observable { + return new Observable((observer: Observer) => { + let subscription: Subscription; + const ensureUnsubscribed = () => { + if (subscription) { + subscription.unsubscribe(); + subscription = null; + } + }; + const start = () => { + ensureUnsubscribed(); + subscription = src().subscribe( + (item: T) => observer.next(item), + (err) => observer.error(err), + () => observer.complete() + ); + }; + + if (!document.hidden) { + start(); + } + + const visibilityChangeSubscription = fromEvent(document, 'visibilitychange') + .pipe(debounceTime(500)) + .subscribe(() => { + if (document.hidden && subscription) { + ensureUnsubscribed(); + } else if (!document.hidden && !subscription) { + start(); + } + }); + + return () => { + visibilityChangeSubscription.unsubscribe(); + ensureUnsubscribed(); + }; + }); } -export function watchFromUrl(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): Observable { - const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as E)); - return stream.pipe( - repeat(), - retryWhen((errors) => errors.pipe(delay(500))), - scan((items, change) => { - const index = items.findIndex((i) => findItem(i, change)); - switch (change.type) { - case 'DELETED': - if (index > -1) { - items.splice(index, 1); - } - break; - default: - if (index > -1) { - items[index] = getItem(change); - } else { - items.unshift(getItem(change)); - } - break; - } - return items; - }, init || []) - ); +interface WatchEvent { + type?: string; } -export function useWatch(watchFxn: () => Observable): T[] { +// NOTE: findItem and getItem must be React.useCallback functions +export function useWatch(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): T[] { const [items, setItems] = React.useState([] as T[]); + React.useEffect(() => { - watchFxn().subscribe((list) => { - setItems(list); + const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as E)); + let watch = handlePageVisibility(() => + stream.pipe( + repeat(), + retryWhen((errors) => errors.pipe(delay(500))), + scan((items, change) => { + const index = items.findIndex((i) => findItem(i, change)); + switch (change.type) { + case 'DELETED': + if (index > -1) { + items.splice(index, 1); + } + break; + default: + if (index > -1) { + items[index] = getItem(change); + } else { + items.unshift(getItem(change)); + } + break; + } + return items; + }, init || []) + ) + ); + + watch.subscribe((list) => { + setItems([...list]); }); - }, [watchFxn]); + + return () => { + watch = null; + }; + }, [init, url, findItem, getItem]); return items; } diff --git a/ui/src/app/webpack.config.js b/ui/src/app/webpack.config.js index e65d9d7c38..0b726ef4aa 100644 --- a/ui/src/app/webpack.config.js +++ b/ui/src/app/webpack.config.js @@ -79,6 +79,7 @@ const config = { headers: { 'X-Frame-Options': 'SAMEORIGIN', }, + host: 'localhost', port: 3101, proxy: { '/api/v1': { diff --git a/ui/src/assets/images/argo-icon-color-square.png b/ui/src/assets/images/argo-icon-color-square.png new file mode 100644 index 0000000000000000000000000000000000000000..bb79c736d634410ab41e8444b0c7afbe74048785 GIT binary patch literal 102248 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 Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).getNamespace(options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, /** * * @summary Get returns a rollout @@ -4932,6 +4984,14 @@ export const RolloutServiceApiFp = function(configuration?: Configuration) { */ export const RolloutServiceApiFactory = function (configuration?: Configuration, fetch?: FetchAPI, basePath?: string) { return { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + getNamespace(options?: any) { + return RolloutServiceApiFp(configuration).getNamespace(options)(fetch, basePath); + }, /** * * @summary Get returns a rollout @@ -4977,6 +5037,16 @@ export const RolloutServiceApiFactory = function (configuration?: Configuration, * @extends {BaseAPI} */ export class RolloutServiceApi extends BaseAPI { + /** + * + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public getNamespace(options?: any) { + return RolloutServiceApiFp(this.configuration).getNamespace(options)(this.fetch, this.basePath); + } + /** * * @summary Get returns a rollout diff --git a/ui/src/models/rollout/generated/api_test.spec.ts b/ui/src/models/rollout/generated/api_test.spec.ts index 4e0b711bd2..9cdb76ff46 100644 --- a/ui/src/models/rollout/generated/api_test.spec.ts +++ b/ui/src/models/rollout/generated/api_test.spec.ts @@ -21,6 +21,9 @@ describe("RolloutServiceApi", () => { instance = new api.RolloutServiceApi(config) }); + test("getNamespace", () => { + return expect(instance.getNamespace({})).resolves.toBe(null) + }) test("getRollout", () => { const name: string = "name_example" return expect(instance.getRollout(name, {})).resolves.toBe(null) diff --git a/ui/src/models/rollout/rollout.tsx b/ui/src/models/rollout/rollout.tsx index 4136829d34..9d41eeeae9 100644 --- a/ui/src/models/rollout/rollout.tsx +++ b/ui/src/models/rollout/rollout.tsx @@ -1,3 +1,4 @@ import * as Generated from './generated'; export type Rollout = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout; +export type RolloutCondition = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition; diff --git a/ui/yarn.lock b/ui/yarn.lock index 83366c6c17..76dd9785d2 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1091,6 +1091,13 @@ dependencies: regenerator-runtime "^0.13.4" +"@babel/runtime@^7.1.2", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.13.9" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" + integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": version "7.12.18" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.18.tgz#af137bd7e7d9705a412b3caaf991fe6aaa97831b" @@ -1098,13 +1105,6 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": - version "7.13.9" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.9.tgz#97dbe2116e2630c489f22e0656decd60aaa1fcee" - integrity sha512-aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA== - dependencies: - regenerator-runtime "^0.13.4" - "@babel/template@^7.10.4", "@babel/template@^7.12.13", "@babel/template@^7.3.3": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" @@ -1752,6 +1752,11 @@ dependencies: "@types/node" "*" +"@types/history@*": + version "4.7.8" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.8.tgz#49348387983075705fe8f4e02fb67f7daaec4934" + integrity sha512-S78QIYirQcUoo6UJZx9CSP0O2ix9IaeAXwQi26Rhr/+mg7qqPy8TzaxHSUut7eGjL8WmLccT7/MXf304WjqHcA== + "@types/html-minifier-terser@^5.0.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" @@ -1841,6 +1846,30 @@ dependencies: "@types/react" "*" +"@types/react-helmet@^6.1.0": + version "6.1.0" + resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.0.tgz#af586ed685f4905e2adc7462d1d65ace52beee7a" + integrity sha512-PYRoU1XJFOzQ3BHvWL1T8iDNbRjdMDJMT5hFmZKGbsq09kbSqJy61uwEpTrbTNWDopVphUT34zUSVLK9pjsgYQ== + dependencies: + "@types/react" "*" + +"@types/react-router-dom@^5.1.7": + version "5.1.7" + resolved "https://registry.yarnpkg.com/@types/react-router-dom/-/react-router-dom-5.1.7.tgz#a126d9ea76079ffbbdb0d9225073eb5797ab7271" + integrity sha512-D5mHD6TbdV/DNHYsnwBTv+y73ei+mMjrkGrla86HthE4/PVvL1J94Bu3qABU+COXzpL23T1EZapVVpwHuBXiUg== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react-router" "*" + +"@types/react-router@*": + version "5.1.12" + resolved "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.12.tgz#0f300e09468e7aed86e18241c90238c18c377e51" + integrity sha512-0bhXQwHYfMeJlCh7mGhc0VJTRm0Gk+Z8T00aiP4702mDUuLs9SMhnd2DitpjWFjdOecx2UXtICK14H9iMnziGA== + dependencies: + "@types/history" "*" + "@types/react" "*" + "@types/react@*", "@types/react@^17.0.0": version "17.0.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" @@ -5564,6 +5593,18 @@ hex-color-regex@^1.1.0: resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== +history@^4.9.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3" + integrity sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew== + dependencies: + "@babel/runtime" "^7.1.2" + loose-envify "^1.2.0" + resolve-pathname "^3.0.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + value-equal "^1.0.1" + hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -5573,6 +5614,13 @@ hmac-drbg@^1.0.1: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoist-non-react-statics@^3.1.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + hoopy@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d" @@ -6260,6 +6308,11 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -7106,7 +7159,7 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== -loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -7319,6 +7372,14 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== +mini-create-react-context@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz#072171561bfdc922da08a60c2197a497cc2d1d5e" + integrity sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ== + dependencies: + "@babel/runtime" "^7.12.1" + tiny-warning "^1.0.3" + mini-css-extract-plugin@0.11.3: version "0.11.3" resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz#15b0910a7f32e62ffde4a7430cfefbd700724ea6" @@ -7423,6 +7484,11 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +moment@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -8086,6 +8152,13 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" @@ -8949,7 +9022,7 @@ prompts@2.4.0, prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.5.4, prop-types@^15.7.2: +prop-types@^15.5.4, prop-types@^15.6.2, prop-types@^15.7.2: version "15.7.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== @@ -9182,6 +9255,21 @@ react-error-overlay@^6.0.9: resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz#3c743010c9359608c375ecd6bc76f35d93995b0a" integrity sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew== +react-fast-compare@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb" + integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA== + +react-helmet@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726" + integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw== + dependencies: + object-assign "^4.1.1" + prop-types "^15.7.2" + react-fast-compare "^3.1.1" + react-side-effect "^2.1.0" + react-hot-loader@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-3.1.3.tgz#6f92877326958c7cb0134b512474517869126082" @@ -9193,7 +9281,7 @@ react-hot-loader@^3.1.3: redbox-react "^1.3.6" source-map "^0.6.1" -react-is@^16.8.1: +react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1: version "16.13.1" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -9215,6 +9303,35 @@ react-refresh@^0.8.3: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f" integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg== +react-router-dom@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz#9e65a4d0c45e13289e66c7b17c7e175d0ea15662" + integrity sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + loose-envify "^1.3.1" + prop-types "^15.6.2" + react-router "5.2.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + +react-router@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz#424e75641ca8747fbf76e5ecca69781aa37ea293" + integrity sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw== + dependencies: + "@babel/runtime" "^7.1.2" + history "^4.9.0" + hoist-non-react-statics "^3.1.0" + loose-envify "^1.3.1" + mini-create-react-context "^0.4.0" + path-to-regexp "^1.7.0" + prop-types "^15.6.2" + react-is "^16.6.0" + tiny-invariant "^1.0.2" + tiny-warning "^1.0.0" + react-scripts@4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/react-scripts/-/react-scripts-4.0.3.tgz#b1cafed7c3fa603e7628ba0f187787964cb5d345" @@ -9281,6 +9398,11 @@ react-scripts@4.0.3: optionalDependencies: fsevents "^2.1.3" +react-side-effect@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" + integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ== + react@^17.0.1: version "17.0.1" resolved "https://registry.yarnpkg.com/react/-/react-17.0.1.tgz#6e0600416bd57574e3f86d92edba3d9008726127" @@ -9596,6 +9718,11 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== +resolve-pathname@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" + integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== + resolve-url-loader@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz#235e2c28e22e3e432ba7a5d4e305c59a58edfc08" @@ -10729,6 +10856,16 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-invariant@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875" + integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw== + +tiny-warning@^1.0.0, tiny-warning@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== + tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" @@ -11162,6 +11299,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +value-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" + integrity sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw== + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" From 87954427de42a9b5cdfd15eeafb30926af2982a0 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Fri, 5 Mar 2021 17:24:54 -0800 Subject: [PATCH 007/112] Replace RolloutInfo with API def. More UI progress, add restart endpoint Signed-off-by: Remington Breeze --- pkg/apiclient/rollout/rollout.pb.go | 130 +- pkg/apiclient/rollout/rollout.pb.gw.go | 98 + pkg/apiclient/rollout/rollout.proto | 6 +- pkg/apiclient/rollout/rollout.swagger.json | 222 +- pkg/apis/rollouts/v1alpha1/generated.pb.go | 7970 +++++++++++------ pkg/apis/rollouts/v1alpha1/generated.proto | 98 +- pkg/apis/rollouts/v1alpha1/types.go | 64 +- .../cmd/get/get_experiment.go | 14 +- .../cmd/get/get_rollout.go | 50 +- .../info/analysisrun_info.go | 34 +- .../info/experiment_info.go | 25 +- pkg/kubectl-argo-rollouts/info/info.go | 10 +- pkg/kubectl-argo-rollouts/info/pod_info.go | 18 +- .../info/replicaset_info.go | 31 +- .../info/rollout_info.go | 69 +- .../viewcontroller/viewcontroller.go | 9 +- server/server.go | 54 +- ui/package.json | 10 +- .../action-button/action-button.tsx | 7 +- ui/src/app/components/rollout/rollout.tsx | 4 +- .../rollouts-list/rollouts-list.scss | 31 +- .../rollouts-list/rollouts-list.tsx | 71 +- .../app/components/status-icon/pod-icon.scss | 38 + .../components/status-icon/status-icon.tsx | 81 +- ui/src/app/components/wait-for/wait-for.tsx | 13 + ui/src/app/shared/services/rollout.ts | 10 +- ui/src/app/shared/styles/colors.scss | 1 + ui/src/app/shared/utils/utils.tsx | 16 +- ui/src/app/shared/utils/watch.ts | 87 +- .../{webpack.config.js => webpack.common.js} | 33 +- ui/src/app/webpack.dev.js | 33 + ui/src/app/webpack.prod.js | 23 + ui/src/models/rollout/generated/api.ts | 365 +- .../models/rollout/generated/api_test.spec.ts | 4 + ui/src/models/rollout/rollout.tsx | 2 + ui/yarn.lock | 85 +- 36 files changed, 6591 insertions(+), 3225 deletions(-) create mode 100644 ui/src/app/components/status-icon/pod-icon.scss create mode 100644 ui/src/app/components/wait-for/wait-for.tsx rename ui/src/app/{webpack.config.js => webpack.common.js} (59%) create mode 100644 ui/src/app/webpack.dev.js create mode 100644 ui/src/app/webpack.prod.js diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index 3e0c01df57..4848d53c7c 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -77,11 +77,11 @@ func (m *RolloutQuery) GetName() string { } type RolloutWatchEvent struct { - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Rollout *v1alpha1.Rollout `protobuf:"bytes,2,opt,name=rollout,proto3" json:"rollout,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + RolloutInfo *v1alpha1.RolloutInfo `protobuf:"bytes,2,opt,name=rolloutInfo,proto3" json:"rolloutInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *RolloutWatchEvent) Reset() { *m = RolloutWatchEvent{} } @@ -124,9 +124,9 @@ func (m *RolloutWatchEvent) GetType() string { return "" } -func (m *RolloutWatchEvent) GetRollout() *v1alpha1.Rollout { +func (m *RolloutWatchEvent) GetRolloutInfo() *v1alpha1.RolloutInfo { if m != nil { - return m.Rollout + return m.RolloutInfo } return nil } @@ -189,37 +189,39 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 471 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x94, 0xcf, 0x6b, 0x13, 0x41, - 0x14, 0xc7, 0x99, 0xe2, 0x0f, 0x3a, 0xa6, 0x62, 0x9f, 0x18, 0x62, 0x0c, 0x4b, 0x59, 0x3d, 0xf4, - 0xd2, 0xd9, 0xa6, 0x1e, 0xbc, 0x0b, 0xa1, 0x14, 0x8a, 0x60, 0x3c, 0x88, 0x5e, 0xca, 0x64, 0x7d, - 0xdd, 0xac, 0xdd, 0xcc, 0x0c, 0x3b, 0x93, 0x48, 0x10, 0x2f, 0x9e, 0x04, 0xc5, 0x8b, 0x17, 0xff, - 0x24, 0x8f, 0x82, 0xff, 0x80, 0x04, 0xff, 0x10, 0x99, 0xd9, 0x99, 0x49, 0x1b, 0x08, 0x78, 0x08, - 0x9e, 0xf2, 0xe6, 0xe5, 0xcd, 0xfb, 0x7e, 0xde, 0x9b, 0x6f, 0x42, 0x1f, 0xaa, 0x8b, 0x22, 0xe3, - 0xaa, 0xcc, 0xab, 0x12, 0x85, 0xc9, 0x6a, 0x59, 0x55, 0x72, 0x1a, 0x3f, 0x99, 0xaa, 0xa5, 0x91, - 0x70, 0xd3, 0x1f, 0xbb, 0xbd, 0x42, 0xca, 0xa2, 0x42, 0x7b, 0x21, 0xe3, 0x42, 0x48, 0xc3, 0x4d, - 0x29, 0x85, 0x6e, 0xca, 0xba, 0xa7, 0x45, 0x69, 0xc6, 0xd3, 0x11, 0xcb, 0xe5, 0x24, 0xe3, 0x75, - 0x21, 0x55, 0x2d, 0xdf, 0xba, 0xe0, 0xc0, 0xdf, 0xd7, 0x99, 0x57, 0xd3, 0x59, 0xcc, 0xcc, 0xfa, - 0xbc, 0x52, 0x63, 0xde, 0xcf, 0x0a, 0x14, 0x58, 0x73, 0x83, 0x6f, 0x7c, 0xb7, 0x07, 0x5e, 0xcb, - 0x9d, 0x46, 0xd3, 0xf3, 0x0c, 0x27, 0xca, 0xcc, 0x9b, 0x2f, 0xd3, 0x94, 0xb6, 0x86, 0x4d, 0x87, - 0xe7, 0x53, 0xac, 0xe7, 0x00, 0xf4, 0x9a, 0xe0, 0x13, 0xec, 0x90, 0x3d, 0xb2, 0xbf, 0x3d, 0x74, - 0x71, 0xfa, 0x89, 0xd0, 0x5d, 0x5f, 0xf4, 0x92, 0x9b, 0x7c, 0x3c, 0x98, 0xa1, 0x30, 0xb6, 0xd2, - 0xcc, 0x55, 0xac, 0xb4, 0x31, 0x9c, 0xd1, 0x30, 0x61, 0x67, 0x6b, 0x8f, 0xec, 0xdf, 0x3a, 0x1a, - 0xb0, 0xe5, 0x28, 0x2c, 0x8c, 0xe2, 0x82, 0xb3, 0x00, 0xce, 0xd4, 0x45, 0xc1, 0xec, 0x28, 0x2c, - 0x66, 0xc2, 0x28, 0xcc, 0xab, 0x0e, 0x43, 0xd7, 0xf4, 0x80, 0xee, 0x3c, 0xe3, 0x13, 0xd4, 0x8a, - 0xe7, 0x78, 0x22, 0xce, 0x25, 0xf4, 0xe8, 0xb6, 0x08, 0x09, 0x8f, 0xb2, 0x4c, 0x1c, 0x7d, 0xb9, - 0x4e, 0x6f, 0xfb, 0x1e, 0x2f, 0xb0, 0x9e, 0x95, 0x39, 0xc2, 0x57, 0x42, 0xe9, 0x31, 0x1a, 0x9f, - 0x85, 0x7b, 0x41, 0x95, 0x5d, 0x5e, 0x43, 0xf7, 0x64, 0x23, 0xdc, 0x96, 0x30, 0x4d, 0x3e, 0xfe, - 0xfa, 0xf3, 0x6d, 0xab, 0x03, 0x6d, 0xf7, 0xd8, 0xb3, 0x7e, 0xb4, 0xc6, 0x7b, 0xcb, 0xf9, 0x01, - 0xbe, 0x13, 0xda, 0x72, 0x6b, 0xfd, 0x7f, 0x48, 0x8f, 0x1c, 0x52, 0x02, 0xbd, 0x55, 0xa4, 0x77, - 0x96, 0xc3, 0x83, 0x1d, 0x12, 0xf8, 0x4c, 0x68, 0xeb, 0xb4, 0xd4, 0x61, 0x59, 0x1a, 0xda, 0xac, - 0xf1, 0x12, 0x0b, 0x5e, 0x62, 0x03, 0xeb, 0xa5, 0x0d, 0xb1, 0x59, 0xa9, 0xb4, 0xe3, 0xd8, 0x00, - 0xee, 0xac, 0xb0, 0x69, 0x40, 0xba, 0x73, 0x79, 0x4f, 0xeb, 0x69, 0xba, 0xab, 0x0b, 0x5c, 0xba, - 0x76, 0xed, 0x6b, 0xe8, 0x66, 0xf6, 0x43, 0x02, 0xaf, 0x68, 0xeb, 0x18, 0x4d, 0x74, 0xd9, 0x5a, - 0x95, 0x76, 0x54, 0xb9, 0xe2, 0xc8, 0xf4, 0xbe, 0x53, 0xb8, 0x0b, 0xbb, 0x41, 0x21, 0xda, 0xf1, - 0xe9, 0xe0, 0xc7, 0x22, 0x21, 0x3f, 0x17, 0x09, 0xf9, 0xbd, 0x48, 0xc8, 0xeb, 0x27, 0xff, 0xfc, - 0x2b, 0xbf, 0xfa, 0x9f, 0x32, 0xba, 0xe1, 0x48, 0x1e, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, - 0x84, 0x44, 0xc4, 0x73, 0x04, 0x00, 0x00, + // 497 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcf, 0x6b, 0x13, 0x41, + 0x14, 0x66, 0x8a, 0x3f, 0xe8, 0x34, 0x2d, 0xf6, 0x89, 0x21, 0xc6, 0xb0, 0x84, 0x55, 0xa4, 0x97, + 0xce, 0x36, 0xf5, 0xe0, 0x5d, 0x08, 0xa5, 0x50, 0x04, 0xe3, 0x41, 0xf4, 0x22, 0x93, 0xf5, 0x75, + 0xb3, 0x66, 0x33, 0x33, 0xcc, 0x4c, 0x22, 0x41, 0xbc, 0x78, 0x15, 0xbc, 0xe8, 0xc1, 0x3f, 0xc9, + 0xa3, 0xe0, 0x3f, 0x20, 0xc1, 0x7f, 0xc1, 0xbb, 0xcc, 0xec, 0xec, 0x26, 0x0d, 0x04, 0x3d, 0x94, + 0x9e, 0xf6, 0xcd, 0xdb, 0x37, 0xdf, 0xf7, 0xbd, 0xf7, 0x3e, 0x86, 0xde, 0x57, 0xe3, 0x2c, 0xe1, + 0x2a, 0x4f, 0x8b, 0x1c, 0x85, 0x4d, 0xb4, 0x2c, 0x0a, 0x39, 0xad, 0xbf, 0x4c, 0x69, 0x69, 0x25, + 0xdc, 0x0c, 0xc7, 0x76, 0x27, 0x93, 0x32, 0x2b, 0xd0, 0x5d, 0x48, 0xb8, 0x10, 0xd2, 0x72, 0x9b, + 0x4b, 0x61, 0xca, 0xb2, 0xf6, 0x59, 0x96, 0xdb, 0xd1, 0x74, 0xc8, 0x52, 0x39, 0x49, 0xb8, 0xce, + 0xa4, 0xd2, 0xf2, 0xad, 0x0f, 0x0e, 0xc3, 0x7d, 0x93, 0x04, 0x36, 0x93, 0xd4, 0x99, 0x59, 0x8f, + 0x17, 0x6a, 0xc4, 0x7b, 0x49, 0x86, 0x02, 0x35, 0xb7, 0xf8, 0x26, 0xa0, 0xdd, 0x0b, 0x5c, 0xfe, + 0x34, 0x9c, 0x9e, 0x27, 0x38, 0x51, 0x76, 0x5e, 0xfe, 0x8c, 0x63, 0xda, 0x18, 0x94, 0x08, 0xcf, + 0xa6, 0xa8, 0xe7, 0x00, 0xf4, 0x9a, 0xe0, 0x13, 0x6c, 0x91, 0x2e, 0x39, 0xd8, 0x1e, 0xf8, 0x38, + 0xfe, 0x4a, 0xe8, 0x7e, 0x28, 0x7a, 0xc1, 0x6d, 0x3a, 0xea, 0xcf, 0x50, 0x58, 0x57, 0x69, 0xe7, + 0xaa, 0xae, 0x74, 0x31, 0x8c, 0xe9, 0x4e, 0xd0, 0x73, 0x2a, 0xce, 0x65, 0x6b, 0xab, 0x4b, 0x0e, + 0x76, 0x8e, 0x4f, 0xd9, 0xb2, 0x1d, 0x56, 0xb5, 0xe3, 0x83, 0xd7, 0x95, 0x78, 0xa6, 0xc6, 0x19, + 0x73, 0xed, 0xb0, 0x3a, 0x53, 0xb5, 0xc3, 0x06, 0x4b, 0xc0, 0xc1, 0x2a, 0x7a, 0x7c, 0x48, 0x77, + 0x9f, 0xf2, 0x09, 0x1a, 0xc5, 0x53, 0x74, 0x09, 0xe8, 0xd0, 0x6d, 0x51, 0x25, 0x82, 0xac, 0x65, + 0xe2, 0xf8, 0xcf, 0x75, 0xba, 0x17, 0xb0, 0x9e, 0xa3, 0x9e, 0xe5, 0x29, 0xc2, 0x67, 0x42, 0xe9, + 0x09, 0xda, 0x90, 0x85, 0x3b, 0x15, 0x3b, 0x5b, 0x1d, 0x49, 0xfb, 0xf2, 0xf4, 0xc7, 0xd1, 0xc7, + 0x9f, 0xbf, 0xbf, 0x6c, 0xb5, 0xa0, 0xe9, 0x17, 0x3f, 0xeb, 0xd5, 0x36, 0x79, 0xef, 0x74, 0x7e, + 0x80, 0x6f, 0x84, 0x36, 0xfc, 0x88, 0xaf, 0x4e, 0xd2, 0x03, 0x2f, 0x29, 0x82, 0xce, 0xba, 0xa4, + 0x77, 0x4e, 0x47, 0x10, 0x76, 0x44, 0xe0, 0x13, 0xa1, 0x8d, 0xb3, 0xdc, 0x54, 0xc3, 0x32, 0xd0, + 0x64, 0xa5, 0xaf, 0x58, 0xe5, 0x2b, 0xd6, 0x77, 0xbe, 0xba, 0x24, 0x6d, 0x8e, 0x2a, 0x6e, 0x79, + 0x6d, 0x00, 0xb7, 0xd6, 0xb4, 0x19, 0x40, 0xba, 0xbb, 0x3a, 0xa7, 0xcd, 0x6a, 0xda, 0xeb, 0x03, + 0x5c, 0x3a, 0x78, 0xe3, 0x36, 0x4c, 0xd9, 0xfb, 0x11, 0x81, 0x97, 0xb4, 0x71, 0x82, 0xb6, 0x76, + 0xd9, 0x46, 0x96, 0x66, 0xcd, 0x72, 0xc1, 0x91, 0xf1, 0x5d, 0xcf, 0x70, 0x1b, 0xf6, 0x2b, 0x86, + 0xda, 0x8e, 0x90, 0xd1, 0xbd, 0x01, 0x1a, 0xcb, 0xf5, 0xbf, 0xec, 0xb7, 0x81, 0x33, 0x7e, 0xe8, + 0xb1, 0xbb, 0x10, 0xad, 0x2f, 0x4e, 0x97, 0xb0, 0x61, 0x75, 0x4f, 0xfa, 0xdf, 0x17, 0x11, 0xf9, + 0xb1, 0x88, 0xc8, 0xaf, 0x45, 0x44, 0x5e, 0x3d, 0xfe, 0xef, 0xa7, 0xe5, 0xe2, 0x43, 0x36, 0xbc, + 0xe1, 0xe9, 0x1f, 0xfd, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x5d, 0x82, 0x53, 0xe8, 0x04, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -240,6 +242,7 @@ type RolloutServiceClient interface { ListRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*v1alpha1.RolloutList, error) WatchRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (RolloutService_WatchRolloutsClient, error) GetNamespace(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*NamespaceInfo, error) + RestartRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) } type rolloutServiceClient struct { @@ -341,6 +344,15 @@ func (c *rolloutServiceClient) GetNamespace(ctx context.Context, in *empty.Empty return out, nil } +func (c *rolloutServiceClient) RestartRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/RestartRollout", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // Get returns a rollout @@ -349,6 +361,7 @@ type RolloutServiceServer interface { ListRollouts(context.Context, *empty.Empty) (*v1alpha1.RolloutList, error) WatchRollouts(*empty.Empty, RolloutService_WatchRolloutsServer) error GetNamespace(context.Context, *empty.Empty) (*NamespaceInfo, error) + RestartRollout(context.Context, *RolloutQuery) (*empty.Empty, error) } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. @@ -370,6 +383,9 @@ func (*UnimplementedRolloutServiceServer) WatchRollouts(req *empty.Empty, srv Ro func (*UnimplementedRolloutServiceServer) GetNamespace(ctx context.Context, req *empty.Empty) (*NamespaceInfo, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNamespace not implemented") } +func (*UnimplementedRolloutServiceServer) RestartRollout(ctx context.Context, req *RolloutQuery) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method RestartRollout not implemented") +} func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) @@ -471,6 +487,24 @@ func _RolloutService_GetNamespace_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _RolloutService_RestartRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).RestartRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/RestartRollout", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).RestartRollout(ctx, req.(*RolloutQuery)) + } + return interceptor(ctx, in, info, handler) +} + var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), @@ -487,6 +521,10 @@ var _RolloutService_serviceDesc = grpc.ServiceDesc{ MethodName: "GetNamespace", Handler: _RolloutService_GetNamespace_Handler, }, + { + MethodName: "RestartRollout", + Handler: _RolloutService_RestartRollout_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -561,9 +599,9 @@ func (m *RolloutWatchEvent) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= len(m.XXX_unrecognized) copy(dAtA[i:], m.XXX_unrecognized) } - if m.Rollout != nil { + if m.RolloutInfo != nil { { - size, err := m.Rollout.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.RolloutInfo.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -654,8 +692,8 @@ func (m *RolloutWatchEvent) Size() (n int) { if l > 0 { n += 1 + l + sovRollout(uint64(l)) } - if m.Rollout != nil { - l = m.Rollout.Size() + if m.RolloutInfo != nil { + l = m.RolloutInfo.Size() n += 1 + l + sovRollout(uint64(l)) } if m.XXX_unrecognized != nil { @@ -835,7 +873,7 @@ func (m *RolloutWatchEvent) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Rollout", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RolloutInfo", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -862,10 +900,10 @@ func (m *RolloutWatchEvent) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Rollout == nil { - m.Rollout = &v1alpha1.Rollout{} + if m.RolloutInfo == nil { + m.RolloutInfo = &v1alpha1.RolloutInfo{} } - if err := m.Rollout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.RolloutInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index a92dda8ab3..ce419fcc65 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -174,6 +174,60 @@ func local_request_RolloutService_GetNamespace_0(ctx context.Context, marshaler } +func request_RolloutService_RestartRollout_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.RestartRollout(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_RestartRollout_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.RestartRollout(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". // UnaryRPC :call RolloutServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -253,6 +307,26 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_RestartRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_RestartRollout_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_RestartRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -394,6 +468,26 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_RestartRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_RestartRollout_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_RestartRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -407,6 +501,8 @@ var ( pattern_RolloutService_WatchRollouts_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "rollouts", "watch"}, "", runtime.AssumeColonVerbOpt(true))) pattern_RolloutService_GetNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_RestartRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "restart", "name"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -419,4 +515,6 @@ var ( forward_RolloutService_WatchRollouts_0 = runtime.ForwardResponseStream forward_RolloutService_GetNamespace_0 = runtime.ForwardResponseMessage + + forward_RolloutService_RestartRollout_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index 6e3f6b52fd..b9e2e16eb2 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -13,7 +13,7 @@ message RolloutQuery { message RolloutWatchEvent { string type = 1; - github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout rollout = 2; + github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo rolloutInfo = 2; } message NamespaceInfo { @@ -41,4 +41,8 @@ service RolloutService { rpc GetNamespace(google.protobuf.Empty) returns (NamespaceInfo) { option (google.api.http).get = "/api/v1/namespace"; } + + rpc RestartRollout(RolloutQuery) returns (google.protobuf.Empty) { + option (google.api.http).get = "/api/v1/rollout/restart/{name}"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index f582c094c0..f49386fa96 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -27,6 +27,30 @@ ] } }, + "/api/v1/rollout/restart/{name}": { + "get": { + "operationId": "RestartRollout", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/rollout/watch/{name}": { "get": { "operationId": "WatchRollout", @@ -169,6 +193,46 @@ }, "title": "AnalysisRunArgument argument to add to analysisRun" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunInfo": { + "type": "object", + "properties": { + "objectMeta": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "icon": { + "type": "string" + }, + "revision": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + }, + "successful": { + "type": "integer", + "format": "int32" + }, + "failed": { + "type": "integer", + "format": "int32" + }, + "inconclusive": { + "type": "integer", + "format": "int32" + }, + "error": { + "type": "integer", + "format": "int32" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobInfo" + } + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AntiAffinity": { "type": "object", "properties": { @@ -381,6 +445,39 @@ }, "title": "CanaryStrategy defines parameters for a Replica Based Canary" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentInfo": { + "type": "object", + "properties": { + "objectMeta": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "icon": { + "type": "string" + }, + "revision": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + }, + "message": { + "type": "string" + }, + "replicaSets": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ReplicaSetInfo" + } + }, + "analysisRuns": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunInfo" + } + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.FieldRef": { "type": "object", "properties": { @@ -439,6 +536,20 @@ }, "title": "IstioVirtualService holds information on the virtual service the rollout needs to modify" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobInfo": { + "type": "object", + "properties": { + "objectMeta": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "status": { + "type": "string" + }, + "icon": { + "type": "string" + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting": { "type": "object", "properties": { @@ -472,6 +583,27 @@ }, "title": "PauseCondition the reason for a pause and when it started" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodInfo": { + "type": "object", + "properties": { + "objectMeta": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "status": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "ready": { + "type": "string" + }, + "restarts": { + "type": "integer", + "format": "int32" + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata": { "type": "object", "properties": { @@ -503,6 +635,66 @@ }, "title": "PreferredDuringSchedulingIgnoredDuringExecution defines the weight of the anti-affinity injection" }, + "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ReplicaSetInfo": { + "type": "object", + "properties": { + "objectMeta": { + "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "status": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "revision": { + "type": "integer", + "format": "int32" + }, + "stable": { + "type": "boolean", + "format": "boolean" + }, + "canary": { + "type": "boolean", + "format": "boolean" + }, + "active": { + "type": "boolean", + "format": "boolean" + }, + "preview": { + "type": "boolean", + "format": "boolean" + }, + "replicas": { + "type": "integer", + "format": "int32" + }, + "available": { + "type": "integer", + "format": "int32" + }, + "template": { + "type": "string" + }, + "scaleDownDeadline": { + "type": "string" + }, + "images": { + "type": "array", + "items": { + "type": "string" + } + }, + "pods": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodInfo" + } + } + } + }, "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RequiredDuringSchedulingIgnoredDuringExecution": { "type": "object", "title": "RequiredDuringSchedulingIgnoredDuringExecution defines inter-pod scheduling rule to be RequiredDuringSchedulingIgnoredDuringExecution" @@ -698,7 +890,7 @@ "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo": { "type": "object", "properties": { - "metadata": { + "objectMeta": { "$ref": "#/definitions/k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta" }, "status": { @@ -741,6 +933,30 @@ "available": { "type": "integer", "format": "int32" + }, + "restartedAt": { + "type": "string" + }, + "generation": { + "type": "string" + }, + "replicaSets": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ReplicaSetInfo" + } + }, + "experiments": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentInfo" + } + }, + "analysisRuns": { + "type": "array", + "items": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunInfo" + } } }, "title": "RolloutInfo is information about a rollout" @@ -3733,8 +3949,8 @@ "type": { "type": "string" }, - "rollout": { - "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout" + "rolloutInfo": { + "$ref": "#/definitions/github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo" } } } diff --git a/pkg/apis/rollouts/v1alpha1/generated.pb.go b/pkg/apis/rollouts/v1alpha1/generated.pb.go index 578e6e319d..e8dcd6dbf0 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.pb.go +++ b/pkg/apis/rollouts/v1alpha1/generated.pb.go @@ -132,10 +132,38 @@ func (m *AnalysisRunArgument) XXX_DiscardUnknown() { var xxx_messageInfo_AnalysisRunArgument proto.InternalMessageInfo +func (m *AnalysisRunInfo) Reset() { *m = AnalysisRunInfo{} } +func (*AnalysisRunInfo) ProtoMessage() {} +func (*AnalysisRunInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{3} +} +func (m *AnalysisRunInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AnalysisRunInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AnalysisRunInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_AnalysisRunInfo.Merge(m, src) +} +func (m *AnalysisRunInfo) XXX_Size() int { + return m.Size() +} +func (m *AnalysisRunInfo) XXX_DiscardUnknown() { + xxx_messageInfo_AnalysisRunInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_AnalysisRunInfo proto.InternalMessageInfo + func (m *AnalysisRunList) Reset() { *m = AnalysisRunList{} } func (*AnalysisRunList) ProtoMessage() {} func (*AnalysisRunList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{3} + return fileDescriptor_e0e705f843545fab, []int{4} } func (m *AnalysisRunList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -163,7 +191,7 @@ var xxx_messageInfo_AnalysisRunList proto.InternalMessageInfo func (m *AnalysisRunSpec) Reset() { *m = AnalysisRunSpec{} } func (*AnalysisRunSpec) ProtoMessage() {} func (*AnalysisRunSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{4} + return fileDescriptor_e0e705f843545fab, []int{5} } func (m *AnalysisRunSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -191,7 +219,7 @@ var xxx_messageInfo_AnalysisRunSpec proto.InternalMessageInfo func (m *AnalysisRunStatus) Reset() { *m = AnalysisRunStatus{} } func (*AnalysisRunStatus) ProtoMessage() {} func (*AnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{5} + return fileDescriptor_e0e705f843545fab, []int{6} } func (m *AnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -219,7 +247,7 @@ var xxx_messageInfo_AnalysisRunStatus proto.InternalMessageInfo func (m *AnalysisTemplate) Reset() { *m = AnalysisTemplate{} } func (*AnalysisTemplate) ProtoMessage() {} func (*AnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{6} + return fileDescriptor_e0e705f843545fab, []int{7} } func (m *AnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -247,7 +275,7 @@ var xxx_messageInfo_AnalysisTemplate proto.InternalMessageInfo func (m *AnalysisTemplateList) Reset() { *m = AnalysisTemplateList{} } func (*AnalysisTemplateList) ProtoMessage() {} func (*AnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{7} + return fileDescriptor_e0e705f843545fab, []int{8} } func (m *AnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -275,7 +303,7 @@ var xxx_messageInfo_AnalysisTemplateList proto.InternalMessageInfo func (m *AnalysisTemplateSpec) Reset() { *m = AnalysisTemplateSpec{} } func (*AnalysisTemplateSpec) ProtoMessage() {} func (*AnalysisTemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{8} + return fileDescriptor_e0e705f843545fab, []int{9} } func (m *AnalysisTemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -303,7 +331,7 @@ var xxx_messageInfo_AnalysisTemplateSpec proto.InternalMessageInfo func (m *AntiAffinity) Reset() { *m = AntiAffinity{} } func (*AntiAffinity) ProtoMessage() {} func (*AntiAffinity) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{9} + return fileDescriptor_e0e705f843545fab, []int{10} } func (m *AntiAffinity) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -331,7 +359,7 @@ var xxx_messageInfo_AntiAffinity proto.InternalMessageInfo func (m *Argument) Reset() { *m = Argument{} } func (*Argument) ProtoMessage() {} func (*Argument) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{10} + return fileDescriptor_e0e705f843545fab, []int{11} } func (m *Argument) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -359,7 +387,7 @@ var xxx_messageInfo_Argument proto.InternalMessageInfo func (m *ArgumentValueFrom) Reset() { *m = ArgumentValueFrom{} } func (*ArgumentValueFrom) ProtoMessage() {} func (*ArgumentValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{11} + return fileDescriptor_e0e705f843545fab, []int{12} } func (m *ArgumentValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -387,7 +415,7 @@ var xxx_messageInfo_ArgumentValueFrom proto.InternalMessageInfo func (m *BlueGreenStatus) Reset() { *m = BlueGreenStatus{} } func (*BlueGreenStatus) ProtoMessage() {} func (*BlueGreenStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{12} + return fileDescriptor_e0e705f843545fab, []int{13} } func (m *BlueGreenStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -415,7 +443,7 @@ var xxx_messageInfo_BlueGreenStatus proto.InternalMessageInfo func (m *BlueGreenStrategy) Reset() { *m = BlueGreenStrategy{} } func (*BlueGreenStrategy) ProtoMessage() {} func (*BlueGreenStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{13} + return fileDescriptor_e0e705f843545fab, []int{14} } func (m *BlueGreenStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -443,7 +471,7 @@ var xxx_messageInfo_BlueGreenStrategy proto.InternalMessageInfo func (m *CanaryStatus) Reset() { *m = CanaryStatus{} } func (*CanaryStatus) ProtoMessage() {} func (*CanaryStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{14} + return fileDescriptor_e0e705f843545fab, []int{15} } func (m *CanaryStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -471,7 +499,7 @@ var xxx_messageInfo_CanaryStatus proto.InternalMessageInfo func (m *CanaryStep) Reset() { *m = CanaryStep{} } func (*CanaryStep) ProtoMessage() {} func (*CanaryStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{15} + return fileDescriptor_e0e705f843545fab, []int{16} } func (m *CanaryStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -499,7 +527,7 @@ var xxx_messageInfo_CanaryStep proto.InternalMessageInfo func (m *CanaryStrategy) Reset() { *m = CanaryStrategy{} } func (*CanaryStrategy) ProtoMessage() {} func (*CanaryStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{16} + return fileDescriptor_e0e705f843545fab, []int{17} } func (m *CanaryStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -527,7 +555,7 @@ var xxx_messageInfo_CanaryStrategy proto.InternalMessageInfo func (m *ClusterAnalysisTemplate) Reset() { *m = ClusterAnalysisTemplate{} } func (*ClusterAnalysisTemplate) ProtoMessage() {} func (*ClusterAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{17} + return fileDescriptor_e0e705f843545fab, []int{18} } func (m *ClusterAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -555,7 +583,7 @@ var xxx_messageInfo_ClusterAnalysisTemplate proto.InternalMessageInfo func (m *ClusterAnalysisTemplateList) Reset() { *m = ClusterAnalysisTemplateList{} } func (*ClusterAnalysisTemplateList) ProtoMessage() {} func (*ClusterAnalysisTemplateList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{18} + return fileDescriptor_e0e705f843545fab, []int{19} } func (m *ClusterAnalysisTemplateList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -583,7 +611,7 @@ var xxx_messageInfo_ClusterAnalysisTemplateList proto.InternalMessageInfo func (m *DatadogMetric) Reset() { *m = DatadogMetric{} } func (*DatadogMetric) ProtoMessage() {} func (*DatadogMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{19} + return fileDescriptor_e0e705f843545fab, []int{20} } func (m *DatadogMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -611,7 +639,7 @@ var xxx_messageInfo_DatadogMetric proto.InternalMessageInfo func (m *Experiment) Reset() { *m = Experiment{} } func (*Experiment) ProtoMessage() {} func (*Experiment) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{20} + return fileDescriptor_e0e705f843545fab, []int{21} } func (m *Experiment) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -639,7 +667,7 @@ var xxx_messageInfo_Experiment proto.InternalMessageInfo func (m *ExperimentAnalysisRunStatus) Reset() { *m = ExperimentAnalysisRunStatus{} } func (*ExperimentAnalysisRunStatus) ProtoMessage() {} func (*ExperimentAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{21} + return fileDescriptor_e0e705f843545fab, []int{22} } func (m *ExperimentAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -667,7 +695,7 @@ var xxx_messageInfo_ExperimentAnalysisRunStatus proto.InternalMessageInfo func (m *ExperimentAnalysisTemplateRef) Reset() { *m = ExperimentAnalysisTemplateRef{} } func (*ExperimentAnalysisTemplateRef) ProtoMessage() {} func (*ExperimentAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{22} + return fileDescriptor_e0e705f843545fab, []int{23} } func (m *ExperimentAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -695,7 +723,7 @@ var xxx_messageInfo_ExperimentAnalysisTemplateRef proto.InternalMessageInfo func (m *ExperimentCondition) Reset() { *m = ExperimentCondition{} } func (*ExperimentCondition) ProtoMessage() {} func (*ExperimentCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{23} + return fileDescriptor_e0e705f843545fab, []int{24} } func (m *ExperimentCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -720,10 +748,38 @@ func (m *ExperimentCondition) XXX_DiscardUnknown() { var xxx_messageInfo_ExperimentCondition proto.InternalMessageInfo +func (m *ExperimentInfo) Reset() { *m = ExperimentInfo{} } +func (*ExperimentInfo) ProtoMessage() {} +func (*ExperimentInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{25} +} +func (m *ExperimentInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExperimentInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExperimentInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExperimentInfo.Merge(m, src) +} +func (m *ExperimentInfo) XXX_Size() int { + return m.Size() +} +func (m *ExperimentInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ExperimentInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ExperimentInfo proto.InternalMessageInfo + func (m *ExperimentList) Reset() { *m = ExperimentList{} } func (*ExperimentList) ProtoMessage() {} func (*ExperimentList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{24} + return fileDescriptor_e0e705f843545fab, []int{26} } func (m *ExperimentList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -751,7 +807,7 @@ var xxx_messageInfo_ExperimentList proto.InternalMessageInfo func (m *ExperimentSpec) Reset() { *m = ExperimentSpec{} } func (*ExperimentSpec) ProtoMessage() {} func (*ExperimentSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{25} + return fileDescriptor_e0e705f843545fab, []int{27} } func (m *ExperimentSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -779,7 +835,7 @@ var xxx_messageInfo_ExperimentSpec proto.InternalMessageInfo func (m *ExperimentStatus) Reset() { *m = ExperimentStatus{} } func (*ExperimentStatus) ProtoMessage() {} func (*ExperimentStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{26} + return fileDescriptor_e0e705f843545fab, []int{28} } func (m *ExperimentStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -807,7 +863,7 @@ var xxx_messageInfo_ExperimentStatus proto.InternalMessageInfo func (m *FieldRef) Reset() { *m = FieldRef{} } func (*FieldRef) ProtoMessage() {} func (*FieldRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{27} + return fileDescriptor_e0e705f843545fab, []int{29} } func (m *FieldRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -835,7 +891,7 @@ var xxx_messageInfo_FieldRef proto.InternalMessageInfo func (m *IstioDestinationRule) Reset() { *m = IstioDestinationRule{} } func (*IstioDestinationRule) ProtoMessage() {} func (*IstioDestinationRule) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{28} + return fileDescriptor_e0e705f843545fab, []int{30} } func (m *IstioDestinationRule) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -863,7 +919,7 @@ var xxx_messageInfo_IstioDestinationRule proto.InternalMessageInfo func (m *IstioTrafficRouting) Reset() { *m = IstioTrafficRouting{} } func (*IstioTrafficRouting) ProtoMessage() {} func (*IstioTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{29} + return fileDescriptor_e0e705f843545fab, []int{31} } func (m *IstioTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -891,7 +947,7 @@ var xxx_messageInfo_IstioTrafficRouting proto.InternalMessageInfo func (m *IstioVirtualService) Reset() { *m = IstioVirtualService{} } func (*IstioVirtualService) ProtoMessage() {} func (*IstioVirtualService) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{30} + return fileDescriptor_e0e705f843545fab, []int{32} } func (m *IstioVirtualService) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -916,10 +972,38 @@ func (m *IstioVirtualService) XXX_DiscardUnknown() { var xxx_messageInfo_IstioVirtualService proto.InternalMessageInfo +func (m *JobInfo) Reset() { *m = JobInfo{} } +func (*JobInfo) ProtoMessage() {} +func (*JobInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{33} +} +func (m *JobInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *JobInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *JobInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_JobInfo.Merge(m, src) +} +func (m *JobInfo) XXX_Size() int { + return m.Size() +} +func (m *JobInfo) XXX_DiscardUnknown() { + xxx_messageInfo_JobInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_JobInfo proto.InternalMessageInfo + func (m *JobMetric) Reset() { *m = JobMetric{} } func (*JobMetric) ProtoMessage() {} func (*JobMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{31} + return fileDescriptor_e0e705f843545fab, []int{34} } func (m *JobMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -947,7 +1031,7 @@ var xxx_messageInfo_JobMetric proto.InternalMessageInfo func (m *KayentaMetric) Reset() { *m = KayentaMetric{} } func (*KayentaMetric) ProtoMessage() {} func (*KayentaMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{32} + return fileDescriptor_e0e705f843545fab, []int{35} } func (m *KayentaMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -975,7 +1059,7 @@ var xxx_messageInfo_KayentaMetric proto.InternalMessageInfo func (m *KayentaScope) Reset() { *m = KayentaScope{} } func (*KayentaScope) ProtoMessage() {} func (*KayentaScope) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{33} + return fileDescriptor_e0e705f843545fab, []int{36} } func (m *KayentaScope) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1003,7 +1087,7 @@ var xxx_messageInfo_KayentaScope proto.InternalMessageInfo func (m *KayentaThreshold) Reset() { *m = KayentaThreshold{} } func (*KayentaThreshold) ProtoMessage() {} func (*KayentaThreshold) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{34} + return fileDescriptor_e0e705f843545fab, []int{37} } func (m *KayentaThreshold) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1031,7 +1115,7 @@ var xxx_messageInfo_KayentaThreshold proto.InternalMessageInfo func (m *Measurement) Reset() { *m = Measurement{} } func (*Measurement) ProtoMessage() {} func (*Measurement) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{35} + return fileDescriptor_e0e705f843545fab, []int{38} } func (m *Measurement) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1059,7 +1143,7 @@ var xxx_messageInfo_Measurement proto.InternalMessageInfo func (m *Metric) Reset() { *m = Metric{} } func (*Metric) ProtoMessage() {} func (*Metric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{36} + return fileDescriptor_e0e705f843545fab, []int{39} } func (m *Metric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1087,7 +1171,7 @@ var xxx_messageInfo_Metric proto.InternalMessageInfo func (m *MetricProvider) Reset() { *m = MetricProvider{} } func (*MetricProvider) ProtoMessage() {} func (*MetricProvider) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{37} + return fileDescriptor_e0e705f843545fab, []int{40} } func (m *MetricProvider) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1115,7 +1199,7 @@ var xxx_messageInfo_MetricProvider proto.InternalMessageInfo func (m *MetricResult) Reset() { *m = MetricResult{} } func (*MetricResult) ProtoMessage() {} func (*MetricResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{38} + return fileDescriptor_e0e705f843545fab, []int{41} } func (m *MetricResult) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1143,7 +1227,7 @@ var xxx_messageInfo_MetricResult proto.InternalMessageInfo func (m *NewRelicMetric) Reset() { *m = NewRelicMetric{} } func (*NewRelicMetric) ProtoMessage() {} func (*NewRelicMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{39} + return fileDescriptor_e0e705f843545fab, []int{42} } func (m *NewRelicMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1171,7 +1255,7 @@ var xxx_messageInfo_NewRelicMetric proto.InternalMessageInfo func (m *NginxTrafficRouting) Reset() { *m = NginxTrafficRouting{} } func (*NginxTrafficRouting) ProtoMessage() {} func (*NginxTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{40} + return fileDescriptor_e0e705f843545fab, []int{43} } func (m *NginxTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1199,7 +1283,7 @@ var xxx_messageInfo_NginxTrafficRouting proto.InternalMessageInfo func (m *PauseCondition) Reset() { *m = PauseCondition{} } func (*PauseCondition) ProtoMessage() {} func (*PauseCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{41} + return fileDescriptor_e0e705f843545fab, []int{44} } func (m *PauseCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1224,10 +1308,38 @@ func (m *PauseCondition) XXX_DiscardUnknown() { var xxx_messageInfo_PauseCondition proto.InternalMessageInfo +func (m *PodInfo) Reset() { *m = PodInfo{} } +func (*PodInfo) ProtoMessage() {} +func (*PodInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{45} +} +func (m *PodInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PodInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PodInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PodInfo.Merge(m, src) +} +func (m *PodInfo) XXX_Size() int { + return m.Size() +} +func (m *PodInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PodInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_PodInfo proto.InternalMessageInfo + func (m *PodTemplateMetadata) Reset() { *m = PodTemplateMetadata{} } func (*PodTemplateMetadata) ProtoMessage() {} func (*PodTemplateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{42} + return fileDescriptor_e0e705f843545fab, []int{46} } func (m *PodTemplateMetadata) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1257,7 +1369,7 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Reset() { } func (*PreferredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*PreferredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{43} + return fileDescriptor_e0e705f843545fab, []int{47} } func (m *PreferredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1285,7 +1397,7 @@ var xxx_messageInfo_PreferredDuringSchedulingIgnoredDuringExecution proto.Intern func (m *PrometheusMetric) Reset() { *m = PrometheusMetric{} } func (*PrometheusMetric) ProtoMessage() {} func (*PrometheusMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{44} + return fileDescriptor_e0e705f843545fab, []int{48} } func (m *PrometheusMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1310,12 +1422,40 @@ func (m *PrometheusMetric) XXX_DiscardUnknown() { var xxx_messageInfo_PrometheusMetric proto.InternalMessageInfo +func (m *ReplicaSetInfo) Reset() { *m = ReplicaSetInfo{} } +func (*ReplicaSetInfo) ProtoMessage() {} +func (*ReplicaSetInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_e0e705f843545fab, []int{49} +} +func (m *ReplicaSetInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ReplicaSetInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ReplicaSetInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReplicaSetInfo.Merge(m, src) +} +func (m *ReplicaSetInfo) XXX_Size() int { + return m.Size() +} +func (m *ReplicaSetInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ReplicaSetInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ReplicaSetInfo proto.InternalMessageInfo + func (m *RequiredDuringSchedulingIgnoredDuringExecution) Reset() { *m = RequiredDuringSchedulingIgnoredDuringExecution{} } func (*RequiredDuringSchedulingIgnoredDuringExecution) ProtoMessage() {} func (*RequiredDuringSchedulingIgnoredDuringExecution) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{45} + return fileDescriptor_e0e705f843545fab, []int{50} } func (m *RequiredDuringSchedulingIgnoredDuringExecution) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1343,7 +1483,7 @@ var xxx_messageInfo_RequiredDuringSchedulingIgnoredDuringExecution proto.Interna func (m *Rollout) Reset() { *m = Rollout{} } func (*Rollout) ProtoMessage() {} func (*Rollout) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{46} + return fileDescriptor_e0e705f843545fab, []int{51} } func (m *Rollout) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1371,7 +1511,7 @@ var xxx_messageInfo_Rollout proto.InternalMessageInfo func (m *RolloutAnalysis) Reset() { *m = RolloutAnalysis{} } func (*RolloutAnalysis) ProtoMessage() {} func (*RolloutAnalysis) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{47} + return fileDescriptor_e0e705f843545fab, []int{52} } func (m *RolloutAnalysis) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1399,7 +1539,7 @@ var xxx_messageInfo_RolloutAnalysis proto.InternalMessageInfo func (m *RolloutAnalysisBackground) Reset() { *m = RolloutAnalysisBackground{} } func (*RolloutAnalysisBackground) ProtoMessage() {} func (*RolloutAnalysisBackground) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{48} + return fileDescriptor_e0e705f843545fab, []int{53} } func (m *RolloutAnalysisBackground) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1427,7 +1567,7 @@ var xxx_messageInfo_RolloutAnalysisBackground proto.InternalMessageInfo func (m *RolloutAnalysisRunStatus) Reset() { *m = RolloutAnalysisRunStatus{} } func (*RolloutAnalysisRunStatus) ProtoMessage() {} func (*RolloutAnalysisRunStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{49} + return fileDescriptor_e0e705f843545fab, []int{54} } func (m *RolloutAnalysisRunStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1455,7 +1595,7 @@ var xxx_messageInfo_RolloutAnalysisRunStatus proto.InternalMessageInfo func (m *RolloutAnalysisTemplate) Reset() { *m = RolloutAnalysisTemplate{} } func (*RolloutAnalysisTemplate) ProtoMessage() {} func (*RolloutAnalysisTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{50} + return fileDescriptor_e0e705f843545fab, []int{55} } func (m *RolloutAnalysisTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1483,7 +1623,7 @@ var xxx_messageInfo_RolloutAnalysisTemplate proto.InternalMessageInfo func (m *RolloutCondition) Reset() { *m = RolloutCondition{} } func (*RolloutCondition) ProtoMessage() {} func (*RolloutCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{51} + return fileDescriptor_e0e705f843545fab, []int{56} } func (m *RolloutCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1511,7 +1651,7 @@ var xxx_messageInfo_RolloutCondition proto.InternalMessageInfo func (m *RolloutExperimentStep) Reset() { *m = RolloutExperimentStep{} } func (*RolloutExperimentStep) ProtoMessage() {} func (*RolloutExperimentStep) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{52} + return fileDescriptor_e0e705f843545fab, []int{57} } func (m *RolloutExperimentStep) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1541,7 +1681,7 @@ func (m *RolloutExperimentStepAnalysisTemplateRef) Reset() { } func (*RolloutExperimentStepAnalysisTemplateRef) ProtoMessage() {} func (*RolloutExperimentStepAnalysisTemplateRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{53} + return fileDescriptor_e0e705f843545fab, []int{58} } func (m *RolloutExperimentStepAnalysisTemplateRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1569,7 +1709,7 @@ var xxx_messageInfo_RolloutExperimentStepAnalysisTemplateRef proto.InternalMessa func (m *RolloutExperimentTemplate) Reset() { *m = RolloutExperimentTemplate{} } func (*RolloutExperimentTemplate) ProtoMessage() {} func (*RolloutExperimentTemplate) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{54} + return fileDescriptor_e0e705f843545fab, []int{59} } func (m *RolloutExperimentTemplate) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1597,7 +1737,7 @@ var xxx_messageInfo_RolloutExperimentTemplate proto.InternalMessageInfo func (m *RolloutInfo) Reset() { *m = RolloutInfo{} } func (*RolloutInfo) ProtoMessage() {} func (*RolloutInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{55} + return fileDescriptor_e0e705f843545fab, []int{60} } func (m *RolloutInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1625,7 +1765,7 @@ var xxx_messageInfo_RolloutInfo proto.InternalMessageInfo func (m *RolloutList) Reset() { *m = RolloutList{} } func (*RolloutList) ProtoMessage() {} func (*RolloutList) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{56} + return fileDescriptor_e0e705f843545fab, []int{61} } func (m *RolloutList) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1653,7 +1793,7 @@ var xxx_messageInfo_RolloutList proto.InternalMessageInfo func (m *RolloutPause) Reset() { *m = RolloutPause{} } func (*RolloutPause) ProtoMessage() {} func (*RolloutPause) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{57} + return fileDescriptor_e0e705f843545fab, []int{62} } func (m *RolloutPause) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1681,7 +1821,7 @@ var xxx_messageInfo_RolloutPause proto.InternalMessageInfo func (m *RolloutSpec) Reset() { *m = RolloutSpec{} } func (*RolloutSpec) ProtoMessage() {} func (*RolloutSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{58} + return fileDescriptor_e0e705f843545fab, []int{63} } func (m *RolloutSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1709,7 +1849,7 @@ var xxx_messageInfo_RolloutSpec proto.InternalMessageInfo func (m *RolloutStatus) Reset() { *m = RolloutStatus{} } func (*RolloutStatus) ProtoMessage() {} func (*RolloutStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{59} + return fileDescriptor_e0e705f843545fab, []int{64} } func (m *RolloutStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1737,7 +1877,7 @@ var xxx_messageInfo_RolloutStatus proto.InternalMessageInfo func (m *RolloutStrategy) Reset() { *m = RolloutStrategy{} } func (*RolloutStrategy) ProtoMessage() {} func (*RolloutStrategy) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{60} + return fileDescriptor_e0e705f843545fab, []int{65} } func (m *RolloutStrategy) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1765,7 +1905,7 @@ var xxx_messageInfo_RolloutStrategy proto.InternalMessageInfo func (m *RolloutTrafficRouting) Reset() { *m = RolloutTrafficRouting{} } func (*RolloutTrafficRouting) ProtoMessage() {} func (*RolloutTrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{61} + return fileDescriptor_e0e705f843545fab, []int{66} } func (m *RolloutTrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1793,7 +1933,7 @@ var xxx_messageInfo_RolloutTrafficRouting proto.InternalMessageInfo func (m *SMITrafficRouting) Reset() { *m = SMITrafficRouting{} } func (*SMITrafficRouting) ProtoMessage() {} func (*SMITrafficRouting) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{62} + return fileDescriptor_e0e705f843545fab, []int{67} } func (m *SMITrafficRouting) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1821,7 +1961,7 @@ var xxx_messageInfo_SMITrafficRouting proto.InternalMessageInfo func (m *ScopeDetail) Reset() { *m = ScopeDetail{} } func (*ScopeDetail) ProtoMessage() {} func (*ScopeDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{63} + return fileDescriptor_e0e705f843545fab, []int{68} } func (m *ScopeDetail) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1849,7 +1989,7 @@ var xxx_messageInfo_ScopeDetail proto.InternalMessageInfo func (m *SecretKeyRef) Reset() { *m = SecretKeyRef{} } func (*SecretKeyRef) ProtoMessage() {} func (*SecretKeyRef) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{64} + return fileDescriptor_e0e705f843545fab, []int{69} } func (m *SecretKeyRef) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1877,7 +2017,7 @@ var xxx_messageInfo_SecretKeyRef proto.InternalMessageInfo func (m *SetCanaryScale) Reset() { *m = SetCanaryScale{} } func (*SetCanaryScale) ProtoMessage() {} func (*SetCanaryScale) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{65} + return fileDescriptor_e0e705f843545fab, []int{70} } func (m *SetCanaryScale) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1905,7 +2045,7 @@ var xxx_messageInfo_SetCanaryScale proto.InternalMessageInfo func (m *TemplateSpec) Reset() { *m = TemplateSpec{} } func (*TemplateSpec) ProtoMessage() {} func (*TemplateSpec) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{66} + return fileDescriptor_e0e705f843545fab, []int{71} } func (m *TemplateSpec) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1933,7 +2073,7 @@ var xxx_messageInfo_TemplateSpec proto.InternalMessageInfo func (m *TemplateStatus) Reset() { *m = TemplateStatus{} } func (*TemplateStatus) ProtoMessage() {} func (*TemplateStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{67} + return fileDescriptor_e0e705f843545fab, []int{72} } func (m *TemplateStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1961,7 +2101,7 @@ var xxx_messageInfo_TemplateStatus proto.InternalMessageInfo func (m *ValueFrom) Reset() { *m = ValueFrom{} } func (*ValueFrom) ProtoMessage() {} func (*ValueFrom) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{68} + return fileDescriptor_e0e705f843545fab, []int{73} } func (m *ValueFrom) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1989,7 +2129,7 @@ var xxx_messageInfo_ValueFrom proto.InternalMessageInfo func (m *WavefrontMetric) Reset() { *m = WavefrontMetric{} } func (*WavefrontMetric) ProtoMessage() {} func (*WavefrontMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{69} + return fileDescriptor_e0e705f843545fab, []int{74} } func (m *WavefrontMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2017,7 +2157,7 @@ var xxx_messageInfo_WavefrontMetric proto.InternalMessageInfo func (m *WebMetric) Reset() { *m = WebMetric{} } func (*WebMetric) ProtoMessage() {} func (*WebMetric) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{70} + return fileDescriptor_e0e705f843545fab, []int{75} } func (m *WebMetric) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2045,7 +2185,7 @@ var xxx_messageInfo_WebMetric proto.InternalMessageInfo func (m *WebMetricHeader) Reset() { *m = WebMetricHeader{} } func (*WebMetricHeader) ProtoMessage() {} func (*WebMetricHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_e0e705f843545fab, []int{71} + return fileDescriptor_e0e705f843545fab, []int{76} } func (m *WebMetricHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2074,6 +2214,7 @@ func init() { proto.RegisterType((*ALBTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ALBTrafficRouting") proto.RegisterType((*AnalysisRun)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRun") proto.RegisterType((*AnalysisRunArgument)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunArgument") + proto.RegisterType((*AnalysisRunInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunInfo") proto.RegisterType((*AnalysisRunList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunList") proto.RegisterType((*AnalysisRunSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunSpec") proto.RegisterType((*AnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.AnalysisRunStatus") @@ -2095,6 +2236,7 @@ func init() { proto.RegisterType((*ExperimentAnalysisRunStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisRunStatus") proto.RegisterType((*ExperimentAnalysisTemplateRef)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentAnalysisTemplateRef") proto.RegisterType((*ExperimentCondition)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentCondition") + proto.RegisterType((*ExperimentInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentInfo") proto.RegisterType((*ExperimentList)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentList") proto.RegisterType((*ExperimentSpec)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentSpec") proto.RegisterType((*ExperimentStatus)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ExperimentStatus") @@ -2102,6 +2244,7 @@ func init() { proto.RegisterType((*IstioDestinationRule)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioDestinationRule") proto.RegisterType((*IstioTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioTrafficRouting") proto.RegisterType((*IstioVirtualService)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.IstioVirtualService") + proto.RegisterType((*JobInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobInfo") proto.RegisterType((*JobMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.JobMetric") proto.RegisterType((*KayentaMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaMetric") proto.RegisterType((*KayentaScope)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.KayentaScope") @@ -2115,11 +2258,13 @@ func init() { proto.RegisterType((*NginxTrafficRouting)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting") proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.NginxTrafficRouting.AdditionalIngressAnnotationsEntry") proto.RegisterType((*PauseCondition)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PauseCondition") + proto.RegisterType((*PodInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodInfo") proto.RegisterType((*PodTemplateMetadata)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata") proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata.AnnotationsEntry") proto.RegisterMapType((map[string]string)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PodTemplateMetadata.LabelsEntry") proto.RegisterType((*PreferredDuringSchedulingIgnoredDuringExecution)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PreferredDuringSchedulingIgnoredDuringExecution") proto.RegisterType((*PrometheusMetric)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.PrometheusMetric") + proto.RegisterType((*ReplicaSetInfo)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.ReplicaSetInfo") proto.RegisterType((*RequiredDuringSchedulingIgnoredDuringExecution)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RequiredDuringSchedulingIgnoredDuringExecution") proto.RegisterType((*Rollout)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.Rollout") proto.RegisterType((*RolloutAnalysis)(nil), "github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutAnalysis") @@ -2154,358 +2299,383 @@ func init() { } var fileDescriptor_e0e705f843545fab = []byte{ - // 5605 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x3d, 0x6d, 0x6c, 0x24, 0xc9, - 0x55, 0xd7, 0x33, 0x1e, 0x7b, 0xfc, 0xc6, 0x9f, 0xb5, 0xde, 0xec, 0x64, 0x6f, 0xd7, 0xb3, 0xe9, - 0x8b, 0x96, 0x0b, 0x24, 0x76, 0xb2, 0xb9, 0x83, 0x25, 0x17, 0x9d, 0x98, 0xb1, 0x77, 0x6f, 0xed, - 0xb3, 0x77, 0xbd, 0x35, 0xde, 0x5b, 0xe5, 0x92, 0x83, 0xb4, 0x67, 0xca, 0xe3, 0xde, 0xed, 0xe9, - 0x9e, 0x74, 0xf7, 0x78, 0xd7, 0x49, 0x94, 0x4f, 0x85, 0x04, 0x94, 0xe8, 0x8e, 0x8f, 0x3f, 0x08, - 0x81, 0x10, 0xe2, 0x07, 0x82, 0x3f, 0xfc, 0xc8, 0x1f, 0x24, 0x22, 0xa2, 0x00, 0xd2, 0xf1, 0x03, - 0x12, 0xfe, 0x70, 0x01, 0x29, 0x03, 0xe7, 0x20, 0x21, 0xf8, 0x83, 0x82, 0x22, 0x50, 0x56, 0xfc, - 0x40, 0xf5, 0xd9, 0x5d, 0x3d, 0x6d, 0x7b, 0x66, 0xa7, 0xbd, 0x44, 0xc0, 0x3f, 0xcf, 0x7b, 0xaf, - 0xde, 0xab, 0xaa, 0x7e, 0xf5, 0xde, 0xab, 0x7a, 0xaf, 0xca, 0xb0, 0xd1, 0xb2, 0xc3, 0xbd, 0xee, - 0xce, 0x52, 0xc3, 0x6b, 0x2f, 0x5b, 0x7e, 0xcb, 0xeb, 0xf8, 0xde, 0x3d, 0xf6, 0xc7, 0xfb, 0x7c, - 0xcf, 0x71, 0xbc, 0x6e, 0x18, 0x2c, 0x77, 0xee, 0xb7, 0x96, 0xad, 0x8e, 0x1d, 0x2c, 0x2b, 0xc8, - 0xfe, 0x07, 0x2c, 0xa7, 0xb3, 0x67, 0x7d, 0x60, 0xb9, 0x45, 0x5c, 0xe2, 0x5b, 0x21, 0x69, 0x2e, - 0x75, 0x7c, 0x2f, 0xf4, 0xd0, 0x87, 0x23, 0x6e, 0x4b, 0x92, 0x1b, 0xfb, 0xe3, 0x17, 0x64, 0xdb, - 0xa5, 0xce, 0xfd, 0xd6, 0x12, 0xe5, 0xb6, 0xa4, 0x20, 0x92, 0xdb, 0xf9, 0xf7, 0xc5, 0xfa, 0xd2, - 0xf2, 0x5a, 0xde, 0x32, 0x63, 0xba, 0xd3, 0xdd, 0x65, 0xbf, 0xd8, 0x0f, 0xf6, 0x17, 0x17, 0x76, - 0xfe, 0x99, 0xfb, 0x57, 0x83, 0x25, 0xdb, 0xa3, 0x7d, 0x5b, 0xde, 0xb1, 0xc2, 0xc6, 0xde, 0xf2, - 0x7e, 0x5f, 0x8f, 0xce, 0x9b, 0x31, 0xa2, 0x86, 0xe7, 0x93, 0x34, 0x9a, 0xe7, 0x22, 0x9a, 0xb6, - 0xd5, 0xd8, 0xb3, 0x5d, 0xe2, 0x1f, 0x44, 0xa3, 0x6e, 0x93, 0xd0, 0x4a, 0x6b, 0xb5, 0x7c, 0x54, - 0x2b, 0xbf, 0xeb, 0x86, 0x76, 0x9b, 0xf4, 0x35, 0xf8, 0xe9, 0x93, 0x1a, 0x04, 0x8d, 0x3d, 0xd2, - 0xb6, 0xfa, 0xda, 0x7d, 0xf0, 0xa8, 0x76, 0xdd, 0xd0, 0x76, 0x96, 0x6d, 0x37, 0x0c, 0x42, 0x3f, - 0xd9, 0xc8, 0xfc, 0x77, 0x03, 0xe6, 0xab, 0x1b, 0xb5, 0x6d, 0xdf, 0xda, 0xdd, 0xb5, 0x1b, 0xd8, - 0xeb, 0x86, 0xb6, 0xdb, 0x42, 0xef, 0x81, 0x09, 0xdb, 0x6d, 0xf9, 0x24, 0x08, 0xca, 0xc6, 0x25, - 0xe3, 0xd9, 0xc9, 0xda, 0xec, 0x9b, 0xbd, 0xca, 0x53, 0x87, 0xbd, 0xca, 0xc4, 0x1a, 0x07, 0x63, - 0x89, 0x47, 0xcf, 0x43, 0x29, 0x20, 0xfe, 0xbe, 0xdd, 0x20, 0x5b, 0x9e, 0x1f, 0x96, 0x73, 0x97, - 0x8c, 0x67, 0x0b, 0xb5, 0x33, 0x82, 0xbc, 0x54, 0x8f, 0x50, 0x38, 0x4e, 0x47, 0x9b, 0xf9, 0x9e, - 0x17, 0x0a, 0x7c, 0x39, 0xcf, 0xa4, 0xa8, 0x66, 0x38, 0x42, 0xe1, 0x38, 0x1d, 0x5a, 0x85, 0x39, - 0xcb, 0x75, 0xbd, 0xd0, 0x0a, 0x6d, 0xcf, 0xdd, 0xf2, 0xc9, 0xae, 0xfd, 0xb0, 0x3c, 0xc6, 0xda, - 0x96, 0x45, 0xdb, 0xb9, 0x6a, 0x02, 0x8f, 0xfb, 0x5a, 0x98, 0x7f, 0x97, 0x83, 0x52, 0xd5, 0xb5, - 0x9c, 0x83, 0xc0, 0x0e, 0x70, 0xd7, 0x45, 0x1f, 0x87, 0x22, 0xfd, 0x7a, 0x4d, 0x2b, 0xb4, 0xd8, - 0x78, 0x4b, 0x57, 0xde, 0xbf, 0xc4, 0x27, 0x73, 0x29, 0x3e, 0x99, 0x91, 0x4e, 0x52, 0xea, 0xa5, - 0xfd, 0x0f, 0x2c, 0xdd, 0xda, 0xb9, 0x47, 0x1a, 0xe1, 0x26, 0x09, 0xad, 0x1a, 0x12, 0xf2, 0x21, - 0x82, 0x61, 0xc5, 0x15, 0x79, 0x30, 0x16, 0x74, 0x48, 0x83, 0x4d, 0x4f, 0xe9, 0xca, 0xe6, 0xd2, - 0x28, 0xfa, 0xbf, 0x14, 0xeb, 0x7a, 0xbd, 0x43, 0x1a, 0xb5, 0x29, 0x21, 0x7a, 0x8c, 0xfe, 0xc2, - 0x4c, 0x10, 0x7a, 0x00, 0xe3, 0x41, 0x68, 0x85, 0xdd, 0x80, 0x4d, 0x6d, 0xe9, 0xca, 0xad, 0xec, - 0x44, 0x32, 0xb6, 0xb5, 0x19, 0x21, 0x74, 0x9c, 0xff, 0xc6, 0x42, 0x9c, 0xf9, 0xf7, 0x06, 0x9c, - 0x89, 0x51, 0x57, 0xfd, 0x56, 0xb7, 0x4d, 0xdc, 0x10, 0x5d, 0x82, 0x31, 0xd7, 0x6a, 0x13, 0xa1, - 0x4f, 0xaa, 0xcb, 0x37, 0xad, 0x36, 0xc1, 0x0c, 0x83, 0x9e, 0x81, 0xc2, 0xbe, 0xe5, 0x74, 0x09, - 0x9b, 0xa4, 0xc9, 0xda, 0xb4, 0x20, 0x29, 0xbc, 0x42, 0x81, 0x98, 0xe3, 0xd0, 0xa7, 0x61, 0x92, - 0xfd, 0x71, 0xdd, 0xf7, 0xda, 0x19, 0x0d, 0x4d, 0xf4, 0xf0, 0x15, 0xc9, 0xb6, 0x36, 0x7d, 0xd8, - 0xab, 0x4c, 0xaa, 0x9f, 0x38, 0x12, 0x68, 0xfe, 0x83, 0x01, 0xb3, 0xb1, 0xc1, 0x6d, 0xd8, 0x41, - 0x88, 0x3e, 0xd6, 0xa7, 0x3c, 0x4b, 0x83, 0x29, 0x0f, 0x6d, 0xcd, 0x54, 0x67, 0x4e, 0x8c, 0xb4, - 0x28, 0x21, 0x31, 0xc5, 0x71, 0xa1, 0x60, 0x87, 0xa4, 0x1d, 0x94, 0x73, 0x97, 0xf2, 0xcf, 0x96, - 0xae, 0xac, 0x65, 0xf6, 0x19, 0xa3, 0xf9, 0x5d, 0xa3, 0xfc, 0x31, 0x17, 0x63, 0xfe, 0x56, 0x4e, - 0x1b, 0x21, 0xd5, 0x28, 0xe4, 0xc1, 0x44, 0x9b, 0x84, 0xbe, 0xdd, 0xa0, 0xd6, 0x80, 0xf6, 0x62, - 0x75, 0xb4, 0x5e, 0x6c, 0x32, 0x66, 0x91, 0x4d, 0xe1, 0xbf, 0x03, 0x2c, 0xa5, 0xa0, 0x3d, 0x18, - 0xb3, 0xfc, 0x96, 0x1c, 0xf3, 0xf5, 0x6c, 0xbe, 0x6f, 0xa4, 0x73, 0x55, 0xbf, 0x15, 0x60, 0x26, - 0x01, 0x2d, 0xc3, 0x64, 0x48, 0xfc, 0xb6, 0xed, 0x5a, 0x21, 0x37, 0x42, 0xc5, 0xda, 0xbc, 0x20, - 0x9b, 0xdc, 0x96, 0x08, 0x1c, 0xd1, 0x98, 0x6f, 0xe5, 0x60, 0xbe, 0x6f, 0x31, 0xa0, 0xe7, 0xa0, - 0xd0, 0xd9, 0xb3, 0x02, 0xa9, 0xdd, 0x8b, 0x72, 0x6a, 0xb7, 0x28, 0xf0, 0x51, 0xaf, 0x32, 0x2d, - 0x9b, 0x30, 0x00, 0xe6, 0xc4, 0xd4, 0xca, 0xb6, 0x49, 0x10, 0x58, 0x2d, 0xa9, 0xf2, 0xb1, 0x19, - 0x61, 0x60, 0x2c, 0xf1, 0xe8, 0xcb, 0x06, 0x4c, 0xf3, 0xd9, 0xc1, 0x24, 0xe8, 0x3a, 0x21, 0x5d, - 0xd6, 0x74, 0x6e, 0xd6, 0xb3, 0xf8, 0x12, 0x9c, 0x65, 0xed, 0xac, 0x90, 0x3e, 0x1d, 0x87, 0x06, - 0x58, 0x97, 0x8b, 0xee, 0xc2, 0x64, 0x10, 0x5a, 0x7e, 0x48, 0x9a, 0xd5, 0x90, 0x99, 0xde, 0xd2, - 0x95, 0x9f, 0x1c, 0x4c, 0xdf, 0xb7, 0xed, 0x36, 0xe1, 0x6b, 0xab, 0x2e, 0x19, 0xe0, 0x88, 0x97, - 0xf9, 0xaf, 0x06, 0xcc, 0xc9, 0x69, 0xda, 0x26, 0xed, 0x8e, 0x63, 0x85, 0xe4, 0x09, 0x58, 0xe6, - 0x50, 0xb3, 0xcc, 0x38, 0x9b, 0xf5, 0x25, 0xfb, 0x7f, 0x94, 0x79, 0x36, 0xff, 0xc5, 0x80, 0x85, - 0x24, 0xf1, 0x13, 0xb0, 0x26, 0x81, 0x6e, 0x4d, 0x6e, 0x66, 0x3b, 0xda, 0x23, 0x4c, 0xca, 0x0f, - 0x52, 0xc6, 0xfa, 0xbf, 0xdc, 0xae, 0x98, 0xbf, 0x3f, 0x06, 0x53, 0x55, 0x37, 0xb4, 0xab, 0xbb, - 0xbb, 0xb6, 0x6b, 0x87, 0x07, 0xe8, 0xab, 0x39, 0x58, 0xee, 0xf8, 0x64, 0x97, 0xf8, 0x3e, 0x69, - 0xae, 0x76, 0x7d, 0xdb, 0x6d, 0xd5, 0x1b, 0x7b, 0xa4, 0xd9, 0x75, 0x6c, 0xb7, 0xb5, 0xd6, 0x72, - 0x3d, 0x05, 0xbe, 0xf6, 0x90, 0x34, 0xba, 0x34, 0x58, 0x11, 0xdf, 0xbf, 0x3d, 0x5a, 0x37, 0xb7, - 0x86, 0x13, 0x5a, 0xfb, 0xe0, 0x61, 0xaf, 0xb2, 0x3c, 0x64, 0x23, 0x3c, 0xec, 0xd0, 0xd0, 0x57, - 0x72, 0xb0, 0xe4, 0x93, 0x4f, 0x74, 0xed, 0xc1, 0x67, 0x83, 0x2f, 0x50, 0x67, 0xb4, 0xd9, 0xc0, - 0x43, 0xc9, 0xac, 0x5d, 0x39, 0xec, 0x55, 0x86, 0x6c, 0x83, 0x87, 0x1c, 0x97, 0xf9, 0x67, 0x06, - 0x14, 0x87, 0x88, 0x92, 0x2a, 0x7a, 0x94, 0x34, 0xd9, 0x17, 0x21, 0x85, 0xfd, 0x11, 0xd2, 0x4b, - 0xa3, 0x4d, 0xda, 0x20, 0x91, 0xd1, 0xbf, 0xd1, 0x7d, 0x44, 0x32, 0x92, 0x42, 0x7b, 0xb0, 0xd0, - 0xf1, 0x9a, 0x72, 0xd1, 0xdf, 0xb0, 0x82, 0x3d, 0x86, 0x13, 0xc3, 0x7b, 0xee, 0xb0, 0x57, 0x59, - 0xd8, 0x4a, 0xc1, 0x3f, 0xea, 0x55, 0xca, 0x8a, 0x49, 0x82, 0x00, 0xa7, 0x72, 0x44, 0x1d, 0x28, - 0xee, 0xda, 0xc4, 0x69, 0x62, 0xb2, 0x2b, 0x34, 0x65, 0xc4, 0xe5, 0x7d, 0x5d, 0x70, 0xab, 0x4d, - 0x51, 0x5b, 0x2a, 0x7f, 0x61, 0x25, 0xc5, 0xfc, 0xd1, 0x18, 0xcc, 0xd6, 0x9c, 0x2e, 0x79, 0xc9, - 0x27, 0x44, 0xc6, 0x01, 0x55, 0x98, 0xed, 0xf8, 0x64, 0xdf, 0x26, 0x0f, 0xea, 0xc4, 0x21, 0x8d, - 0xd0, 0xf3, 0xc5, 0x50, 0xcf, 0x89, 0x2f, 0x39, 0xbb, 0xa5, 0xa3, 0x71, 0x92, 0x1e, 0xbd, 0x08, - 0x33, 0x56, 0x23, 0xb4, 0xf7, 0x89, 0xe2, 0xc0, 0x3f, 0xf4, 0x3b, 0x04, 0x87, 0x99, 0xaa, 0x86, - 0xc5, 0x09, 0x6a, 0xf4, 0x31, 0x28, 0x07, 0x0d, 0xcb, 0x21, 0x77, 0x3a, 0x42, 0xd4, 0xca, 0x1e, - 0x69, 0xdc, 0xdf, 0xf2, 0x6c, 0x37, 0x14, 0x01, 0xce, 0x25, 0xc1, 0xa9, 0x5c, 0x3f, 0x82, 0x0e, - 0x1f, 0xc9, 0x01, 0xfd, 0xa9, 0x01, 0x17, 0x3b, 0x3e, 0xd9, 0xf2, 0xbd, 0xb6, 0x47, 0xb5, 0xb7, - 0x2f, 0x14, 0x12, 0x21, 0xc1, 0x2b, 0x23, 0x2e, 0x53, 0x0e, 0xe9, 0xdf, 0x75, 0xbc, 0xeb, 0xb0, - 0x57, 0xb9, 0xb8, 0x75, 0x5c, 0x07, 0xf0, 0xf1, 0xfd, 0x43, 0xdf, 0x32, 0x60, 0xb1, 0xe3, 0x05, - 0xe1, 0x31, 0x43, 0x28, 0x9c, 0xea, 0x10, 0xcc, 0xc3, 0x5e, 0x65, 0x71, 0xeb, 0xd8, 0x1e, 0xe0, - 0x13, 0x7a, 0x68, 0x7e, 0xa1, 0x04, 0xf3, 0x31, 0xdd, 0xa3, 0x1b, 0xfa, 0xd6, 0x01, 0x7a, 0x01, - 0xa6, 0xa5, 0x32, 0xf0, 0x5d, 0x35, 0xd7, 0x3d, 0x15, 0xd7, 0x55, 0xe3, 0x48, 0xac, 0xd3, 0x52, - 0xbd, 0x53, 0xaa, 0xc8, 0x5b, 0x27, 0xf4, 0x6e, 0x4b, 0xc3, 0xe2, 0x04, 0x35, 0x5a, 0x83, 0x33, - 0x02, 0x82, 0x49, 0xc7, 0xb1, 0x1b, 0xd6, 0x8a, 0xd7, 0x15, 0x2a, 0x57, 0xa8, 0x9d, 0x3b, 0xec, - 0x55, 0xce, 0x6c, 0xf5, 0xa3, 0x71, 0x5a, 0x1b, 0xb4, 0x01, 0x0b, 0x56, 0x37, 0xf4, 0xd4, 0xf8, - 0xaf, 0xb9, 0xd6, 0x8e, 0x43, 0x9a, 0x4c, 0xb5, 0x8a, 0xb5, 0x32, 0xb5, 0x1a, 0xd5, 0x14, 0x3c, - 0x4e, 0x6d, 0x85, 0xb6, 0x12, 0xdc, 0xea, 0xa4, 0xe1, 0xb9, 0x4d, 0xfe, 0x95, 0x0b, 0xb5, 0x0b, - 0x62, 0x78, 0x3a, 0x47, 0x41, 0x83, 0x53, 0x5b, 0x22, 0x07, 0x66, 0xda, 0xd6, 0xc3, 0x3b, 0xae, - 0xb5, 0x6f, 0xd9, 0x0e, 0x15, 0x52, 0x1e, 0x3f, 0x21, 0x34, 0xed, 0x86, 0xb6, 0xb3, 0xc4, 0x4f, - 0x60, 0x96, 0xd6, 0xdc, 0xf0, 0x96, 0x5f, 0x0f, 0xa9, 0x13, 0xa8, 0x21, 0x3a, 0xb1, 0x9b, 0x1a, - 0x2f, 0x9c, 0xe0, 0x8d, 0x6e, 0xc1, 0x59, 0xb6, 0x1c, 0x57, 0xbd, 0x07, 0xee, 0x2a, 0x71, 0xac, - 0x03, 0x39, 0x80, 0x09, 0x36, 0x80, 0x77, 0x1e, 0xf6, 0x2a, 0x67, 0xeb, 0x69, 0x04, 0x38, 0xbd, - 0x1d, 0xb2, 0xe0, 0x69, 0x1d, 0x81, 0xc9, 0xbe, 0x1d, 0xd8, 0x9e, 0xbb, 0x61, 0xb7, 0xed, 0xb0, - 0x5c, 0x64, 0x6c, 0x2b, 0x87, 0xbd, 0xca, 0xd3, 0xf5, 0xa3, 0xc9, 0xf0, 0x71, 0x3c, 0xd0, 0x6f, - 0x1a, 0xb0, 0x90, 0xb6, 0x0c, 0xcb, 0x93, 0x59, 0x9c, 0x7f, 0x24, 0x96, 0x16, 0xd7, 0x88, 0x54, - 0xa3, 0x90, 0xda, 0x09, 0xf4, 0x39, 0x03, 0xa6, 0xac, 0x58, 0x70, 0x56, 0x06, 0xd6, 0xab, 0xf5, - 0x51, 0xa3, 0xe1, 0x88, 0x63, 0x6d, 0xee, 0xb0, 0x57, 0xd1, 0x02, 0x40, 0xac, 0x49, 0x44, 0xbf, - 0x6d, 0xc0, 0xd9, 0xd4, 0x35, 0x5e, 0x2e, 0x9d, 0xc6, 0x0c, 0x31, 0x25, 0x49, 0xb7, 0x39, 0xe9, - 0xdd, 0x40, 0x6f, 0x18, 0xca, 0x95, 0x6d, 0xca, 0xfd, 0xc8, 0x14, 0xeb, 0xda, 0xed, 0x11, 0xe3, - 0xd1, 0xc8, 0x7b, 0x4b, 0xc6, 0xb5, 0x33, 0x31, 0xcf, 0x28, 0x81, 0x38, 0x29, 0x1e, 0x7d, 0xcd, - 0x90, 0xae, 0x51, 0xf5, 0x68, 0xfa, 0xb4, 0x7a, 0x84, 0x22, 0x4f, 0xab, 0x3a, 0x94, 0x10, 0x6e, - 0xfe, 0x73, 0x1e, 0xa6, 0x56, 0x2c, 0xd7, 0xf2, 0x0f, 0x84, 0x6b, 0xf9, 0x13, 0x03, 0x2e, 0x34, - 0xba, 0xbe, 0x4f, 0xdc, 0xb0, 0x1e, 0x92, 0x4e, 0xbf, 0x63, 0x31, 0x4e, 0xd5, 0xb1, 0x5c, 0x3a, - 0xec, 0x55, 0x2e, 0xac, 0x1c, 0x23, 0x1f, 0x1f, 0xdb, 0x3b, 0xf4, 0xd7, 0x06, 0x98, 0x82, 0xa0, - 0x66, 0x35, 0xee, 0xb7, 0x7c, 0xaf, 0xeb, 0x36, 0xfb, 0x07, 0x91, 0x3b, 0xd5, 0x41, 0x5c, 0x3e, - 0xec, 0x55, 0xcc, 0x95, 0x13, 0x7b, 0x81, 0x07, 0xe8, 0x29, 0x7a, 0x09, 0xe6, 0x05, 0xd5, 0xb5, - 0x87, 0x1d, 0xe2, 0xdb, 0x34, 0x36, 0x15, 0x27, 0xcd, 0xef, 0x14, 0x66, 0x7f, 0x7e, 0x25, 0x49, - 0x80, 0xfb, 0xdb, 0x98, 0x7f, 0x34, 0x06, 0x20, 0xbf, 0x34, 0xe9, 0xa0, 0x9f, 0x82, 0xc9, 0x80, - 0x84, 0x77, 0x89, 0xdd, 0xda, 0x0b, 0xd9, 0x37, 0x2d, 0x88, 0x63, 0x0d, 0x09, 0xc4, 0x11, 0x1e, - 0xdd, 0x87, 0x42, 0xc7, 0xea, 0x06, 0x44, 0xcc, 0xdb, 0x7a, 0x26, 0xf3, 0xb6, 0x45, 0x39, 0xf2, - 0xd8, 0x9f, 0xfd, 0x89, 0xb9, 0x0c, 0xf4, 0x45, 0x03, 0x80, 0xe8, 0x63, 0x2d, 0x5d, 0xa9, 0x67, - 0x22, 0x32, 0x9a, 0x0e, 0x3a, 0x07, 0xb5, 0x99, 0xc3, 0x5e, 0x05, 0x62, 0xb3, 0x16, 0x13, 0x8b, - 0x1e, 0x40, 0xd1, 0x92, 0xe6, 0x6c, 0xec, 0x34, 0xcc, 0x19, 0x0b, 0xc9, 0xd5, 0xf7, 0x56, 0xc2, - 0xd0, 0x57, 0x0c, 0x98, 0x09, 0x48, 0x28, 0x3e, 0x15, 0xf5, 0x4f, 0x22, 0x96, 0xdb, 0x18, 0x4d, - 0x7e, 0x5d, 0xe3, 0xc9, 0x8d, 0x83, 0x0e, 0xc3, 0x09, 0xb9, 0xe6, 0x7f, 0x15, 0x61, 0x46, 0xaa, - 0x4c, 0x14, 0x9e, 0x35, 0x38, 0x24, 0x3d, 0x3c, 0x5b, 0x89, 0x23, 0xb1, 0x4e, 0x4b, 0x1b, 0x07, - 0x21, 0x8d, 0x07, 0xf4, 0xe8, 0x4c, 0x35, 0xae, 0xc7, 0x91, 0x58, 0xa7, 0x45, 0x6d, 0x28, 0x04, - 0x21, 0xe9, 0xc8, 0x43, 0xc3, 0x1b, 0xa3, 0xcd, 0x46, 0xb4, 0x12, 0xa2, 0x03, 0x1f, 0xfa, 0x2b, - 0xc0, 0x5c, 0x0a, 0x7a, 0xdd, 0x80, 0x99, 0x50, 0x4b, 0x28, 0x09, 0x35, 0xc8, 0x46, 0x13, 0xf5, - 0x5c, 0x15, 0xff, 0x1a, 0x3a, 0x0c, 0x27, 0xc4, 0xa7, 0x44, 0x6c, 0x85, 0x53, 0x8c, 0xd8, 0x5e, - 0x85, 0x62, 0xdb, 0x7a, 0x58, 0xef, 0xfa, 0xad, 0xc7, 0x8f, 0x0c, 0x99, 0x8a, 0x6f, 0x0a, 0x2e, - 0x58, 0xf1, 0x43, 0x9f, 0x37, 0x62, 0x8b, 0x6b, 0x82, 0x31, 0xbf, 0x9b, 0xed, 0xe2, 0x52, 0x06, - 0xf5, 0xc8, 0x65, 0xd6, 0x17, 0x3f, 0x15, 0x9f, 0x78, 0xfc, 0x44, 0x63, 0x01, 0xbe, 0x40, 0x54, - 0x2c, 0x30, 0x79, 0xaa, 0xb1, 0xc0, 0x8a, 0x26, 0x0c, 0x27, 0x84, 0xb3, 0xfe, 0xf0, 0x35, 0xa7, - 0xfa, 0x03, 0xa7, 0xda, 0x9f, 0xba, 0x26, 0x0c, 0x27, 0x84, 0x9b, 0x3f, 0x30, 0xe0, 0xdc, 0x8a, - 0xd3, 0x0d, 0x42, 0xe2, 0xff, 0x9f, 0x39, 0x53, 0xff, 0x4f, 0x03, 0x9e, 0x3e, 0x62, 0xcc, 0x4f, - 0xe0, 0x68, 0xfd, 0x93, 0xfa, 0xd1, 0xfa, 0x9d, 0x11, 0x6d, 0x6c, 0xfa, 0x38, 0x8e, 0x38, 0x61, - 0x0f, 0x61, 0x7a, 0xd5, 0x0a, 0xad, 0xa6, 0xd7, 0xe2, 0x47, 0xde, 0xe8, 0x45, 0x28, 0xda, 0x6e, - 0x48, 0xfc, 0x7d, 0xcb, 0x11, 0x5e, 0xc6, 0x94, 0x5d, 0x5f, 0x13, 0xf0, 0x47, 0xbd, 0xca, 0xcc, - 0x6a, 0xd7, 0x67, 0x69, 0x71, 0x6e, 0x73, 0xb0, 0x6a, 0x83, 0x9e, 0x81, 0xc2, 0x27, 0xba, 0xc4, - 0x3f, 0x48, 0xa6, 0x62, 0x6f, 0x53, 0x20, 0xe6, 0x38, 0xf3, 0x6f, 0x73, 0x10, 0x8b, 0x00, 0x9e, - 0x80, 0x5a, 0xb9, 0x9a, 0x5a, 0x8d, 0xe8, 0xd3, 0x63, 0xf1, 0xcc, 0x51, 0x39, 0xf4, 0xfd, 0x44, - 0x0e, 0xfd, 0x66, 0x66, 0x12, 0x8f, 0x4f, 0xa1, 0xbf, 0x65, 0xc0, 0xd3, 0x11, 0x71, 0x7f, 0x5c, - 0x7b, 0xf2, 0x21, 0xf1, 0xf3, 0x50, 0xb2, 0xa2, 0x66, 0xe2, 0x2b, 0xaa, 0xea, 0x8a, 0x18, 0x47, - 0x1c, 0xa7, 0x8b, 0xd2, 0x98, 0xf9, 0xc7, 0x4c, 0x63, 0x8e, 0x1d, 0x9f, 0xc6, 0x34, 0x7f, 0x98, - 0x83, 0x8b, 0xfd, 0x23, 0x93, 0xda, 0x8d, 0xc9, 0xee, 0x00, 0x63, 0xbb, 0x0a, 0x53, 0xa1, 0x68, - 0x40, 0xa1, 0x62, 0x70, 0x0b, 0x82, 0x72, 0x6a, 0x3b, 0x86, 0xc3, 0x1a, 0x25, 0x6d, 0xd9, 0xe0, - 0xeb, 0xaa, 0xde, 0xf0, 0x3a, 0x32, 0xdf, 0xab, 0x5a, 0xae, 0xc4, 0x70, 0x58, 0xa3, 0x54, 0x89, - 0xa3, 0xb1, 0x53, 0x4f, 0x48, 0xd7, 0xe1, 0xac, 0xcc, 0x1f, 0x5c, 0xf7, 0xfc, 0x15, 0xaf, 0xdd, - 0x71, 0x08, 0x4b, 0x7f, 0x14, 0x58, 0x67, 0x2f, 0x8a, 0x26, 0x67, 0x71, 0x1a, 0x11, 0x4e, 0x6f, - 0x6b, 0xbe, 0x95, 0x87, 0x33, 0xd1, 0xb4, 0xaf, 0x78, 0x6e, 0xd3, 0x66, 0x59, 0x98, 0x17, 0x60, - 0x2c, 0x3c, 0xe8, 0xc8, 0xc9, 0xfe, 0x09, 0xd9, 0x9d, 0xed, 0x83, 0x0e, 0xfd, 0xda, 0xe7, 0x52, - 0x9a, 0x50, 0x14, 0x66, 0x8d, 0xd0, 0x86, 0x5a, 0x1d, 0xfc, 0x0b, 0x3c, 0xa7, 0x6b, 0xf3, 0xa3, - 0x5e, 0x25, 0xa5, 0xa6, 0x6a, 0x49, 0x71, 0xd2, 0x75, 0x1e, 0xdd, 0x83, 0x19, 0xc7, 0x0a, 0xc2, - 0x3b, 0x9d, 0xa6, 0x15, 0x92, 0x6d, 0xbb, 0x4d, 0xc4, 0x9a, 0x1b, 0x26, 0xb7, 0xac, 0x8e, 0x2a, - 0x37, 0x34, 0x4e, 0x38, 0xc1, 0x19, 0xed, 0x03, 0xa2, 0x90, 0x6d, 0xdf, 0x72, 0x03, 0x3e, 0x2a, - 0x2a, 0x6f, 0xf8, 0x5c, 0xf6, 0x79, 0x21, 0x0f, 0x6d, 0xf4, 0x71, 0xc3, 0x29, 0x12, 0xd0, 0x65, - 0x18, 0xf7, 0x89, 0x15, 0x88, 0x8f, 0x39, 0x19, 0xad, 0x7f, 0xcc, 0xa0, 0x58, 0x60, 0xe3, 0x0b, - 0x6a, 0xfc, 0x84, 0x05, 0xf5, 0x3d, 0x03, 0x66, 0xa2, 0xcf, 0xf4, 0x04, 0xdc, 0x5c, 0x5b, 0x77, - 0x73, 0x37, 0xb2, 0x32, 0x89, 0x47, 0x78, 0xb6, 0xb7, 0xf3, 0xf1, 0xf1, 0xb1, 0xac, 0xf1, 0xa7, - 0x60, 0x52, 0xae, 0x6a, 0x99, 0x37, 0x1e, 0x31, 0xf2, 0xd4, 0x22, 0x8b, 0x58, 0xf9, 0x87, 0x10, - 0x82, 0x23, 0x79, 0xd4, 0xb1, 0x36, 0x85, 0xd3, 0x14, 0x6a, 0xaf, 0x1c, 0xab, 0x74, 0xa6, 0x69, - 0x8e, 0x55, 0xb6, 0x41, 0x77, 0xe0, 0x5c, 0xc7, 0xf7, 0x58, 0xe5, 0xdc, 0x2a, 0xb1, 0x9a, 0x8e, - 0xed, 0x12, 0x79, 0x9c, 0xcb, 0x4f, 0xca, 0x9f, 0x3e, 0xec, 0x55, 0xce, 0x6d, 0xa5, 0x93, 0xe0, - 0xa3, 0xda, 0xea, 0x65, 0x2c, 0x63, 0x27, 0x97, 0xb1, 0xa0, 0x5f, 0x52, 0xdb, 0x08, 0x12, 0x94, - 0x0b, 0x6c, 0x12, 0x3f, 0x9a, 0xd5, 0xa7, 0x4c, 0x31, 0xeb, 0x91, 0x4a, 0x55, 0x85, 0x50, 0xac, - 0xc4, 0x9b, 0x5f, 0x2a, 0xc0, 0x5c, 0xd2, 0x37, 0x9e, 0x7e, 0x45, 0xcd, 0xaf, 0x1a, 0x30, 0x27, - 0xbf, 0x2b, 0x97, 0x49, 0xe4, 0xfe, 0x78, 0x23, 0x23, 0x75, 0xe2, 0x5e, 0x5e, 0x15, 0x26, 0x6e, - 0x27, 0xa4, 0xe1, 0x3e, 0xf9, 0xe8, 0x35, 0x28, 0xa9, 0x6d, 0xe4, 0x63, 0x95, 0xd7, 0xcc, 0x32, - 0xff, 0x1e, 0xb1, 0xc0, 0x71, 0x7e, 0xe8, 0x4b, 0x06, 0x40, 0x43, 0x1a, 0x60, 0xf9, 0xdd, 0x6f, - 0x67, 0xf5, 0xdd, 0x95, 0x69, 0x8f, 0xc2, 0x38, 0x05, 0x0a, 0x70, 0x4c, 0x30, 0xfa, 0x35, 0xb6, - 0x81, 0x54, 0x71, 0x47, 0x50, 0x1e, 0x67, 0x3d, 0xf9, 0x48, 0xd6, 0x1a, 0x18, 0x1d, 0x2b, 0x2a, - 0x27, 0x1f, 0x43, 0x05, 0x58, 0xeb, 0x84, 0xf9, 0x02, 0xa8, 0x34, 0x2f, 0x5d, 0x50, 0x2c, 0xd1, - 0xbb, 0x65, 0x85, 0x7b, 0x42, 0x05, 0xd5, 0x82, 0xba, 0x2e, 0x11, 0x38, 0xa2, 0x31, 0xff, 0xdc, - 0x80, 0x85, 0xb5, 0x20, 0xb4, 0xbd, 0x55, 0x12, 0x84, 0x74, 0x8d, 0x51, 0x77, 0xdc, 0x75, 0xc8, - 0x00, 0x01, 0xcd, 0x2a, 0xcc, 0x89, 0xb3, 0x9e, 0xee, 0x4e, 0x40, 0xc2, 0x58, 0x50, 0xa3, 0x54, - 0x67, 0x25, 0x81, 0xc7, 0x7d, 0x2d, 0x28, 0x17, 0x71, 0xe8, 0x13, 0x71, 0xc9, 0xeb, 0x5c, 0xea, - 0x09, 0x3c, 0xee, 0x6b, 0x61, 0x7e, 0x23, 0x07, 0x67, 0xd8, 0x30, 0x12, 0x05, 0xc1, 0xbf, 0x62, - 0xc0, 0xcc, 0xbe, 0xed, 0x87, 0x5d, 0xcb, 0x89, 0x9f, 0x5e, 0x8d, 0xac, 0x3d, 0x4c, 0xd6, 0x2b, - 0x1a, 0xe3, 0xc8, 0x8d, 0xeb, 0x70, 0x9c, 0xe8, 0x00, 0xed, 0xd3, 0x6c, 0x53, 0x9f, 0xed, 0x6c, - 0x76, 0x9c, 0x69, 0xdf, 0x91, 0xe7, 0x28, 0x12, 0x40, 0x9c, 0x94, 0x6f, 0x7e, 0x54, 0x4c, 0x9f, - 0xde, 0xf5, 0x01, 0x94, 0xc0, 0x84, 0x71, 0xdf, 0xeb, 0x52, 0x97, 0x46, 0x1d, 0xeb, 0x64, 0x0d, - 0x58, 0x5c, 0xc0, 0x20, 0x58, 0x60, 0xcc, 0x3f, 0x34, 0x60, 0x72, 0xdd, 0xdb, 0x11, 0x7b, 0xbc, - 0x9f, 0xcf, 0x60, 0xbf, 0xa5, 0xcc, 0xb2, 0x3a, 0x48, 0x88, 0x3c, 0xfd, 0x8b, 0xda, 0x6e, 0xeb, - 0x42, 0x8c, 0xf7, 0x12, 0xab, 0xa2, 0xa7, 0xac, 0xd6, 0xbd, 0x9d, 0x23, 0xb7, 0xe3, 0xbf, 0x5b, - 0x80, 0xe9, 0x97, 0xad, 0x03, 0xe2, 0x86, 0x96, 0xe8, 0xf1, 0x7b, 0x60, 0xc2, 0x6a, 0x36, 0xd3, - 0xaa, 0xca, 0xab, 0x1c, 0x8c, 0x25, 0x9e, 0x6d, 0x60, 0x3a, 0x2c, 0x25, 0x1c, 0x73, 0xb5, 0xd1, - 0x06, 0x26, 0x42, 0xe1, 0x38, 0x5d, 0xb4, 0x94, 0x56, 0x3c, 0x77, 0xd7, 0x6e, 0xa5, 0x2d, 0x82, - 0x95, 0x04, 0x1e, 0xf7, 0xb5, 0x40, 0xeb, 0x80, 0x44, 0xc5, 0x58, 0xb5, 0xd1, 0xf0, 0xba, 0x2e, - 0x5f, 0x4c, 0x7c, 0x6f, 0xa3, 0x62, 0xbe, 0xcd, 0x3e, 0x0a, 0x9c, 0xd2, 0x0a, 0x7d, 0x0c, 0xca, - 0x0d, 0xc6, 0x59, 0x44, 0x00, 0x71, 0x8e, 0x3c, 0x0a, 0x54, 0xe5, 0x18, 0x2b, 0x47, 0xd0, 0xe1, - 0x23, 0x39, 0xd0, 0x9e, 0x06, 0xa1, 0xe7, 0x5b, 0x2d, 0x12, 0xe7, 0x3b, 0xae, 0xf7, 0xb4, 0xde, - 0x47, 0x81, 0x53, 0x5a, 0xa1, 0xcf, 0xc2, 0x64, 0xb8, 0xe7, 0x93, 0x60, 0xcf, 0x73, 0x9a, 0xe2, - 0x64, 0x71, 0xc4, 0x0d, 0xaf, 0xf8, 0xfa, 0xdb, 0x92, 0x6b, 0x2c, 0x26, 0x91, 0x20, 0x1c, 0xc9, - 0x44, 0x3e, 0x8c, 0x07, 0x74, 0xb7, 0x15, 0x94, 0x8b, 0x59, 0x44, 0x75, 0x42, 0x3a, 0xdb, 0xc0, - 0xc5, 0xb6, 0xda, 0x4c, 0x02, 0x16, 0x92, 0xcc, 0xbf, 0xc8, 0xc1, 0x54, 0x9c, 0x70, 0x80, 0x95, - 0xfa, 0x45, 0x03, 0xa6, 0x1a, 0x9e, 0x1b, 0xfa, 0x9e, 0xc3, 0xb7, 0x91, 0x7c, 0x81, 0x8c, 0x58, - 0x99, 0xcd, 0x58, 0xad, 0x92, 0xd0, 0xb2, 0x9d, 0xd8, 0x8e, 0x34, 0x26, 0x06, 0x6b, 0x42, 0xd1, - 0x57, 0x0d, 0x98, 0x8d, 0x52, 0x2e, 0xd1, 0x7e, 0x36, 0xd3, 0x8e, 0xa8, 0xaa, 0xa5, 0x6b, 0xba, - 0x24, 0x9c, 0x14, 0x6d, 0xee, 0xc0, 0x5c, 0xf2, 0x6b, 0xd3, 0xa9, 0xec, 0x58, 0x62, 0xad, 0xe7, - 0xa3, 0xa9, 0xdc, 0xb2, 0x82, 0x00, 0x33, 0x0c, 0x7a, 0x2f, 0x14, 0xdb, 0x96, 0xdf, 0xb2, 0x5d, - 0xcb, 0x61, 0xb3, 0x98, 0x8f, 0x19, 0x24, 0x01, 0xc7, 0x8a, 0xc2, 0xfc, 0xfe, 0x18, 0x94, 0x36, - 0x89, 0x15, 0x74, 0x7d, 0xc2, 0x0e, 0x9c, 0x4e, 0x3d, 0x44, 0xd4, 0x4a, 0x9d, 0xf3, 0xd9, 0x95, - 0x3a, 0xa3, 0x57, 0x01, 0x76, 0x6d, 0xd7, 0x0e, 0xf6, 0x1e, 0xb3, 0x88, 0x9a, 0x25, 0xdf, 0xae, - 0x2b, 0x0e, 0x38, 0xc6, 0x2d, 0xba, 0x45, 0x51, 0x38, 0xe6, 0x16, 0xc5, 0x97, 0x8c, 0x98, 0xf3, - 0xe0, 0xc1, 0xd7, 0xdd, 0x51, 0x6b, 0x6f, 0xd5, 0x87, 0x59, 0x92, 0xce, 0xe4, 0x9a, 0x1b, 0xfa, - 0x07, 0xc7, 0xfa, 0x98, 0x6d, 0x28, 0xfa, 0x24, 0xe8, 0xb6, 0x69, 0xb0, 0x3b, 0x31, 0xf4, 0x34, - 0xb0, 0xfc, 0x04, 0x16, 0xed, 0xb1, 0xe2, 0x74, 0xfe, 0x05, 0x98, 0xd6, 0xba, 0x80, 0xe6, 0x20, - 0x7f, 0x9f, 0x1c, 0x70, 0x3d, 0xc1, 0xf4, 0x4f, 0xb4, 0xa0, 0x55, 0x51, 0x8a, 0x69, 0xf9, 0x50, - 0xee, 0xaa, 0x61, 0xfe, 0x70, 0x1c, 0xc6, 0x85, 0xbf, 0x3a, 0xd9, 0x16, 0xc4, 0xcf, 0x59, 0x73, - 0x8f, 0x71, 0xce, 0xba, 0x0e, 0x53, 0xb6, 0x6b, 0x87, 0xb6, 0xe5, 0xb0, 0x22, 0x1a, 0xe1, 0xab, - 0x2e, 0xcb, 0xf5, 0xbf, 0x16, 0xc3, 0xa5, 0xf0, 0xd1, 0xda, 0xa2, 0xdb, 0x50, 0x60, 0xc6, 0x5c, - 0xe8, 0xd3, 0xf0, 0x29, 0x27, 0x96, 0x4e, 0xe6, 0x65, 0x59, 0x9c, 0x13, 0x8b, 0x29, 0xbb, 0x8d, - 0x06, 0x09, 0x02, 0x15, 0xc8, 0x0b, 0xb5, 0x8a, 0x62, 0xca, 0x04, 0x1e, 0xf7, 0xb5, 0xa0, 0x5c, - 0x76, 0x2d, 0xdb, 0xe9, 0xfa, 0x24, 0xe2, 0x32, 0xae, 0x73, 0xb9, 0x9e, 0xc0, 0xe3, 0xbe, 0x16, - 0x68, 0x17, 0xa6, 0x04, 0x8c, 0x97, 0x29, 0x4d, 0x3c, 0xe6, 0x28, 0x59, 0x66, 0xe9, 0x7a, 0x8c, - 0x13, 0xd6, 0xf8, 0xa2, 0x2e, 0xcc, 0xdb, 0x6e, 0xc3, 0x73, 0x1b, 0x4e, 0x37, 0xb0, 0xf7, 0x49, - 0x54, 0x13, 0xf5, 0x38, 0xc2, 0xce, 0x1e, 0xf6, 0x2a, 0xf3, 0x6b, 0x49, 0x76, 0xb8, 0x5f, 0x02, - 0xfa, 0xbc, 0x01, 0x67, 0x1b, 0x9e, 0x1b, 0xb0, 0xaa, 0xe0, 0x7d, 0x72, 0xcd, 0xf7, 0x3d, 0x9f, - 0xcb, 0x9e, 0x7c, 0x4c, 0xd9, 0xac, 0xe6, 0x67, 0x25, 0x8d, 0x25, 0x4e, 0x97, 0x84, 0x3e, 0x09, - 0xc5, 0x8e, 0xef, 0xed, 0xdb, 0x4d, 0xe2, 0x8b, 0xec, 0xd5, 0x46, 0x16, 0x05, 0xf9, 0x5b, 0x82, - 0x67, 0x64, 0x09, 0x24, 0x04, 0x2b, 0x79, 0xe6, 0xd7, 0xc7, 0x61, 0x46, 0x27, 0x47, 0x9f, 0x01, - 0xe8, 0xf8, 0x5e, 0x9b, 0x84, 0x7b, 0x44, 0xd5, 0xce, 0xdc, 0x1c, 0xb5, 0x18, 0x5e, 0xf2, 0x13, - 0x77, 0x05, 0x98, 0x25, 0x8d, 0xa0, 0x38, 0x26, 0x11, 0xf9, 0x30, 0x71, 0x9f, 0xfb, 0x34, 0xe1, - 0xe2, 0x5f, 0xce, 0x24, 0x20, 0x11, 0x92, 0x4b, 0xd4, 0xe5, 0x08, 0x10, 0x96, 0x82, 0xd0, 0x0e, - 0xe4, 0x1f, 0x90, 0x9d, 0x6c, 0xca, 0xb6, 0xef, 0x12, 0xb1, 0x55, 0xa8, 0x4d, 0x1c, 0xf6, 0x2a, - 0xf9, 0xbb, 0x64, 0x07, 0x53, 0xe6, 0x74, 0x5c, 0x4d, 0x9e, 0x2d, 0x12, 0xa6, 0x62, 0xc4, 0x71, - 0x69, 0xa9, 0x27, 0x3e, 0x2e, 0x01, 0xc2, 0x52, 0x10, 0xfa, 0x24, 0x4c, 0x3e, 0xb0, 0xf6, 0xc9, - 0xae, 0xef, 0xb9, 0xa1, 0xc8, 0xbd, 0x8f, 0x58, 0x13, 0x72, 0x57, 0xb2, 0x13, 0x72, 0x99, 0xb7, - 0x55, 0x40, 0x1c, 0x89, 0x43, 0xfb, 0x50, 0x74, 0xc9, 0x03, 0x4c, 0x1c, 0xbb, 0x21, 0xd2, 0xf1, - 0x23, 0xaa, 0xf5, 0x4d, 0xc1, 0x4d, 0x48, 0x66, 0x6e, 0x48, 0xc2, 0xb0, 0x92, 0x45, 0xbf, 0xe5, - 0x3d, 0x6f, 0x47, 0x18, 0xaa, 0x11, 0xbf, 0xa5, 0xda, 0xf6, 0xf1, 0x6f, 0xb9, 0xee, 0xed, 0x60, - 0xca, 0xdc, 0xfc, 0xc6, 0x18, 0x4c, 0xc5, 0xaf, 0x6b, 0x0d, 0xe0, 0xb3, 0x54, 0xd8, 0x94, 0x1b, - 0x26, 0x6c, 0xa2, 0x51, 0x6f, 0x3b, 0xf2, 0xf1, 0xf2, 0xa8, 0x6c, 0x2d, 0xb3, 0xa8, 0x21, 0x8a, - 0x7a, 0x63, 0xc0, 0x00, 0x6b, 0x42, 0x87, 0x48, 0x35, 0xd1, 0x38, 0x88, 0xbb, 0x43, 0x5e, 0xe7, - 0xab, 0xe2, 0x20, 0xcd, 0xc1, 0x5d, 0x01, 0x10, 0xee, 0x6a, 0xb7, 0xeb, 0x30, 0xe5, 0x28, 0x44, - 0x87, 0x57, 0x75, 0x85, 0xc1, 0x31, 0x2a, 0x74, 0x19, 0xc6, 0xa9, 0xc3, 0x20, 0x4d, 0x51, 0x80, - 0xab, 0xb6, 0x16, 0xd7, 0x19, 0x14, 0x0b, 0x2c, 0xba, 0x4a, 0x7d, 0x7b, 0x64, 0xe6, 0x45, 0x5d, - 0xed, 0x42, 0xe4, 0xdb, 0x23, 0x1c, 0xd6, 0x28, 0x69, 0xd7, 0x09, 0xb5, 0xca, 0xcc, 0xf4, 0xc7, - 0xba, 0xce, 0x4c, 0x35, 0xe6, 0x38, 0xb6, 0xd5, 0x4d, 0x58, 0x71, 0x66, 0xb4, 0x0b, 0xb1, 0xad, - 0x6e, 0x02, 0x8f, 0xfb, 0x5a, 0x98, 0x1f, 0x87, 0x19, 0x5d, 0x9b, 0xe9, 0x14, 0x77, 0x7c, 0x6f, - 0xd7, 0x76, 0x48, 0x72, 0x93, 0xbe, 0xc5, 0xc1, 0x58, 0xe2, 0x07, 0xcb, 0x12, 0xff, 0x65, 0x1e, - 0xce, 0xdc, 0x6c, 0xd9, 0xee, 0xc3, 0xc4, 0x89, 0x52, 0xda, 0x4d, 0x6e, 0x63, 0xd8, 0x9b, 0xdc, - 0x51, 0x59, 0x94, 0xb8, 0x97, 0x9e, 0x5e, 0x16, 0x25, 0x2f, 0xad, 0xeb, 0xb4, 0xe8, 0x7b, 0x06, - 0x5c, 0xb0, 0x9a, 0x3c, 0xbe, 0xb0, 0x1c, 0x01, 0x8d, 0x84, 0x4a, 0x1d, 0x0f, 0x46, 0xb4, 0x16, - 0xfd, 0x83, 0x5f, 0xaa, 0x1e, 0x23, 0x95, 0x47, 0xcd, 0xef, 0x16, 0x23, 0xb8, 0x70, 0x1c, 0x29, - 0x3e, 0xb6, 0xfb, 0xe7, 0x6f, 0xc1, 0xbb, 0x4e, 0x14, 0x34, 0x54, 0x6c, 0xfc, 0x7b, 0x06, 0xcc, - 0xb0, 0x7a, 0xc3, 0x28, 0x2c, 0x7b, 0x5e, 0xe5, 0xb4, 0xf8, 0xc7, 0xbb, 0xa8, 0xe7, 0xb4, 0x1e, - 0xf5, 0x2a, 0x25, 0x5e, 0xa1, 0xa8, 0xa7, 0xb8, 0x3e, 0x2a, 0xb6, 0x56, 0x2c, 0xf3, 0x96, 0x1b, - 0x3a, 0xf2, 0x57, 0x07, 0x09, 0x75, 0xc9, 0x04, 0x47, 0xfc, 0xcc, 0xaf, 0xe7, 0xe1, 0x4c, 0x4a, - 0xe1, 0x0c, 0xdd, 0xf5, 0x8c, 0x3b, 0xd6, 0x0e, 0x71, 0x64, 0xde, 0xe8, 0xb5, 0xcc, 0x8b, 0x73, - 0x96, 0x36, 0x18, 0x7f, 0xfe, 0x0d, 0x95, 0x65, 0xe0, 0x40, 0x2c, 0x84, 0xa3, 0xdf, 0x30, 0xa0, - 0x64, 0xc5, 0xd4, 0x8c, 0xa7, 0xd2, 0x76, 0xb2, 0xef, 0x4c, 0x9f, 0x56, 0xc5, 0x4a, 0x00, 0x22, - 0x25, 0x8a, 0xf7, 0xe5, 0xfc, 0xcf, 0x42, 0x29, 0x36, 0x84, 0x61, 0xb4, 0xe3, 0xfc, 0x8b, 0x30, - 0x37, 0x92, 0x76, 0x7d, 0x04, 0x86, 0xbd, 0x77, 0x48, 0x6d, 0xf1, 0x83, 0x78, 0x19, 0xae, 0x9a, - 0x71, 0x51, 0x87, 0x2b, 0xb0, 0xe6, 0x0e, 0xcc, 0x25, 0x43, 0xbf, 0x61, 0x4e, 0x23, 0x07, 0x32, - 0x74, 0xef, 0x87, 0x21, 0x6f, 0x0a, 0x9a, 0x7f, 0x95, 0x83, 0x09, 0x51, 0x7d, 0xf7, 0x04, 0xaa, - 0x67, 0xee, 0x6b, 0xe7, 0xb9, 0x6b, 0x99, 0x14, 0x0d, 0x1e, 0x59, 0x3a, 0x13, 0x24, 0x4a, 0x67, - 0x5e, 0xce, 0x46, 0xdc, 0xf1, 0x75, 0x33, 0xaf, 0xe7, 0x60, 0x36, 0x51, 0xcd, 0x88, 0x7e, 0xd1, - 0xe8, 0x4f, 0x17, 0xdf, 0xc9, 0xb4, 0x60, 0x52, 0xd5, 0x66, 0x1d, 0x9f, 0x39, 0x0e, 0xb4, 0xbb, - 0xc7, 0xb7, 0x33, 0x7b, 0xc7, 0xe1, 0xd8, 0x6b, 0xc8, 0xff, 0x64, 0xc0, 0x3b, 0x8f, 0xac, 0xef, - 0x64, 0x77, 0x3c, 0x7c, 0x1d, 0x2b, 0x74, 0x2f, 0xe3, 0x7a, 0x6d, 0x75, 0x8e, 0x98, 0x2c, 0xfb, - 0x4f, 0x8a, 0x47, 0xcf, 0xc1, 0x14, 0xb3, 0xe3, 0x74, 0xf9, 0x84, 0xa4, 0x23, 0x9e, 0x93, 0x61, - 0x7b, 0xf6, 0x7a, 0x0c, 0x8e, 0x35, 0x2a, 0xf3, 0x77, 0x0c, 0x28, 0x1f, 0x75, 0xa3, 0x60, 0x80, - 0x88, 0xf8, 0x67, 0x12, 0x95, 0x2c, 0x95, 0xbe, 0x4a, 0x96, 0x44, 0x4c, 0x2c, 0x8b, 0x56, 0x62, - 0xe1, 0x68, 0xfe, 0x84, 0x42, 0x8d, 0xaf, 0x19, 0x70, 0xee, 0x08, 0xc5, 0xe9, 0xab, 0x68, 0x32, - 0x1e, 0xbb, 0xa2, 0x29, 0x37, 0x68, 0x45, 0x93, 0xf9, 0x37, 0x79, 0x98, 0x13, 0xfd, 0x89, 0x9c, - 0xf9, 0x55, 0xad, 0x1e, 0xe8, 0xdd, 0x89, 0x7a, 0xa0, 0x85, 0x24, 0xfd, 0xff, 0x17, 0x03, 0xfd, - 0x78, 0x15, 0x03, 0xfd, 0x28, 0x07, 0x67, 0x53, 0x6f, 0x6b, 0xa0, 0xaf, 0xa4, 0x58, 0xc1, 0xbb, - 0x19, 0x5f, 0x0b, 0x19, 0xd0, 0x0e, 0x8e, 0x5a, 0x41, 0xf3, 0xeb, 0xf1, 0xca, 0x15, 0x1e, 0xa0, - 0xef, 0x9e, 0xc2, 0x05, 0x97, 0x61, 0x8b, 0x58, 0x7e, 0x39, 0x0f, 0xcf, 0x0e, 0xca, 0xe8, 0xc7, - 0xb4, 0xc8, 0x31, 0xd0, 0x8a, 0x1c, 0x9f, 0x8c, 0x87, 0x3a, 0x9d, 0x7a, 0xc7, 0x2f, 0xe7, 0x95, - 0xdb, 0xeb, 0xd7, 0xcf, 0x81, 0x8e, 0xf5, 0x27, 0x68, 0x14, 0x23, 0xdf, 0x12, 0x88, 0x4c, 0xe1, - 0x44, 0x9d, 0x83, 0x1f, 0xf5, 0x2a, 0xf3, 0xe2, 0xca, 0x72, 0x9d, 0x84, 0x02, 0x88, 0x65, 0x23, - 0xf4, 0x2c, 0x14, 0x7d, 0x8e, 0x95, 0x65, 0x5d, 0x22, 0x55, 0xc1, 0x61, 0x58, 0x61, 0xd1, 0x67, - 0x63, 0x61, 0xdf, 0xd8, 0x69, 0x5d, 0x18, 0x38, 0x2e, 0x03, 0xf3, 0x1a, 0x14, 0x03, 0xf9, 0xd0, - 0x00, 0x3f, 0x97, 0xfb, 0xe0, 0x80, 0xd5, 0x82, 0x74, 0x97, 0x20, 0x5f, 0x1d, 0xe0, 0xe3, 0x53, - 0x6f, 0x12, 0x28, 0x96, 0xe6, 0x7f, 0x8c, 0x41, 0x49, 0x7c, 0x89, 0x35, 0x77, 0xd7, 0x7b, 0x02, - 0x61, 0xee, 0xe5, 0x84, 0x27, 0x3a, 0x22, 0x58, 0x1c, 0xc2, 0x77, 0x53, 0x85, 0xb1, 0x1b, 0x9e, - 0x2b, 0x8e, 0x9c, 0x94, 0xc2, 0xac, 0x35, 0x3c, 0x17, 0x33, 0x0c, 0x7a, 0x2f, 0x14, 0x03, 0x71, - 0xcd, 0x4b, 0x98, 0x73, 0x35, 0xe7, 0xf2, 0xfa, 0x17, 0x56, 0x14, 0x94, 0x5f, 0x40, 0x83, 0x9b, - 0x71, 0x9d, 0x1f, 0x0b, 0x6c, 0x18, 0x06, 0x2d, 0xc7, 0x6f, 0x18, 0x4e, 0xe8, 0xe5, 0x47, 0xa9, - 0xb7, 0x0c, 0xaf, 0xc2, 0x94, 0xd5, 0x08, 0xbb, 0x96, 0x23, 0xda, 0x14, 0x75, 0x7b, 0x51, 0x8d, - 0xe1, 0xb0, 0x46, 0x49, 0xf7, 0x36, 0x3e, 0xb1, 0x9a, 0x07, 0xc9, 0xc3, 0x26, 0x4c, 0x81, 0x98, - 0xe3, 0xe8, 0x64, 0x89, 0x5b, 0x91, 0xe2, 0x8c, 0x49, 0x4d, 0x96, 0xb8, 0x3f, 0x89, 0x25, 0x9e, - 0x92, 0x36, 0x49, 0x40, 0xd7, 0x24, 0xbb, 0xca, 0x1c, 0x23, 0x5d, 0xe5, 0x60, 0x2c, 0xf1, 0x94, - 0xb4, 0xcb, 0x1c, 0x71, 0x93, 0x5d, 0x2d, 0x8e, 0x91, 0x72, 0xff, 0xdc, 0xc4, 0x12, 0x4f, 0x27, - 0x24, 0xba, 0xbb, 0x35, 0xcd, 0x88, 0xd5, 0x84, 0xa8, 0x72, 0x37, 0x1c, 0xd1, 0x98, 0x6f, 0x19, - 0x4a, 0xf1, 0x9e, 0x40, 0x55, 0xec, 0x3d, 0xbd, 0x2a, 0xf6, 0x5a, 0x26, 0x0e, 0xe9, 0x88, 0x92, - 0xd8, 0x7b, 0x30, 0x15, 0xbf, 0x05, 0x8a, 0x5e, 0x8d, 0x39, 0x54, 0x63, 0x94, 0xdb, 0x66, 0xd2, - 0xe5, 0x46, 0xce, 0xd6, 0xfc, 0x76, 0x41, 0xcd, 0x22, 0xab, 0xbd, 0x8d, 0x1b, 0x36, 0xe3, 0x58, - 0xc3, 0x16, 0xb7, 0x2b, 0xb9, 0xcc, 0xed, 0x0a, 0xba, 0x0d, 0x45, 0xe9, 0xf5, 0x44, 0x6c, 0xf8, - 0x4c, 0xbc, 0x40, 0x89, 0x06, 0x98, 0x94, 0x59, 0xcc, 0x1a, 0xb2, 0xad, 0xaa, 0xfa, 0x86, 0xca, - 0x1b, 0x2b, 0x36, 0xa8, 0x0a, 0xb3, 0x6d, 0xdb, 0x65, 0x6a, 0x2f, 0x4b, 0x72, 0xc7, 0xf8, 0xe3, - 0x15, 0x72, 0xf7, 0xb2, 0xa9, 0xa3, 0x71, 0x92, 0x1e, 0x7d, 0x2a, 0x61, 0x06, 0xb2, 0xda, 0x48, - 0x49, 0x1b, 0x72, 0xac, 0x55, 0xd9, 0x80, 0x05, 0x5f, 0x3c, 0xc2, 0x70, 0xc3, 0x0e, 0x42, 0xcf, - 0x3f, 0xe0, 0xf9, 0x43, 0x7e, 0xaa, 0xcd, 0xde, 0x48, 0xc0, 0x29, 0x78, 0x9c, 0xda, 0x8a, 0x9a, - 0x51, 0x76, 0xa5, 0x98, 0x9f, 0x72, 0x17, 0x23, 0x33, 0xca, 0x94, 0xae, 0x89, 0x05, 0xf6, 0xb8, - 0x82, 0xe6, 0xe2, 0x08, 0x05, 0xcd, 0x77, 0x61, 0xd2, 0x27, 0x6c, 0x8f, 0x57, 0x95, 0x19, 0xd0, - 0xa1, 0x4b, 0x2f, 0xb0, 0x64, 0x80, 0x23, 0x5e, 0xe6, 0x1f, 0x4f, 0xc1, 0xb4, 0x76, 0x9a, 0x40, - 0x0d, 0xa0, 0xb5, 0xe3, 0xf9, 0xfc, 0x08, 0xa9, 0x18, 0x2d, 0xba, 0x2a, 0x05, 0x62, 0x8e, 0x43, - 0xaf, 0x1b, 0x30, 0xdb, 0xd1, 0x4e, 0x3e, 0xe5, 0x5a, 0x1f, 0x31, 0x97, 0xa4, 0x1f, 0xa7, 0xc6, - 0xde, 0x09, 0xd2, 0x85, 0xe1, 0xa4, 0x74, 0xaa, 0xae, 0xa2, 0x20, 0xc8, 0x21, 0x3e, 0xa3, 0x16, - 0xa1, 0x9e, 0x62, 0xb1, 0xa2, 0xa3, 0x71, 0x92, 0x9e, 0x4e, 0x32, 0x1b, 0xdd, 0x28, 0x4f, 0xf9, - 0x55, 0x25, 0x03, 0x1c, 0xf1, 0x42, 0x2f, 0xc2, 0x8c, 0x70, 0x07, 0x5b, 0x5e, 0xf3, 0x86, 0x15, - 0xec, 0x09, 0xa7, 0xa8, 0xf6, 0x64, 0x2b, 0x1a, 0x16, 0x27, 0xa8, 0xd9, 0xd8, 0xa2, 0x97, 0x0a, - 0x18, 0x83, 0x71, 0xfd, 0x19, 0xa5, 0x15, 0x1d, 0x8d, 0x93, 0xf4, 0xd4, 0x23, 0x2b, 0x4b, 0xc5, - 0xf3, 0x34, 0x6a, 0xed, 0xa4, 0x58, 0xab, 0x2a, 0xcc, 0x0a, 0x4f, 0x23, 0x91, 0x42, 0x7b, 0x95, - 0xc0, 0x3b, 0x3a, 0x1a, 0x27, 0xe9, 0xd1, 0x0b, 0x30, 0xcd, 0x7c, 0xa5, 0x62, 0xc0, 0xfd, 0xa9, - 0xca, 0x44, 0xe0, 0x38, 0x12, 0xeb, 0xb4, 0xe8, 0x25, 0x98, 0x8f, 0xae, 0x13, 0x4b, 0x06, 0xdc, - 0xd3, 0xaa, 0x97, 0x0a, 0xaa, 0x49, 0x02, 0xdc, 0xdf, 0x06, 0xfd, 0x1c, 0xcc, 0xc5, 0x66, 0x62, - 0xcd, 0x6d, 0x92, 0x87, 0xc2, 0x0d, 0x2f, 0xb0, 0x8c, 0x50, 0x02, 0x87, 0xfb, 0xa8, 0xd1, 0x87, - 0x60, 0xa6, 0xe1, 0x39, 0x0e, 0xb3, 0x08, 0xfc, 0x09, 0x1f, 0xee, 0x9b, 0xf9, 0x2d, 0x58, 0x0d, - 0x83, 0x13, 0x94, 0x68, 0x1d, 0x90, 0xb7, 0x13, 0x10, 0x7f, 0x9f, 0x34, 0x5f, 0xe2, 0xef, 0x0c, - 0x53, 0xa7, 0x34, 0xad, 0x97, 0x23, 0xde, 0xea, 0xa3, 0xc0, 0x29, 0xad, 0xd0, 0x17, 0xf4, 0x5a, - 0xf5, 0x99, 0x2c, 0x1e, 0x2c, 0x4c, 0x1e, 0x60, 0x9c, 0x58, 0xa8, 0xee, 0xc3, 0x38, 0xaf, 0x0e, - 0x2d, 0xcf, 0x66, 0x71, 0xc5, 0x39, 0xfe, 0x5a, 0x48, 0x64, 0x51, 0x39, 0x14, 0x0b, 0x49, 0xe8, - 0x33, 0x30, 0xb9, 0x23, 0x9f, 0x76, 0x2a, 0xcf, 0x65, 0xe1, 0x45, 0x12, 0xaf, 0x94, 0x45, 0x91, - 0x93, 0x42, 0xe0, 0x48, 0x24, 0xba, 0x0c, 0xa5, 0x1b, 0x5b, 0x55, 0xa5, 0x85, 0xf3, 0xec, 0xeb, - 0x8f, 0xd1, 0x26, 0x38, 0x8e, 0x60, 0x31, 0xaf, 0xf4, 0xf0, 0x28, 0x11, 0xf3, 0xf6, 0x3b, 0x6c, - 0x16, 0x21, 0x33, 0x55, 0xad, 0x97, 0xcf, 0x24, 0x23, 0x64, 0x0e, 0xc7, 0x8a, 0x02, 0xbd, 0x06, - 0x25, 0x61, 0xb2, 0x99, 0x6d, 0x5a, 0x78, 0xbc, 0x7b, 0x10, 0x38, 0x62, 0x81, 0xe3, 0xfc, 0xd0, - 0xf3, 0x50, 0xea, 0xb0, 0x17, 0x6f, 0xc8, 0xf5, 0xae, 0xe3, 0x94, 0xcf, 0x32, 0xbb, 0xa9, 0x72, - 0x23, 0x5b, 0x11, 0x0a, 0xc7, 0xe9, 0xcc, 0xcf, 0x47, 0xe7, 0xcb, 0xea, 0x51, 0x87, 0x4f, 0xc7, - 0xbf, 0x96, 0x91, 0xc5, 0x7b, 0xc4, 0x7d, 0xef, 0x7a, 0x71, 0x43, 0x9b, 0xfa, 0xad, 0x3a, 0x4a, - 0x3f, 0x33, 0xb9, 0x13, 0xab, 0x3f, 0x58, 0xc1, 0x6b, 0xd0, 0x75, 0xed, 0x34, 0xdf, 0xca, 0xab, - 0x33, 0xa6, 0x44, 0x42, 0xd7, 0x87, 0x82, 0x1d, 0x84, 0xb6, 0x97, 0xe1, 0xc5, 0x80, 0xc4, 0x4b, - 0x0f, 0xac, 0x40, 0x8d, 0x21, 0x30, 0x17, 0x45, 0x65, 0xba, 0x2d, 0xdb, 0x7d, 0x28, 0x86, 0x7f, - 0x3b, 0xf3, 0x4c, 0x2d, 0x97, 0xc9, 0x10, 0x98, 0x8b, 0x42, 0xf7, 0x20, 0x6f, 0x39, 0x3b, 0x19, - 0xbd, 0x3d, 0x9d, 0x7c, 0x79, 0x9d, 0x97, 0x77, 0x54, 0x37, 0x6a, 0x98, 0x0a, 0xa1, 0xb2, 0x82, - 0xb6, 0x2d, 0x7c, 0xf3, 0x88, 0xb2, 0xea, 0x9b, 0x6b, 0x69, 0xb2, 0xea, 0x9b, 0x6b, 0x98, 0x0a, - 0x31, 0xdf, 0x30, 0x60, 0xbe, 0x8f, 0x26, 0xf9, 0x4e, 0xbb, 0x31, 0xf8, 0x3b, 0xed, 0xe2, 0x09, - 0x8e, 0x7a, 0xc7, 0xb1, 0x53, 0xef, 0xb4, 0x6c, 0x27, 0xf0, 0xb8, 0xaf, 0x85, 0xf9, 0x4d, 0x03, - 0x4a, 0xb1, 0x7a, 0x64, 0x1a, 0xaa, 0xb1, 0xba, 0x6d, 0xd1, 0x8d, 0xe8, 0xf5, 0x11, 0x76, 0x9a, - 0xc5, 0x71, 0xfc, 0x60, 0xb5, 0x15, 0x1d, 0x2f, 0xc6, 0x0e, 0x56, 0x29, 0x14, 0x0b, 0xac, 0xda, - 0x85, 0xe7, 0xf5, 0xf2, 0xe4, 0xd8, 0x2e, 0x9c, 0x8a, 0xa3, 0x36, 0x43, 0x6c, 0xfc, 0x63, 0x8f, - 0x9d, 0x58, 0x34, 0x32, 0x64, 0x38, 0x74, 0x11, 0xf2, 0xc4, 0x6d, 0x8a, 0x00, 0xa7, 0x24, 0x48, - 0xf2, 0xd7, 0xdc, 0x26, 0xa6, 0x70, 0xf3, 0x16, 0x4c, 0xd5, 0x49, 0xc3, 0x27, 0xe1, 0xcb, 0xe4, - 0x60, 0xb0, 0xa3, 0xbf, 0x8b, 0x3c, 0x65, 0x9a, 0xd3, 0x19, 0xd2, 0xe6, 0x14, 0x6e, 0xfe, 0x81, - 0x01, 0x89, 0xb7, 0x67, 0x90, 0x99, 0xc8, 0x82, 0x42, 0x7f, 0x06, 0x54, 0xdb, 0xb9, 0xe5, 0x8e, - 0xdd, 0xb9, 0xad, 0x03, 0x6a, 0x5b, 0x61, 0x63, 0x4f, 0x7c, 0x1f, 0x71, 0xa0, 0xc0, 0x63, 0xcb, - 0xe8, 0xf6, 0x43, 0x1f, 0x05, 0x4e, 0x69, 0x65, 0x7e, 0x3b, 0x07, 0x53, 0xda, 0x93, 0xbf, 0x27, - 0x0f, 0x7f, 0xf0, 0x8e, 0xa6, 0x6c, 0xd8, 0xf2, 0x43, 0x6e, 0xd8, 0xe2, 0xbb, 0xd4, 0xb1, 0xd3, - 0xdd, 0xa5, 0x16, 0x32, 0xd9, 0xa5, 0x9a, 0xdf, 0x1a, 0x83, 0x19, 0xfd, 0x22, 0xe1, 0x00, 0x73, - 0xfa, 0xde, 0xbe, 0x39, 0x1d, 0x32, 0x18, 0xce, 0x8f, 0x1a, 0x0c, 0x8f, 0x8d, 0x1a, 0x0c, 0x17, - 0x1e, 0x23, 0x18, 0xee, 0x0f, 0x65, 0xc7, 0x07, 0x0e, 0x65, 0x3f, 0xac, 0x8e, 0x11, 0x27, 0xb4, - 0x13, 0xe0, 0x28, 0xa1, 0x85, 0xf4, 0xcf, 0xb0, 0xe2, 0x35, 0x53, 0x13, 0x83, 0xc5, 0x13, 0x0e, - 0x17, 0xfd, 0xd4, 0xfc, 0xd3, 0xf0, 0x5b, 0xde, 0x77, 0x0c, 0x9e, 0x7b, 0x32, 0x3f, 0x97, 0x83, - 0xe8, 0x15, 0x5f, 0xf6, 0x9c, 0x4f, 0x10, 0xb3, 0x51, 0xc2, 0x81, 0xaf, 0x8f, 0xfa, 0x66, 0x56, - 0xc4, 0x51, 0x24, 0x70, 0x63, 0x10, 0xac, 0x49, 0xfc, 0x1f, 0x78, 0xbd, 0xd7, 0x82, 0xd9, 0x44, - 0x05, 0x69, 0xe6, 0x05, 0x21, 0xdf, 0xcc, 0xc1, 0xa4, 0xaa, 0xc1, 0xa5, 0x66, 0xbd, 0xeb, 0xcb, - 0xd7, 0x58, 0x94, 0x59, 0xbf, 0x83, 0x37, 0x30, 0x85, 0xa3, 0x87, 0x30, 0xb1, 0x47, 0xac, 0x26, - 0xf1, 0xe5, 0xb9, 0xc2, 0x66, 0x46, 0xc5, 0xbf, 0x37, 0x18, 0xd7, 0x68, 0x2c, 0xfc, 0x77, 0x80, - 0xa5, 0x38, 0xba, 0x59, 0x0f, 0xed, 0x36, 0xa1, 0x41, 0x6d, 0xcc, 0x8a, 0xe6, 0xa3, 0xcd, 0xfa, - 0xb6, 0x86, 0xc5, 0x09, 0x6a, 0x6a, 0x5c, 0xee, 0x05, 0x9e, 0xcb, 0x6e, 0xca, 0x8e, 0xe9, 0x91, - 0xfd, 0x7a, 0xfd, 0xd6, 0x4d, 0x76, 0x51, 0x56, 0x51, 0x50, 0x6a, 0x9b, 0xd5, 0x20, 0xfa, 0x44, - 0xa4, 0x78, 0xe6, 0xa2, 0x1b, 0x13, 0x1c, 0x8e, 0x15, 0x85, 0x79, 0x07, 0x66, 0x13, 0x03, 0x91, - 0xee, 0xd1, 0x48, 0x77, 0x8f, 0x03, 0xfd, 0x13, 0x91, 0xda, 0xd2, 0x9b, 0x6f, 0x2f, 0x3e, 0xf5, - 0x9d, 0xb7, 0x17, 0x9f, 0xfa, 0xee, 0xdb, 0x8b, 0x4f, 0x7d, 0xee, 0x70, 0xd1, 0x78, 0xf3, 0x70, - 0xd1, 0xf8, 0xce, 0xe1, 0xa2, 0xf1, 0xdd, 0xc3, 0x45, 0xe3, 0x1f, 0x0f, 0x17, 0x8d, 0x37, 0xbe, - 0xbf, 0xf8, 0xd4, 0xab, 0x45, 0x39, 0x99, 0xff, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xd2, 0x9f, - 0xfa, 0xfd, 0x68, 0x00, 0x00, + // 6008 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x4d, 0x8c, 0x24, 0xc9, + 0x55, 0xff, 0x66, 0x7d, 0x74, 0x57, 0xbf, 0xea, 0xcf, 0x98, 0x19, 0x4f, 0x79, 0x76, 0x67, 0x6a, + 0x9d, 0x6b, 0xed, 0x7f, 0xfd, 0xc7, 0xee, 0xb6, 0xc7, 0xbb, 0xb0, 0x78, 0xad, 0x15, 0x55, 0x3d, + 0x5f, 0xdd, 0xdb, 0x33, 0xd3, 0x13, 0xd5, 0xb3, 0x23, 0xaf, 0xbd, 0xe0, 0xac, 0xaa, 0xe8, 0xea, + 0x9c, 0xc9, 0xca, 0x2c, 0x67, 0x66, 0xf5, 0x4c, 0xdb, 0x96, 0x3f, 0x65, 0x6c, 0x90, 0x2d, 0x1b, + 0xcc, 0x05, 0x21, 0x10, 0x42, 0x1c, 0xf8, 0xb8, 0x70, 0xf0, 0xc5, 0x12, 0x16, 0x96, 0x01, 0xc9, + 0x1c, 0xc0, 0xe6, 0xc2, 0x1a, 0x24, 0x37, 0x6c, 0x1b, 0x09, 0xc1, 0x05, 0x19, 0x59, 0x42, 0x5e, + 0x38, 0xa0, 0xf8, 0xc8, 0xc8, 0x88, 0xac, 0xac, 0xea, 0xaa, 0xa9, 0xec, 0xb1, 0x8d, 0xb9, 0x75, + 0xc7, 0x7b, 0xf1, 0x5e, 0x44, 0x64, 0x44, 0xbc, 0x5f, 0xbc, 0x78, 0x2f, 0x0a, 0xb6, 0x3a, 0x76, + 0xb8, 0xd7, 0x6f, 0xae, 0xb6, 0xbc, 0xee, 0x9a, 0xe5, 0x77, 0xbc, 0x9e, 0xef, 0xdd, 0x65, 0x7f, + 0xbc, 0xc3, 0xf7, 0x1c, 0xc7, 0xeb, 0x87, 0xc1, 0x5a, 0xef, 0x5e, 0x67, 0xcd, 0xea, 0xd9, 0xc1, + 0x9a, 0x2c, 0xd9, 0x7f, 0x97, 0xe5, 0xf4, 0xf6, 0xac, 0x77, 0xad, 0x75, 0x88, 0x4b, 0x7c, 0x2b, + 0x24, 0xed, 0xd5, 0x9e, 0xef, 0x85, 0x1e, 0x7a, 0x6f, 0x2c, 0x6d, 0x35, 0x92, 0xc6, 0xfe, 0xf8, + 0xa5, 0xa8, 0xee, 0x6a, 0xef, 0x5e, 0x67, 0x95, 0x4a, 0x5b, 0x95, 0x25, 0x91, 0xb4, 0x73, 0xef, + 0x50, 0xda, 0xd2, 0xf1, 0x3a, 0xde, 0x1a, 0x13, 0xda, 0xec, 0xef, 0xb2, 0xff, 0xd8, 0x3f, 0xec, + 0x2f, 0xae, 0xec, 0xdc, 0x53, 0xf7, 0x9e, 0x0f, 0x56, 0x6d, 0x8f, 0xb6, 0x6d, 0xad, 0x69, 0x85, + 0xad, 0xbd, 0xb5, 0xfd, 0x81, 0x16, 0x9d, 0x33, 0x15, 0xa6, 0x96, 0xe7, 0x93, 0x34, 0x9e, 0x67, + 0x63, 0x9e, 0xae, 0xd5, 0xda, 0xb3, 0x5d, 0xe2, 0x1f, 0xc4, 0xbd, 0xee, 0x92, 0xd0, 0x4a, 0xab, + 0xb5, 0x36, 0xac, 0x96, 0xdf, 0x77, 0x43, 0xbb, 0x4b, 0x06, 0x2a, 0xfc, 0xec, 0x71, 0x15, 0x82, + 0xd6, 0x1e, 0xe9, 0x5a, 0x03, 0xf5, 0xde, 0x3d, 0xac, 0x5e, 0x3f, 0xb4, 0x9d, 0x35, 0xdb, 0x0d, + 0x83, 0xd0, 0x4f, 0x56, 0x32, 0xff, 0xc3, 0x80, 0x95, 0xda, 0x56, 0x7d, 0xc7, 0xb7, 0x76, 0x77, + 0xed, 0x16, 0xf6, 0xfa, 0xa1, 0xed, 0x76, 0xd0, 0xdb, 0x60, 0xd6, 0x76, 0x3b, 0x3e, 0x09, 0x82, + 0x8a, 0xf1, 0xa4, 0xf1, 0xcc, 0x5c, 0x7d, 0xe9, 0x9b, 0x87, 0xd5, 0xc7, 0x8e, 0x0e, 0xab, 0xb3, + 0x1b, 0xbc, 0x18, 0x47, 0x74, 0xf4, 0x1c, 0x94, 0x03, 0xe2, 0xef, 0xdb, 0x2d, 0xb2, 0xed, 0xf9, + 0x61, 0x25, 0xf7, 0xa4, 0xf1, 0x4c, 0xb1, 0x7e, 0x4a, 0xb0, 0x97, 0x1b, 0x31, 0x09, 0xab, 0x7c, + 0xb4, 0x9a, 0xef, 0x79, 0xa1, 0xa0, 0x57, 0xf2, 0x4c, 0x8b, 0xac, 0x86, 0x63, 0x12, 0x56, 0xf9, + 0xd0, 0x25, 0x58, 0xb6, 0x5c, 0xd7, 0x0b, 0xad, 0xd0, 0xf6, 0xdc, 0x6d, 0x9f, 0xec, 0xda, 0x0f, + 0x2a, 0x05, 0x56, 0xb7, 0x22, 0xea, 0x2e, 0xd7, 0x12, 0x74, 0x3c, 0x50, 0xc3, 0xfc, 0xfb, 0x1c, + 0x94, 0x6b, 0xae, 0xe5, 0x1c, 0x04, 0x76, 0x80, 0xfb, 0x2e, 0xfa, 0x20, 0x94, 0xe8, 0xd7, 0x6b, + 0x5b, 0xa1, 0xc5, 0xfa, 0x5b, 0xbe, 0xf8, 0xce, 0x55, 0x3e, 0x98, 0xab, 0xea, 0x60, 0xc6, 0x73, + 0x92, 0x72, 0xaf, 0xee, 0xbf, 0x6b, 0xf5, 0x66, 0xf3, 0x2e, 0x69, 0x85, 0xd7, 0x49, 0x68, 0xd5, + 0x91, 0xd0, 0x0f, 0x71, 0x19, 0x96, 0x52, 0x91, 0x07, 0x85, 0xa0, 0x47, 0x5a, 0x6c, 0x78, 0xca, + 0x17, 0xaf, 0xaf, 0x4e, 0x33, 0xff, 0x57, 0x95, 0xa6, 0x37, 0x7a, 0xa4, 0x55, 0x9f, 0x17, 0xaa, + 0x0b, 0xf4, 0x3f, 0xcc, 0x14, 0xa1, 0xfb, 0x30, 0x13, 0x84, 0x56, 0xd8, 0x0f, 0xd8, 0xd0, 0x96, + 0x2f, 0xde, 0xcc, 0x4e, 0x25, 0x13, 0x5b, 0x5f, 0x14, 0x4a, 0x67, 0xf8, 0xff, 0x58, 0xa8, 0x33, + 0xff, 0xc1, 0x80, 0x53, 0x0a, 0x77, 0xcd, 0xef, 0xf4, 0xbb, 0xc4, 0x0d, 0xd1, 0x93, 0x50, 0x70, + 0xad, 0x2e, 0x11, 0xf3, 0x49, 0x36, 0xf9, 0x86, 0xd5, 0x25, 0x98, 0x51, 0xd0, 0x53, 0x50, 0xdc, + 0xb7, 0x9c, 0x3e, 0x61, 0x83, 0x34, 0x57, 0x5f, 0x10, 0x2c, 0xc5, 0x97, 0x69, 0x21, 0xe6, 0x34, + 0xf4, 0x51, 0x98, 0x63, 0x7f, 0x5c, 0xf1, 0xbd, 0x6e, 0x46, 0x5d, 0x13, 0x2d, 0x7c, 0x39, 0x12, + 0x5b, 0x5f, 0x38, 0x3a, 0xac, 0xce, 0xc9, 0x7f, 0x71, 0xac, 0xd0, 0xfc, 0x72, 0x01, 0x96, 0x94, + 0xce, 0x6d, 0xb8, 0xbb, 0x1e, 0x6a, 0x03, 0x78, 0xf2, 0x93, 0x67, 0x3a, 0x7d, 0x14, 0xb9, 0x74, + 0xf8, 0xec, 0x96, 0xe7, 0x8a, 0xb1, 0x91, 0xc3, 0xb7, 0xd1, 0xf2, 0x5c, 0xcc, 0x28, 0xe8, 0xed, + 0x50, 0xf2, 0xc9, 0xbe, 0x1d, 0xd8, 0x9e, 0xcb, 0x06, 0xa6, 0x58, 0x5f, 0x16, 0x5c, 0x25, 0x2c, + 0xca, 0xb1, 0xe4, 0x40, 0x4f, 0xcb, 0xf9, 0xc1, 0x97, 0xcf, 0x90, 0xcf, 0x89, 0x2e, 0x02, 0x04, + 0xfd, 0x56, 0x8b, 0x04, 0xc1, 0x6e, 0xdf, 0xa9, 0x14, 0x99, 0x5c, 0xd9, 0xd6, 0x86, 0xa4, 0x60, + 0x85, 0x8b, 0xca, 0xde, 0xb5, 0x6c, 0x87, 0xb4, 0x2b, 0x33, 0x8c, 0x5f, 0xca, 0xbe, 0xc2, 0x4a, + 0xb1, 0xa0, 0xa2, 0xe7, 0x61, 0xde, 0x76, 0x5b, 0x9e, 0xdb, 0x72, 0xfa, 0x81, 0xbd, 0x4f, 0x2a, + 0xb3, 0x8c, 0xfb, 0xb4, 0xe0, 0x9e, 0xdf, 0x50, 0x68, 0x58, 0xe3, 0xa4, 0x53, 0x85, 0xf8, 0xbe, + 0xe7, 0x57, 0x4a, 0xac, 0x8a, 0x9c, 0x2a, 0x97, 0x69, 0x21, 0xe6, 0x34, 0xd4, 0x81, 0xc2, 0x5d, + 0xaf, 0x19, 0x54, 0xe6, 0x9e, 0xcc, 0x3f, 0x53, 0xbe, 0x78, 0x79, 0xba, 0x59, 0xb2, 0xe9, 0x35, + 0xe9, 0xd7, 0x8e, 0x47, 0x7e, 0xd3, 0x6b, 0x06, 0x98, 0x29, 0x30, 0xff, 0xd1, 0xd0, 0x66, 0xc5, + 0x96, 0x1d, 0x84, 0xe8, 0x03, 0x03, 0x5b, 0xca, 0xea, 0x78, 0x73, 0x82, 0xd6, 0x66, 0x33, 0x42, + 0x7e, 0xbd, 0xa8, 0x44, 0xd9, 0x4e, 0x5c, 0x28, 0xda, 0x21, 0xe9, 0x06, 0x95, 0x1c, 0xeb, 0xdb, + 0x46, 0x66, 0x8b, 0x3b, 0x1e, 0xca, 0x0d, 0x2a, 0x1f, 0x73, 0x35, 0xe6, 0x6f, 0xe7, 0xb4, 0x1e, + 0xd2, 0x7d, 0x06, 0x79, 0x30, 0xdb, 0x25, 0xa1, 0x6f, 0xb7, 0xa8, 0x8d, 0xa0, 0xad, 0xb8, 0x34, + 0x5d, 0x2b, 0xae, 0x33, 0x61, 0xb1, 0xa5, 0xe1, 0xff, 0x07, 0x38, 0xd2, 0x82, 0xf6, 0xa0, 0x60, + 0xf9, 0x9d, 0xa8, 0xcf, 0x57, 0xb2, 0x59, 0xf5, 0xf1, 0x07, 0xad, 0xf9, 0x9d, 0x00, 0x33, 0x0d, + 0x68, 0x0d, 0xe6, 0x42, 0xe2, 0x77, 0x6d, 0xd7, 0x0a, 0xb9, 0x69, 0x2a, 0xd5, 0x57, 0x04, 0xdb, + 0xdc, 0x4e, 0x44, 0xc0, 0x31, 0x8f, 0xf9, 0x5a, 0x0e, 0x56, 0x06, 0xb6, 0x48, 0xf4, 0x2c, 0x14, + 0x7b, 0x7b, 0x56, 0x10, 0xed, 0x79, 0x17, 0xa2, 0xa1, 0xdd, 0xa6, 0x85, 0x6f, 0x1c, 0x56, 0x17, + 0xa2, 0x2a, 0xac, 0x00, 0x73, 0x66, 0x6a, 0x7b, 0xbb, 0x24, 0x08, 0xac, 0x4e, 0xb4, 0x11, 0x2a, + 0x23, 0xc2, 0x8a, 0x71, 0x44, 0x47, 0x9f, 0x35, 0x60, 0x81, 0x8f, 0x0e, 0x26, 0x41, 0xdf, 0x09, + 0xe9, 0x66, 0x4f, 0xc7, 0x66, 0x33, 0x8b, 0x2f, 0xc1, 0x45, 0xd6, 0xcf, 0x08, 0xed, 0x0b, 0x6a, + 0x69, 0x80, 0x75, 0xbd, 0xe8, 0x0e, 0xcc, 0x05, 0xa1, 0xe5, 0x87, 0xa4, 0x5d, 0x0b, 0xd9, 0x8e, + 0x52, 0xbe, 0xf8, 0xff, 0xc7, 0x9b, 0xef, 0x3b, 0x76, 0x97, 0xf0, 0x1d, 0xb7, 0x11, 0x09, 0xc0, + 0xb1, 0x2c, 0xf3, 0xdf, 0x0c, 0x58, 0x8e, 0x86, 0x69, 0x87, 0x74, 0x7b, 0x8e, 0x15, 0x92, 0x47, + 0x60, 0xaf, 0x43, 0xcd, 0x5e, 0xe3, 0x6c, 0xd6, 0x57, 0xd4, 0xfe, 0x61, 0x46, 0xdb, 0xfc, 0x57, + 0x03, 0x4e, 0x27, 0x99, 0x1f, 0xc1, 0x6e, 0x12, 0xe8, 0xbb, 0xc9, 0x8d, 0x6c, 0x7b, 0x3b, 0x64, + 0x4b, 0xf9, 0x7e, 0x4a, 0x5f, 0xff, 0x97, 0xef, 0x2b, 0xe6, 0x1f, 0x14, 0x60, 0xbe, 0xe6, 0x86, + 0x76, 0x6d, 0x77, 0xd7, 0x76, 0xed, 0xf0, 0x00, 0x7d, 0x3e, 0x07, 0x6b, 0x3d, 0x9f, 0xec, 0x12, + 0xdf, 0x27, 0xed, 0x4b, 0x7d, 0xdf, 0x76, 0x3b, 0x8d, 0xd6, 0x1e, 0x69, 0xf7, 0x1d, 0xdb, 0xed, + 0x6c, 0x74, 0x5c, 0x4f, 0x16, 0x5f, 0x7e, 0x40, 0x5a, 0x7d, 0x0a, 0x61, 0xc5, 0xf7, 0xef, 0x4e, + 0xd7, 0xcc, 0xed, 0xc9, 0x94, 0xd6, 0xdf, 0x7d, 0x74, 0x58, 0x5d, 0x9b, 0xb0, 0x12, 0x9e, 0xb4, + 0x6b, 0xe8, 0x73, 0x39, 0x58, 0xf5, 0xc9, 0x87, 0xfa, 0xf6, 0xf8, 0xa3, 0xc1, 0x17, 0xa8, 0x33, + 0xdd, 0x68, 0xe0, 0x89, 0x74, 0xd6, 0x2f, 0x1e, 0x1d, 0x56, 0x27, 0xac, 0x83, 0x27, 0xec, 0x97, + 0xf9, 0xe7, 0x06, 0x94, 0x26, 0xc0, 0xce, 0x55, 0x1d, 0x3b, 0xcf, 0x0d, 0xe0, 0xe6, 0x70, 0x10, + 0x37, 0x5f, 0x9d, 0x6e, 0xd0, 0xc6, 0xc1, 0xcb, 0xff, 0x4e, 0x4f, 0x97, 0x49, 0x7c, 0x8d, 0xf6, + 0xe0, 0x74, 0xcf, 0x6b, 0x47, 0x8b, 0xfe, 0x9a, 0x15, 0xec, 0x31, 0x9a, 0xe8, 0xde, 0xb3, 0x47, + 0x87, 0xd5, 0xd3, 0xdb, 0x29, 0xf4, 0x37, 0x0e, 0xab, 0x15, 0x29, 0x24, 0xc1, 0x80, 0x53, 0x25, + 0xa2, 0x1e, 0x94, 0x76, 0x6d, 0xe2, 0xb4, 0x31, 0xd9, 0x15, 0x33, 0x65, 0xca, 0xe5, 0x7d, 0x45, + 0x48, 0xab, 0xcf, 0xd3, 0xbd, 0x34, 0xfa, 0x0f, 0x4b, 0x2d, 0xe6, 0x0f, 0x0b, 0xb0, 0x54, 0x77, + 0xfa, 0xe4, 0xaa, 0x4f, 0x48, 0x84, 0x03, 0x6a, 0xb0, 0xd4, 0xa3, 0xc0, 0x9b, 0xdc, 0x6f, 0x10, + 0x87, 0xb4, 0x42, 0xcf, 0x17, 0x5d, 0x3d, 0x2b, 0xbe, 0xe4, 0xd2, 0xb6, 0x4e, 0xc6, 0x49, 0x7e, + 0xf4, 0x22, 0x2c, 0x5a, 0xad, 0xd0, 0xde, 0x27, 0x52, 0x02, 0xff, 0xd0, 0x6f, 0x12, 0x12, 0x16, + 0x6b, 0x1a, 0x15, 0x27, 0xb8, 0xd1, 0x07, 0xa0, 0x12, 0xb4, 0x2c, 0x87, 0xdc, 0xee, 0x09, 0x55, + 0xeb, 0x7b, 0xa4, 0x75, 0x6f, 0xdb, 0xb3, 0xdd, 0x50, 0x00, 0x9c, 0x27, 0x85, 0xa4, 0x4a, 0x63, + 0x08, 0x1f, 0x1e, 0x2a, 0x01, 0xfd, 0x99, 0x01, 0xe7, 0x7b, 0x3e, 0xd9, 0xf6, 0xbd, 0xae, 0x47, + 0x67, 0xef, 0x00, 0x14, 0x12, 0x90, 0xe0, 0xe5, 0x29, 0x97, 0x29, 0x2f, 0x19, 0x3c, 0x8b, 0xbe, + 0xe5, 0xe8, 0xb0, 0x7a, 0x7e, 0x7b, 0x54, 0x03, 0xf0, 0xe8, 0xf6, 0xa1, 0x6f, 0x18, 0x70, 0xa1, + 0xe7, 0x05, 0xe1, 0x88, 0x2e, 0x14, 0x4f, 0xb4, 0x0b, 0xe6, 0xd1, 0x61, 0xf5, 0xc2, 0xf6, 0xc8, + 0x16, 0xe0, 0x63, 0x5a, 0x68, 0x7e, 0xaa, 0x0c, 0x2b, 0xca, 0xdc, 0xf3, 0xad, 0x90, 0x74, 0x0e, + 0xd0, 0x0b, 0xb0, 0x10, 0x4d, 0x06, 0xee, 0x6b, 0xe1, 0x73, 0x4f, 0xe2, 0xba, 0x9a, 0x4a, 0xc4, + 0x3a, 0x2f, 0x9d, 0x77, 0x72, 0x2a, 0xf2, 0xda, 0x89, 0x79, 0xb7, 0xad, 0x51, 0x71, 0x82, 0x1b, + 0x6d, 0xc0, 0x29, 0x51, 0x82, 0x49, 0xcf, 0xb1, 0x5b, 0xd6, 0xba, 0xd7, 0x17, 0x53, 0xae, 0x58, + 0x3f, 0x7b, 0x74, 0x58, 0x3d, 0xb5, 0x3d, 0x48, 0xc6, 0x69, 0x75, 0xd0, 0x16, 0x9c, 0xb6, 0xfa, + 0xa1, 0x27, 0xfb, 0x7f, 0xd9, 0xb5, 0x9a, 0xf4, 0x8c, 0x59, 0x60, 0xd3, 0xb7, 0x42, 0x77, 0x8d, + 0x5a, 0x0a, 0x1d, 0xa7, 0xd6, 0x42, 0xdb, 0x09, 0x69, 0x0d, 0xd2, 0xf2, 0xdc, 0x76, 0x20, 0x4e, + 0xb8, 0x4f, 0x88, 0xee, 0xe9, 0x12, 0x05, 0x0f, 0x4e, 0xad, 0x89, 0x1c, 0x58, 0xec, 0x5a, 0x0f, + 0x6e, 0xbb, 0xd6, 0xbe, 0x65, 0x3b, 0x54, 0x09, 0x3b, 0xfd, 0x8e, 0x82, 0xa6, 0xfd, 0xd0, 0x76, + 0x56, 0xb9, 0x5f, 0x6e, 0x75, 0xc3, 0x0d, 0x6f, 0xfa, 0x8d, 0x90, 0x1a, 0x81, 0x3a, 0xa2, 0x03, + 0x7b, 0x5d, 0x93, 0x85, 0x13, 0xb2, 0xd1, 0x4d, 0x38, 0xc3, 0x96, 0xe3, 0x25, 0xef, 0xbe, 0x7b, + 0x89, 0x38, 0xd6, 0x41, 0xd4, 0x01, 0x7e, 0x88, 0x7e, 0xf3, 0xd1, 0x61, 0xf5, 0x4c, 0x23, 0x8d, + 0x01, 0xa7, 0xd7, 0x43, 0x16, 0x3c, 0xae, 0x13, 0x22, 0xa7, 0xc1, 0x96, 0xdd, 0xb5, 0x43, 0x71, + 0xd0, 0xae, 0x1e, 0x1d, 0x56, 0x1f, 0x6f, 0x0c, 0x67, 0xc3, 0xa3, 0x64, 0xa0, 0xdf, 0x32, 0xe0, + 0x74, 0xda, 0x32, 0xac, 0xcc, 0x65, 0xe1, 0x15, 0x4b, 0x2c, 0x2d, 0x3e, 0x23, 0x52, 0x37, 0x85, + 0xd4, 0x46, 0xa0, 0x4f, 0x18, 0x30, 0x6f, 0x29, 0xe0, 0xac, 0x02, 0xac, 0x55, 0x9b, 0xd3, 0xa2, + 0xe1, 0x58, 0x62, 0x7d, 0xf9, 0xe8, 0xb0, 0xaa, 0x01, 0x40, 0xac, 0x69, 0x44, 0xbf, 0x63, 0xc0, + 0x99, 0xd4, 0x35, 0x5e, 0x29, 0x9f, 0xc4, 0x08, 0xb1, 0x49, 0x92, 0xbe, 0xe7, 0xa4, 0x37, 0x03, + 0x7d, 0xc9, 0x90, 0xa6, 0xec, 0x7a, 0x74, 0x1e, 0x99, 0x67, 0x4d, 0xbb, 0x35, 0x25, 0x1e, 0x8d, + 0xad, 0x77, 0x24, 0xb8, 0x7e, 0x4a, 0xb1, 0x8c, 0x51, 0x21, 0x4e, 0xaa, 0x47, 0x5f, 0x30, 0x22, + 0xd3, 0x28, 0x5b, 0xb4, 0x70, 0x52, 0x2d, 0x42, 0xb1, 0xa5, 0x95, 0x0d, 0x4a, 0x28, 0x37, 0xff, + 0x25, 0x0f, 0xf3, 0xeb, 0x96, 0x6b, 0xf9, 0x07, 0xc2, 0xb4, 0xfc, 0xa9, 0x01, 0x4f, 0xb4, 0xfa, + 0xbe, 0x4f, 0xdc, 0xb0, 0x11, 0x92, 0xde, 0xa0, 0x61, 0x31, 0x4e, 0xd4, 0xb0, 0x3c, 0x79, 0x74, + 0x58, 0x7d, 0x62, 0x7d, 0x84, 0x7e, 0x3c, 0xb2, 0x75, 0xe8, 0x6f, 0x0c, 0x30, 0x05, 0x43, 0xdd, + 0x6a, 0xdd, 0xeb, 0xf8, 0x5e, 0xdf, 0x6d, 0x0f, 0x76, 0x22, 0x77, 0xa2, 0x9d, 0x78, 0xfa, 0xe8, + 0xb0, 0x6a, 0xae, 0x1f, 0xdb, 0x0a, 0x3c, 0x46, 0x4b, 0xd1, 0x55, 0x58, 0x11, 0x5c, 0x97, 0x1f, + 0xf4, 0x88, 0x6f, 0x53, 0x6c, 0x2a, 0xee, 0x1f, 0xde, 0x2c, 0xb6, 0xfd, 0x95, 0xf5, 0x24, 0x03, + 0x1e, 0xac, 0x63, 0xfe, 0x49, 0x01, 0x20, 0xfa, 0xd2, 0xa4, 0x87, 0x7e, 0x06, 0xe6, 0x02, 0x12, + 0xde, 0x21, 0x76, 0x67, 0x2f, 0x64, 0xdf, 0xb4, 0x28, 0xdc, 0x1a, 0x51, 0x21, 0x8e, 0xe9, 0xe8, + 0x1e, 0x14, 0x7b, 0x56, 0x3f, 0x20, 0x62, 0xdc, 0x36, 0x33, 0x19, 0xb7, 0x6d, 0x2a, 0x91, 0x63, + 0x7f, 0xf6, 0x27, 0xe6, 0x3a, 0xd0, 0xa7, 0x0d, 0x00, 0xa2, 0xf7, 0xb5, 0x7c, 0xb1, 0x91, 0x89, + 0xca, 0x78, 0x38, 0xe8, 0x18, 0xd4, 0x17, 0x8f, 0x0e, 0xab, 0xa0, 0x8c, 0x9a, 0xa2, 0x16, 0xdd, + 0x87, 0x92, 0x15, 0x6d, 0x67, 0x85, 0x93, 0xd8, 0xce, 0x18, 0x24, 0x97, 0xdf, 0x5b, 0x2a, 0x43, + 0x9f, 0x33, 0x60, 0x31, 0x20, 0xa1, 0xf8, 0x54, 0xd4, 0x3e, 0x09, 0x2c, 0xb7, 0x35, 0x9d, 0xfe, + 0x86, 0x26, 0x93, 0x6f, 0x0e, 0x7a, 0x19, 0x4e, 0xe8, 0x35, 0xff, 0xbb, 0x04, 0x8b, 0xd1, 0x94, + 0x89, 0xe1, 0x59, 0x8b, 0x97, 0xa4, 0xc3, 0xb3, 0x75, 0x95, 0x88, 0x75, 0x5e, 0x5a, 0x39, 0x08, + 0x29, 0x1e, 0xd0, 0xd1, 0x99, 0xac, 0xdc, 0x50, 0x89, 0x58, 0xe7, 0x45, 0x5d, 0x28, 0x06, 0x21, + 0xe9, 0x45, 0x4e, 0xc3, 0x6b, 0xd3, 0x8d, 0x46, 0xbc, 0x12, 0x62, 0x87, 0x0f, 0xfd, 0x2f, 0xc0, + 0x5c, 0x0b, 0xfa, 0xa2, 0x01, 0x8b, 0xa1, 0x76, 0xcd, 0x28, 0xa6, 0x41, 0x36, 0x33, 0x51, 0xbf, + 0xc1, 0xe4, 0x5f, 0x43, 0x2f, 0xc3, 0x09, 0xf5, 0x29, 0x88, 0xad, 0x78, 0x82, 0x88, 0xed, 0x15, + 0x28, 0x75, 0xad, 0x07, 0x8d, 0xbe, 0xdf, 0x79, 0x78, 0x64, 0xc8, 0xa6, 0xf8, 0x75, 0x21, 0x05, + 0x4b, 0x79, 0xe8, 0x93, 0x86, 0xb2, 0xb8, 0x66, 0x99, 0xf0, 0x3b, 0xd9, 0x2e, 0x2e, 0xb9, 0xa1, + 0x0e, 0x5d, 0x66, 0x03, 0xf8, 0xa9, 0xf4, 0xc8, 0xf1, 0x13, 0xc5, 0x02, 0x7c, 0x81, 0x48, 0x2c, + 0x30, 0x77, 0xa2, 0x58, 0x60, 0x5d, 0x53, 0x86, 0x13, 0xca, 0x59, 0x7b, 0xf8, 0x9a, 0x93, 0xed, + 0x81, 0x13, 0x6d, 0x4f, 0x43, 0x53, 0x86, 0x13, 0xca, 0xcd, 0xef, 0x1b, 0x70, 0x76, 0xdd, 0xe9, + 0x07, 0x21, 0xf1, 0x7f, 0x6a, 0x7c, 0xea, 0xff, 0x69, 0xc0, 0xe3, 0x43, 0xfa, 0xfc, 0x08, 0x5c, + 0xeb, 0x1f, 0xd6, 0x5d, 0xeb, 0xb7, 0xa7, 0xdc, 0x63, 0xd3, 0xfb, 0x31, 0xc4, 0xc3, 0x1e, 0xc2, + 0xc2, 0x25, 0x2b, 0xb4, 0xda, 0x5e, 0x87, 0xbb, 0xbc, 0xd1, 0x8b, 0x50, 0xb2, 0xdd, 0x90, 0xf8, + 0xfb, 0x96, 0x23, 0xac, 0x8c, 0x19, 0x35, 0x7d, 0x43, 0x94, 0xbf, 0x71, 0x58, 0x5d, 0xbc, 0xd4, + 0xf7, 0x59, 0xb0, 0x04, 0xdf, 0x73, 0xb0, 0xac, 0x83, 0x9e, 0x82, 0xe2, 0x87, 0xfa, 0xc4, 0x3f, + 0x48, 0x5e, 0xd0, 0xdf, 0xa2, 0x85, 0x98, 0xd3, 0xcc, 0xbf, 0xcb, 0x81, 0x82, 0x00, 0x1e, 0xc1, + 0xb4, 0x72, 0xb5, 0x69, 0x35, 0xa5, 0x4d, 0x57, 0xf0, 0xcc, 0xb0, 0xc8, 0x8a, 0xfd, 0x44, 0x64, + 0xc5, 0x8d, 0xcc, 0x34, 0x8e, 0x0e, 0xac, 0x78, 0xcd, 0x80, 0xc7, 0x63, 0xe6, 0x41, 0x5c, 0x7b, + 0xbc, 0x93, 0xf8, 0x39, 0x28, 0x5b, 0x71, 0x35, 0xf1, 0x15, 0x65, 0xcc, 0x8d, 0x22, 0x11, 0xab, + 0x7c, 0xf1, 0x35, 0x66, 0xfe, 0x21, 0xaf, 0x31, 0x0b, 0xa3, 0xaf, 0x31, 0xcd, 0x1f, 0xe4, 0xe0, + 0xfc, 0x60, 0xcf, 0xa2, 0xd9, 0x8d, 0xc9, 0xee, 0x18, 0x7d, 0x7b, 0x1e, 0xe6, 0x43, 0x51, 0x81, + 0x96, 0x8a, 0xce, 0xc9, 0x58, 0x82, 0x1d, 0x85, 0x86, 0x35, 0x4e, 0x5a, 0xb3, 0xc5, 0xd7, 0x55, + 0xa3, 0xe5, 0xf5, 0xa2, 0xfb, 0x5e, 0x59, 0x73, 0x5d, 0xa1, 0x61, 0x8d, 0x53, 0x5e, 0x1c, 0x15, + 0x4e, 0xfc, 0x42, 0xba, 0x01, 0x67, 0xa2, 0xfb, 0x83, 0x2b, 0x9e, 0xbf, 0xee, 0x75, 0x7b, 0x0e, + 0x61, 0xd7, 0x1f, 0x45, 0xd6, 0xd8, 0xf3, 0xa2, 0xca, 0x19, 0x9c, 0xc6, 0x84, 0xd3, 0xeb, 0x9a, + 0xaf, 0xe5, 0xe1, 0x54, 0x3c, 0xec, 0xeb, 0x9e, 0xdb, 0xb6, 0xd9, 0x2d, 0xcc, 0x0b, 0x50, 0x08, + 0x0f, 0x7a, 0xd1, 0x60, 0xff, 0xbf, 0xa8, 0x39, 0x3b, 0x07, 0x3d, 0xfa, 0xb5, 0xcf, 0xa6, 0x54, + 0xa1, 0x24, 0xcc, 0x2a, 0xa1, 0x2d, 0xb9, 0x3a, 0xf8, 0x17, 0x78, 0x56, 0x9f, 0xcd, 0x6f, 0x1c, + 0x56, 0x53, 0x22, 0xed, 0x56, 0xa5, 0xa4, 0x44, 0xf4, 0xc9, 0x5d, 0x58, 0x74, 0xac, 0x20, 0xbc, + 0xdd, 0x6b, 0x5b, 0x21, 0xd9, 0xb1, 0xbb, 0x44, 0xac, 0xb9, 0x49, 0xee, 0x96, 0xa5, 0xab, 0x72, + 0x4b, 0x93, 0x84, 0x13, 0x92, 0xd1, 0x3e, 0x20, 0x5a, 0xb2, 0xe3, 0x5b, 0x6e, 0xc0, 0x7b, 0x45, + 0xf5, 0x4d, 0x7e, 0x97, 0x7d, 0x4e, 0xe8, 0x43, 0x5b, 0x03, 0xd2, 0x70, 0x8a, 0x06, 0xf4, 0x34, + 0xcc, 0xf8, 0xc4, 0x0a, 0xc4, 0xc7, 0x54, 0x22, 0x71, 0x30, 0x2b, 0xc5, 0x82, 0xaa, 0x2e, 0xa8, + 0x99, 0x63, 0x16, 0xd4, 0x1f, 0x16, 0x60, 0x31, 0xfe, 0x4c, 0x3f, 0x05, 0x51, 0x4a, 0xca, 0xd8, + 0x14, 0x8f, 0x89, 0x99, 0xf8, 0xb4, 0x01, 0x65, 0x9f, 0xfb, 0x95, 0x1b, 0x24, 0x0c, 0x2a, 0x33, + 0x6c, 0xf1, 0x6e, 0x4d, 0x7b, 0x81, 0x18, 0x09, 0x64, 0x41, 0x42, 0x71, 0x1c, 0x63, 0xac, 0x08, + 0xab, 0x5a, 0xd1, 0x67, 0x19, 0x58, 0x96, 0x7b, 0x2c, 0x05, 0xed, 0xf9, 0x4c, 0x03, 0x03, 0x59, + 0x3b, 0xe4, 0x26, 0xa6, 0x10, 0x02, 0xac, 0x29, 0x36, 0xbf, 0x6b, 0xa8, 0x73, 0xe5, 0x11, 0x40, + 0xa2, 0xae, 0x0e, 0x89, 0xae, 0x65, 0x65, 0x3e, 0x87, 0xa0, 0xa0, 0xd7, 0xf3, 0x6a, 0xff, 0x58, + 0x84, 0xc1, 0x47, 0x60, 0x2e, 0xb2, 0x00, 0x51, 0x8c, 0xc1, 0x94, 0xa7, 0x14, 0x0d, 0x85, 0x2a, + 0xa1, 0x42, 0x42, 0x09, 0x8e, 0xf5, 0x51, 0x10, 0xd6, 0x16, 0x00, 0x4b, 0x2c, 0x13, 0x09, 0xc2, + 0x22, 0xe0, 0x95, 0x06, 0xc2, 0xa2, 0x3a, 0xe8, 0x36, 0x9c, 0xed, 0xf9, 0x1e, 0x8b, 0xbd, 0xbd, + 0x44, 0xac, 0xb6, 0x63, 0xbb, 0x24, 0x72, 0xfd, 0xf3, 0xf5, 0xf4, 0xf8, 0xd1, 0x61, 0xf5, 0xec, + 0x76, 0x3a, 0x0b, 0x1e, 0x56, 0x57, 0x0f, 0x79, 0x2a, 0x1c, 0x1f, 0xf2, 0x84, 0x7e, 0x45, 0x1e, + 0x39, 0x49, 0x50, 0x29, 0xb2, 0x41, 0x7c, 0x7f, 0x56, 0x9f, 0x32, 0x05, 0x02, 0xc4, 0x53, 0xaa, + 0x26, 0x94, 0x62, 0xa9, 0xde, 0xfc, 0x4c, 0x11, 0x96, 0x93, 0x38, 0xea, 0xe4, 0xa3, 0xaf, 0x7e, + 0xdd, 0x80, 0xe5, 0xe8, 0xbb, 0x72, 0x9d, 0x24, 0xf2, 0xa5, 0x6c, 0x65, 0x34, 0x9d, 0x38, 0x22, + 0x94, 0xa1, 0xcd, 0x3b, 0x09, 0x6d, 0x78, 0x40, 0x3f, 0x7a, 0x15, 0xca, 0xd2, 0xe5, 0xf0, 0x50, + 0xa1, 0x58, 0x4b, 0x0c, 0x0b, 0xc6, 0x22, 0xb0, 0x2a, 0x0f, 0x7d, 0xc6, 0x00, 0x68, 0x45, 0xc6, + 0x3a, 0xfa, 0xee, 0xb7, 0xb2, 0xfa, 0xee, 0x12, 0x06, 0xc4, 0x86, 0x46, 0x16, 0x05, 0x58, 0x51, + 0x8c, 0xbe, 0x9c, 0xdc, 0x3f, 0xf9, 0x36, 0xfe, 0xbe, 0xac, 0x67, 0x60, 0xec, 0x82, 0x1e, 0x67, + 0x2f, 0x7d, 0x01, 0x64, 0x48, 0x00, 0x5d, 0x50, 0x2c, 0x28, 0x60, 0xdb, 0x0a, 0xf7, 0xc4, 0x14, + 0x94, 0x0b, 0xea, 0x4a, 0x44, 0xc0, 0x31, 0x8f, 0xf9, 0x17, 0x06, 0x9c, 0xde, 0x08, 0x42, 0xdb, + 0xbb, 0x44, 0x82, 0x90, 0xae, 0x31, 0x6a, 0x0a, 0xfb, 0x0e, 0x19, 0x03, 0xfc, 0x5e, 0x82, 0x65, + 0xe1, 0x17, 0xec, 0x37, 0x03, 0x12, 0x2a, 0x00, 0x58, 0x4e, 0x9d, 0xf5, 0x04, 0x1d, 0x0f, 0xd4, + 0xa0, 0x52, 0x84, 0x83, 0x30, 0x96, 0x92, 0xd7, 0xa5, 0x34, 0x12, 0x74, 0x3c, 0x50, 0xc3, 0xfc, + 0x5a, 0x0e, 0x4e, 0xb1, 0x6e, 0x24, 0x52, 0x0a, 0x7e, 0xcd, 0x80, 0xc5, 0x7d, 0xdb, 0x0f, 0xfb, + 0x96, 0xa3, 0x7a, 0x3a, 0xa7, 0x9e, 0x3d, 0x4c, 0xd7, 0xcb, 0x9a, 0xe0, 0x18, 0xf2, 0xe9, 0xe5, + 0x38, 0xd1, 0x00, 0xda, 0xa6, 0xa5, 0xb6, 0x3e, 0xda, 0xd9, 0x78, 0x27, 0xd2, 0xbe, 0x23, 0xbf, + 0xcf, 0x4a, 0x14, 0xe2, 0xa4, 0x7e, 0xf3, 0xfd, 0x62, 0xf8, 0xf4, 0xa6, 0x8f, 0x31, 0x09, 0x4c, + 0x98, 0xf1, 0xbd, 0x3e, 0x35, 0x69, 0xd4, 0xb0, 0xce, 0xd5, 0x81, 0x61, 0x48, 0x56, 0x82, 0x05, + 0xc5, 0xfc, 0xaa, 0x01, 0xb3, 0x22, 0x92, 0xf9, 0x11, 0x21, 0xc2, 0xa7, 0x13, 0xe7, 0x81, 0x61, + 0x08, 0x2e, 0x42, 0x8e, 0xf9, 0x61, 0xc8, 0xd1, 0xfc, 0x63, 0x03, 0xe6, 0x36, 0xbd, 0xa6, 0xf0, + 0x65, 0xfc, 0x62, 0x06, 0x7e, 0x05, 0x69, 0x52, 0xa4, 0xc3, 0x2c, 0x46, 0x29, 0x2f, 0x6a, 0x5e, + 0x85, 0x27, 0x14, 0xd9, 0xab, 0x2c, 0x87, 0x88, 0x8a, 0xda, 0xf4, 0x9a, 0x43, 0xdd, 0x4e, 0xbf, + 0x57, 0x84, 0x85, 0x97, 0xac, 0x03, 0xe2, 0x86, 0x96, 0x68, 0xf1, 0xdb, 0x60, 0xd6, 0x6a, 0xb7, + 0xd3, 0x72, 0x6a, 0x6a, 0xbc, 0x18, 0x47, 0x74, 0x76, 0x50, 0xef, 0x31, 0xb0, 0xa8, 0xc0, 0x84, + 0xf8, 0xa0, 0x1e, 0x93, 0xb0, 0xca, 0x17, 0x6f, 0x03, 0xeb, 0x9e, 0xbb, 0x6b, 0x77, 0xd2, 0x16, + 0xf0, 0x7a, 0x82, 0x8e, 0x07, 0x6a, 0xa0, 0x4d, 0x40, 0x22, 0x32, 0xb2, 0xd6, 0x6a, 0x79, 0x7d, + 0x97, 0x6f, 0x04, 0x1c, 0x7f, 0xcb, 0xb3, 0xcd, 0xf5, 0x01, 0x0e, 0x9c, 0x52, 0x0b, 0x7d, 0x00, + 0x2a, 0x2d, 0x26, 0x59, 0xa0, 0x17, 0x55, 0x22, 0x07, 0xea, 0x32, 0xec, 0x68, 0x7d, 0x08, 0x1f, + 0x1e, 0x2a, 0x81, 0xb6, 0x34, 0x08, 0x3d, 0xdf, 0xea, 0x10, 0x55, 0xee, 0x8c, 0xde, 0xd2, 0xc6, + 0x00, 0x07, 0x4e, 0xa9, 0x85, 0x3e, 0x0e, 0x73, 0xe1, 0x9e, 0x4f, 0x82, 0x3d, 0xcf, 0x69, 0x0b, + 0x0f, 0xfa, 0x94, 0x8e, 0x1d, 0xf1, 0xf5, 0x77, 0x22, 0xa9, 0x0a, 0x9e, 0x8a, 0x8a, 0x70, 0xac, + 0x13, 0xf9, 0x30, 0x13, 0xb4, 0xbc, 0x1e, 0x09, 0x2a, 0xa5, 0x2c, 0x10, 0xa9, 0xd0, 0xce, 0x1c, + 0x15, 0xca, 0xa2, 0x63, 0x1a, 0xb0, 0xd0, 0x64, 0xfe, 0x65, 0x0e, 0xe6, 0x55, 0xc6, 0x31, 0x76, + 0x99, 0x4f, 0x1b, 0x30, 0xdf, 0xf2, 0xdc, 0xd0, 0xf7, 0x1c, 0xee, 0x2e, 0xe1, 0x0b, 0x64, 0xca, + 0x0c, 0x04, 0x26, 0xea, 0x12, 0x09, 0x2d, 0xdb, 0x51, 0x3c, 0x2f, 0x8a, 0x1a, 0xac, 0x29, 0x45, + 0x9f, 0x37, 0x60, 0x29, 0xbe, 0x5a, 0x8c, 0xfd, 0x36, 0x99, 0x36, 0x44, 0x46, 0xe7, 0x5d, 0xd6, + 0x35, 0xe1, 0xa4, 0x6a, 0xb3, 0x09, 0xcb, 0xc9, 0xaf, 0x4d, 0x87, 0xb2, 0x67, 0x89, 0xb5, 0x9e, + 0x8f, 0x87, 0x72, 0xdb, 0x0a, 0x02, 0xcc, 0x28, 0xf4, 0x28, 0xdc, 0xb5, 0xfc, 0x8e, 0xed, 0x5a, + 0x0e, 0x1b, 0xc5, 0xbc, 0xb2, 0x21, 0x89, 0x72, 0x2c, 0x39, 0xcc, 0xef, 0x15, 0xa0, 0x7c, 0x9d, + 0x58, 0x41, 0xdf, 0x27, 0xcc, 0xb1, 0x7a, 0xe2, 0xf0, 0x56, 0x0b, 0xe9, 0xcf, 0x67, 0x17, 0xd2, + 0x8f, 0x5e, 0x01, 0xd8, 0xb5, 0x5d, 0x3b, 0xd8, 0x7b, 0xc8, 0x64, 0x01, 0x76, 0xc9, 0x7c, 0x45, + 0x4a, 0xc0, 0x8a, 0xb4, 0x38, 0x87, 0xac, 0x38, 0x22, 0x87, 0xec, 0x33, 0x86, 0x62, 0x3c, 0x38, + 0x70, 0xbc, 0x33, 0x6d, 0x8c, 0xb9, 0xfc, 0x30, 0xab, 0x91, 0x31, 0xb9, 0xec, 0x86, 0xfe, 0xc1, + 0x48, 0x1b, 0xb3, 0x03, 0x25, 0x9f, 0x04, 0xfd, 0x2e, 0x05, 0xea, 0xb3, 0x13, 0x0f, 0xc3, 0x3c, + 0xf7, 0x99, 0xf0, 0xfa, 0x58, 0x4a, 0x3a, 0xf7, 0x02, 0x2c, 0x68, 0x4d, 0x40, 0xcb, 0x90, 0xbf, + 0x47, 0x0e, 0xf8, 0x3c, 0xc1, 0xf4, 0x4f, 0x74, 0x5a, 0x8b, 0x16, 0x16, 0xc3, 0xf2, 0x9e, 0xdc, + 0xf3, 0x86, 0xf9, 0x83, 0x19, 0x98, 0x11, 0xf6, 0xea, 0xf8, 0xbd, 0x40, 0xbd, 0x4f, 0xc8, 0x3d, + 0xc4, 0x7d, 0xc2, 0x26, 0xcc, 0xdb, 0xae, 0x1d, 0xda, 0x96, 0xc3, 0x82, 0xc5, 0x84, 0xad, 0x7a, + 0x3a, 0xce, 0xff, 0x8a, 0x69, 0x29, 0x72, 0xb4, 0xba, 0xe8, 0x16, 0x14, 0xd9, 0x66, 0x2e, 0xe6, + 0xd3, 0xe4, 0x57, 0xab, 0x2c, 0x6c, 0x82, 0x87, 0x1f, 0x72, 0x49, 0x0c, 0x0f, 0xf3, 0xa4, 0x36, + 0x79, 0x08, 0x11, 0xd3, 0x2a, 0xc6, 0xc3, 0x09, 0x3a, 0x1e, 0xa8, 0x41, 0xa5, 0xec, 0x5a, 0xb6, + 0xd3, 0xf7, 0x49, 0x2c, 0x65, 0x46, 0x97, 0x72, 0x25, 0x41, 0xc7, 0x03, 0x35, 0xd0, 0x2e, 0xcc, + 0x8b, 0x32, 0x1e, 0x8e, 0x37, 0xfb, 0x90, 0xbd, 0x64, 0x37, 0xa8, 0x57, 0x14, 0x49, 0x58, 0x93, + 0x8b, 0xfa, 0xb0, 0xa2, 0x26, 0xda, 0xc5, 0xb1, 0x7f, 0x0f, 0xa3, 0xec, 0xcc, 0xd1, 0x61, 0x75, + 0x65, 0x23, 0x29, 0x0e, 0x0f, 0x6a, 0x40, 0x9f, 0x34, 0xe0, 0x4c, 0xcb, 0x73, 0x03, 0x16, 0xfd, + 0xbe, 0x4f, 0x58, 0x1a, 0x1f, 0xd7, 0x3d, 0xf7, 0x90, 0xba, 0x59, 0x6c, 0xdb, 0x7a, 0x9a, 0x48, + 0x9c, 0xae, 0x09, 0x7d, 0x18, 0x4a, 0x3d, 0xdf, 0xdb, 0xb7, 0xdb, 0xc4, 0x17, 0xb7, 0xb4, 0x5b, + 0x59, 0x24, 0x9e, 0x6c, 0x0b, 0x99, 0xf1, 0x4e, 0x10, 0x95, 0x60, 0xa9, 0xcf, 0xfc, 0xca, 0x0c, + 0x2c, 0xea, 0xec, 0xe8, 0x63, 0x00, 0x3d, 0xdf, 0xeb, 0x92, 0x70, 0x8f, 0xc8, 0x18, 0xb1, 0x1b, + 0xd3, 0x26, 0x7d, 0x44, 0xf2, 0x44, 0x4e, 0x0c, 0xdb, 0x49, 0xe3, 0x52, 0xac, 0x68, 0x44, 0x3e, + 0xcc, 0xde, 0xe3, 0x36, 0x4d, 0x98, 0xf8, 0x97, 0x32, 0x01, 0x24, 0x42, 0x73, 0x99, 0x9a, 0x1c, + 0x51, 0x84, 0x23, 0x45, 0xa8, 0x09, 0xf9, 0xfb, 0xa4, 0x99, 0x4d, 0x7a, 0xc2, 0x1d, 0x22, 0x8e, + 0x0a, 0xf5, 0xd9, 0xa3, 0xc3, 0x6a, 0xfe, 0x0e, 0x69, 0x62, 0x2a, 0x9c, 0xf6, 0xab, 0xcd, 0x6f, + 0x45, 0xc5, 0x56, 0x31, 0x65, 0xbf, 0xb4, 0x2b, 0x56, 0xde, 0x2f, 0x51, 0x84, 0x23, 0x45, 0xe8, + 0xc3, 0x30, 0x77, 0xdf, 0xda, 0x27, 0xbb, 0xbe, 0xe7, 0x86, 0x22, 0xc6, 0x64, 0x4a, 0x4f, 0xef, + 0x9d, 0x48, 0x9c, 0xd0, 0xcb, 0xac, 0xad, 0x2c, 0xc4, 0xb1, 0x3a, 0xb4, 0x0f, 0x25, 0x97, 0xdc, + 0xc7, 0xc4, 0xb1, 0x5b, 0x22, 0xec, 0x64, 0xca, 0x69, 0x7d, 0x43, 0x48, 0x13, 0x9a, 0x99, 0x19, + 0x8a, 0xca, 0xb0, 0xd4, 0x45, 0xbf, 0xe5, 0x5d, 0xaf, 0x29, 0x36, 0xaa, 0xab, 0x53, 0x27, 0xdf, + 0xaa, 0xdf, 0x72, 0xd3, 0x6b, 0x62, 0x2a, 0xdc, 0xfc, 0x5a, 0x01, 0xe6, 0xd5, 0xb4, 0xc4, 0x31, + 0x6c, 0x96, 0x84, 0x4d, 0xb9, 0x49, 0x60, 0x13, 0x45, 0xbd, 0xdd, 0xd8, 0xc6, 0x47, 0x6e, 0xbe, + 0x8d, 0xcc, 0x50, 0x43, 0x8c, 0x7a, 0x95, 0xc2, 0x00, 0x6b, 0x4a, 0x27, 0xb8, 0x52, 0xa5, 0x38, + 0x88, 0x9b, 0xc3, 0xa2, 0x9e, 0x20, 0xad, 0x19, 0x38, 0x3d, 0xb7, 0x7b, 0x66, 0xc2, 0xdc, 0xee, + 0xd9, 0x89, 0x72, 0xbb, 0x4b, 0x93, 0xe7, 0x76, 0xcf, 0x8d, 0xc8, 0xed, 0xa6, 0x47, 0xdd, 0xc4, + 0x2e, 0xce, 0x36, 0xed, 0xa2, 0x72, 0xd4, 0x4d, 0xd0, 0xf1, 0x40, 0x0d, 0xf3, 0x83, 0xb0, 0xa8, + 0xcf, 0x66, 0x3a, 0xc4, 0x3d, 0xdf, 0xdb, 0xb5, 0x1d, 0x92, 0x3c, 0xa4, 0x6f, 0xf3, 0x62, 0x1c, + 0xd1, 0xc7, 0x8b, 0x86, 0xf8, 0xab, 0x3c, 0x9c, 0xba, 0xd1, 0xb1, 0xdd, 0x07, 0x09, 0x6f, 0x58, + 0xda, 0x3b, 0x16, 0xc6, 0xa4, 0xef, 0x58, 0xc4, 0xe1, 0x7f, 0xe2, 0x55, 0x8e, 0xf4, 0xf0, 0xbf, + 0xe8, 0xc9, 0x0e, 0x9d, 0x17, 0x7d, 0xd7, 0x80, 0x27, 0xac, 0x36, 0xc7, 0x17, 0x96, 0x23, 0x4a, + 0x63, 0xa5, 0xd1, 0x1c, 0x0f, 0xa6, 0xdc, 0x2d, 0x06, 0x3b, 0xbf, 0x5a, 0x1b, 0xa1, 0x95, 0xa3, + 0xe6, 0xb7, 0x8a, 0x1e, 0x3c, 0x31, 0x8a, 0x15, 0x8f, 0x6c, 0xfe, 0xb9, 0x9b, 0xf0, 0x96, 0x63, + 0x15, 0x4d, 0x84, 0x8d, 0x7f, 0xdf, 0x80, 0x45, 0x16, 0x57, 0x1b, 0xc3, 0xb2, 0xe7, 0xe4, 0xdd, + 0x2d, 0xff, 0x78, 0xe7, 0xf5, 0xbb, 0xdb, 0x37, 0x0e, 0xab, 0x65, 0x1e, 0x89, 0xab, 0x5f, 0xe5, + 0xbe, 0x5f, 0x1c, 0xad, 0xd8, 0x0d, 0x73, 0x6e, 0x62, 0xe4, 0x2f, 0x1d, 0x09, 0x8d, 0x48, 0x08, + 0x8e, 0xe5, 0x99, 0x9f, 0xcf, 0xc1, 0xec, 0xb6, 0xd7, 0xfe, 0x49, 0xf4, 0xf1, 0xd1, 0x35, 0xe5, + 0x13, 0xab, 0x7d, 0x20, 0xf6, 0x37, 0xb9, 0xa6, 0x30, 0x2d, 0xc4, 0x9c, 0xc6, 0xaf, 0x90, 0x59, + 0x7f, 0xa3, 0x74, 0x1d, 0xe5, 0x0a, 0x99, 0x97, 0x63, 0xc9, 0x61, 0x7e, 0x25, 0x0f, 0xa7, 0x52, + 0xe2, 0xe5, 0xe8, 0x21, 0x70, 0xc6, 0xb1, 0x9a, 0xc4, 0x89, 0xae, 0x00, 0x5f, 0xcd, 0x3c, 0x26, + 0x6f, 0x75, 0x8b, 0xc9, 0xe7, 0x53, 0x5a, 0x0e, 0x0a, 0x2f, 0xc4, 0x42, 0x39, 0xfa, 0x4d, 0x03, + 0xca, 0x96, 0xb2, 0xea, 0xf8, 0xad, 0x68, 0x33, 0xfb, 0xc6, 0x0c, 0x2c, 0x32, 0x25, 0xf2, 0x27, + 0x5e, 0x53, 0x6a, 0x5b, 0xce, 0xfd, 0x3c, 0x94, 0x95, 0x2e, 0x4c, 0xb2, 0x58, 0xce, 0xbd, 0x08, + 0xcb, 0x53, 0x2d, 0xb6, 0xf7, 0xc1, 0xa4, 0xe9, 0xc6, 0x74, 0x1a, 0xde, 0x57, 0xa3, 0xef, 0xe5, + 0x88, 0x8b, 0xf0, 0x7b, 0x41, 0x35, 0x9b, 0xb0, 0x9c, 0x44, 0xc2, 0x93, 0x38, 0x67, 0xc7, 0xda, + 0xf7, 0x7f, 0x50, 0x84, 0x45, 0x3d, 0x28, 0xe0, 0x27, 0x6e, 0x2d, 0xaa, 0x91, 0x1a, 0x85, 0x31, + 0x23, 0x35, 0xa2, 0x18, 0xea, 0x92, 0xa6, 0xb7, 0xe9, 0x10, 0x2c, 0xa8, 0x94, 0x8f, 0x7b, 0x9c, + 0x19, 0xde, 0x50, 0xf8, 0xb8, 0x67, 0x1a, 0x0b, 0x2a, 0xe5, 0xe3, 0x89, 0x35, 0x0c, 0x67, 0x28, + 0x7c, 0x3c, 0xfd, 0x06, 0x0b, 0x2a, 0x37, 0xd8, 0x2c, 0x23, 0x88, 0x41, 0x8c, 0x92, 0x6a, 0xb0, + 0x79, 0x0e, 0x61, 0x44, 0xe7, 0x1d, 0x62, 0x9f, 0x24, 0x10, 0xd8, 0x42, 0xe9, 0x10, 0x2f, 0xc7, + 0x92, 0x03, 0xad, 0xc1, 0x5c, 0x1c, 0x17, 0xce, 0xa1, 0x85, 0xdc, 0x77, 0xe5, 0xf5, 0x28, 0x8e, + 0x79, 0xa8, 0xf8, 0xe8, 0x36, 0x96, 0xa5, 0x6b, 0xcd, 0xc5, 0xe2, 0xe5, 0x3d, 0xb6, 0xe4, 0x40, + 0x57, 0x61, 0x45, 0x49, 0x95, 0xe3, 0x77, 0xf1, 0x2c, 0x95, 0x4a, 0xc9, 0x42, 0x69, 0x24, 0x19, + 0xf0, 0x60, 0x1d, 0x64, 0xc2, 0x8c, 0xdd, 0xb5, 0x3a, 0x24, 0xa8, 0x2c, 0xc4, 0xd7, 0x3e, 0x1b, + 0xac, 0x04, 0x0b, 0x0a, 0xea, 0x40, 0xa1, 0xe7, 0xb5, 0x83, 0xca, 0x62, 0x16, 0x2f, 0xe1, 0x08, + 0xdb, 0xa2, 0xb8, 0x34, 0xbd, 0x76, 0x80, 0x99, 0x02, 0xf3, 0x9d, 0x30, 0x61, 0x5e, 0xbc, 0xf9, + 0xd7, 0x39, 0x98, 0x15, 0xb1, 0xe6, 0x8f, 0x20, 0x56, 0xf4, 0x9e, 0x76, 0xab, 0xb3, 0x91, 0x49, + 0x88, 0xfc, 0xd0, 0x40, 0xd1, 0x20, 0x11, 0x28, 0xfa, 0x52, 0x36, 0xea, 0x46, 0x47, 0x89, 0x7e, + 0x31, 0x07, 0x4b, 0x89, 0xd8, 0x7d, 0xf4, 0xcb, 0xc6, 0x60, 0xc0, 0xcb, 0xed, 0x4c, 0xd3, 0x03, + 0x64, 0x24, 0xf2, 0xe8, 0xd8, 0x97, 0x40, 0x7b, 0x69, 0xe3, 0x56, 0x66, 0xc1, 0x4e, 0x23, 0x1f, + 0xdd, 0xf8, 0x67, 0x03, 0xde, 0x3c, 0x34, 0x9b, 0x81, 0x65, 0x34, 0xfa, 0x3a, 0x55, 0xcc, 0xbd, + 0x8c, 0xb3, 0x93, 0xe4, 0x6d, 0x42, 0x32, 0xc9, 0x2d, 0xa9, 0x1e, 0x3d, 0x0b, 0xf3, 0x0c, 0xbb, + 0xd0, 0xe5, 0x13, 0x92, 0x9e, 0x78, 0x52, 0x8f, 0x79, 0xee, 0x1a, 0x4a, 0x39, 0xd6, 0xb8, 0xcc, + 0xdf, 0x35, 0xa0, 0x32, 0x2c, 0x7f, 0x6e, 0x8c, 0x73, 0xf1, 0xcf, 0x25, 0xec, 0x46, 0x75, 0x20, + 0x6e, 0x33, 0x71, 0x32, 0x4e, 0x09, 0xbd, 0xcb, 0x1f, 0x13, 0x96, 0xf8, 0x05, 0x03, 0xce, 0x0e, + 0x99, 0x38, 0x03, 0xf1, 0xbb, 0xc6, 0x43, 0xc7, 0xef, 0xe6, 0xc6, 0x8d, 0xdf, 0x35, 0xff, 0x36, + 0x0f, 0xcb, 0xa2, 0x3d, 0x31, 0xa4, 0x7f, 0x5e, 0x8b, 0x7e, 0x7d, 0x6b, 0x22, 0xfa, 0xf5, 0x74, + 0x92, 0xff, 0xff, 0x42, 0x5f, 0x7f, 0xbc, 0x42, 0x5f, 0x7f, 0x98, 0x83, 0x33, 0xa9, 0xb9, 0x89, + 0xe8, 0x73, 0x29, 0xbb, 0xe0, 0x9d, 0x8c, 0x93, 0x20, 0xc7, 0xdc, 0x07, 0xa7, 0x8d, 0x01, 0xfc, + 0x0d, 0x35, 0xf6, 0x8e, 0x1f, 0xd3, 0x77, 0x4f, 0x20, 0x9d, 0x73, 0xd2, 0x30, 0xbc, 0x5f, 0xcd, + 0xc3, 0x33, 0xe3, 0x0a, 0xfa, 0x31, 0x0d, 0xe9, 0x0f, 0xb4, 0x90, 0xfe, 0x47, 0x63, 0xa1, 0x4e, + 0x26, 0xba, 0xff, 0xb3, 0x79, 0x69, 0xf6, 0x06, 0xe7, 0xe7, 0x58, 0x97, 0x7b, 0xb3, 0x14, 0xc5, + 0x44, 0x2f, 0xe7, 0xc4, 0x5b, 0xe1, 0x6c, 0x83, 0x17, 0xbf, 0x71, 0x58, 0x5d, 0x89, 0x8f, 0x38, + 0xa2, 0x10, 0x47, 0x95, 0xd0, 0x33, 0x0a, 0xda, 0xe6, 0x81, 0xa9, 0xf3, 0x43, 0x90, 0xf6, 0xc7, + 0x15, 0xd8, 0x57, 0x38, 0xa9, 0xf4, 0xb8, 0x51, 0xf7, 0xb0, 0xaf, 0x42, 0x29, 0x88, 0x9e, 0xd5, + 0xe1, 0xde, 0xf9, 0x77, 0x8f, 0x19, 0xef, 0x4c, 0x0f, 0xc7, 0xd1, 0x1b, 0x3b, 0xbc, 0x7f, 0xf2, + 0x05, 0x1e, 0x29, 0xd2, 0xfc, 0xaf, 0x12, 0x94, 0xc5, 0x97, 0xf8, 0x31, 0x3c, 0x08, 0x8e, 0x6f, + 0xbf, 0xe5, 0x99, 0xb1, 0x30, 0xea, 0xcc, 0x18, 0x88, 0xc4, 0x66, 0xb1, 0xa5, 0xcb, 0x71, 0x8f, + 0x12, 0x9e, 0xb1, 0xe4, 0xa0, 0xf2, 0x02, 0x0a, 0x70, 0x66, 0x74, 0x79, 0x0c, 0xdc, 0x30, 0x0a, + 0x3d, 0x84, 0xc5, 0x39, 0xf5, 0xb3, 0x7a, 0x10, 0x65, 0x6a, 0x5e, 0xfd, 0xf3, 0x30, 0x6f, 0xb5, + 0xc2, 0xbe, 0xe5, 0x88, 0x3a, 0x25, 0x7d, 0xcf, 0xa8, 0x29, 0x34, 0xac, 0x71, 0xc6, 0xae, 0xa7, + 0x84, 0xdb, 0x59, 0x73, 0x3d, 0xbd, 0x0d, 0x66, 0xc5, 0x3b, 0x00, 0xe2, 0x48, 0x28, 0x07, 0x4b, + 0xbc, 0x18, 0x80, 0x23, 0x3a, 0x65, 0x6d, 0x93, 0x80, 0xae, 0x4b, 0x76, 0x1a, 0x54, 0x58, 0x2f, + 0xf1, 0x62, 0x1c, 0xd1, 0x29, 0x6b, 0x9f, 0x19, 0xe3, 0x36, 0x3b, 0x01, 0x2a, 0xac, 0xdc, 0x46, + 0xb7, 0x71, 0x44, 0xd7, 0x4f, 0xa5, 0x0b, 0x63, 0x9c, 0x4a, 0x9f, 0x83, 0xb2, 0x70, 0x85, 0xb1, + 0x68, 0x8b, 0xc5, 0xc4, 0x3b, 0xcb, 0x31, 0x09, 0xab, 0x7c, 0xe8, 0x22, 0x80, 0x78, 0x29, 0x9a, + 0xee, 0x43, 0x4b, 0xac, 0x96, 0x9c, 0x71, 0x57, 0x25, 0x05, 0x2b, 0x5c, 0x03, 0x99, 0x15, 0xcb, + 0x3f, 0x92, 0xcc, 0x0a, 0xda, 0x8a, 0x38, 0x3e, 0x27, 0xa8, 0xac, 0x64, 0xd1, 0x0a, 0x3d, 0x99, + 0x26, 0x6e, 0x45, 0x5c, 0x1e, 0x60, 0x55, 0xeb, 0x60, 0x7e, 0x07, 0xfa, 0x51, 0xe5, 0x77, 0xbc, + 0x66, 0xc8, 0xdd, 0xe7, 0x11, 0x24, 0x77, 0xdc, 0xd5, 0x93, 0x3b, 0x2e, 0x67, 0x82, 0x4a, 0x86, + 0x64, 0x76, 0xdc, 0x85, 0x79, 0xf5, 0xe1, 0x0b, 0xf4, 0x8a, 0x82, 0xaa, 0x8c, 0x69, 0x12, 0xec, + 0x23, 0xdc, 0x15, 0x23, 0x2e, 0xf3, 0x5b, 0x45, 0x39, 0x8a, 0x2c, 0x85, 0x44, 0xb5, 0x6e, 0xc6, + 0x48, 0xeb, 0xa6, 0x1a, 0x97, 0x5c, 0xe6, 0xc6, 0x05, 0xdd, 0x52, 0xbc, 0x4e, 0xfc, 0x80, 0xf0, + 0x94, 0x1a, 0xab, 0x4a, 0x4f, 0x19, 0x54, 0x98, 0x62, 0x12, 0x99, 0xbf, 0x62, 0x94, 0x6b, 0xaa, + 0x06, 0x4b, 0x5d, 0xdb, 0x65, 0xfb, 0x5e, 0x94, 0x59, 0xc2, 0xfd, 0x7f, 0xf2, 0x08, 0x7b, 0x5d, + 0x27, 0xe3, 0x24, 0x3f, 0xfa, 0x48, 0xc2, 0x0e, 0x64, 0x75, 0x9a, 0x8e, 0x8c, 0xc8, 0x48, 0xb3, + 0xb2, 0x05, 0xa7, 0x23, 0xb7, 0xe4, 0x35, 0x3b, 0x08, 0x3d, 0xff, 0x80, 0x87, 0x92, 0xf0, 0x0b, + 0x4e, 0xf6, 0x2c, 0x14, 0x4e, 0xa1, 0xe3, 0xd4, 0x5a, 0xd4, 0x8e, 0xb2, 0x57, 0x54, 0xda, 0x49, + 0x47, 0x24, 0x9b, 0x74, 0x6d, 0x2c, 0xa8, 0xa3, 0xf2, 0x72, 0x4a, 0x53, 0xe4, 0xe5, 0xdc, 0x81, + 0x39, 0xb1, 0x2f, 0xd7, 0xa2, 0x60, 0x98, 0x89, 0xa3, 0xf0, 0x70, 0x24, 0x00, 0xc7, 0xb2, 0xcc, + 0xaf, 0xce, 0xc3, 0x82, 0xe6, 0x52, 0xa2, 0x16, 0xd0, 0x6a, 0x7a, 0x3e, 0x77, 0x9f, 0x97, 0xe2, + 0x45, 0x57, 0xa3, 0x85, 0x98, 0xd3, 0xd0, 0x17, 0x0d, 0x58, 0xea, 0x69, 0x97, 0x60, 0xd1, 0x5a, + 0x9f, 0x72, 0x8b, 0xd5, 0x6f, 0xd6, 0x94, 0xa7, 0x11, 0x75, 0x65, 0x38, 0xa9, 0x9d, 0x4e, 0x57, + 0x11, 0x1b, 0xea, 0x10, 0x9f, 0x71, 0x0b, 0xbc, 0x2f, 0x45, 0xac, 0xeb, 0x64, 0x9c, 0xe4, 0xa7, + 0x83, 0xcc, 0x7a, 0x37, 0xcd, 0xeb, 0xc5, 0xb5, 0x48, 0x00, 0x8e, 0x65, 0xa1, 0x17, 0x61, 0x51, + 0xe0, 0x81, 0x6d, 0xaf, 0x7d, 0xcd, 0x0a, 0xf6, 0x04, 0x2a, 0x92, 0x07, 0xf3, 0x75, 0x8d, 0x8a, + 0x13, 0xdc, 0xac, 0x6f, 0xf1, 0xe3, 0x4c, 0x4c, 0xc0, 0x8c, 0xfe, 0x72, 0xe4, 0xba, 0x4e, 0xc6, + 0x49, 0x7e, 0xcd, 0xeb, 0x3d, 0x7b, 0xac, 0xd7, 0xbb, 0x06, 0x4b, 0x02, 0x6a, 0x44, 0x44, 0x31, + 0x7b, 0xa5, 0xc2, 0xdb, 0x3a, 0x19, 0x27, 0xf9, 0xd1, 0x0b, 0xb0, 0xc0, 0xc0, 0x12, 0xd6, 0x7d, + 0xed, 0xf2, 0x52, 0x1a, 0xab, 0x44, 0xac, 0xf3, 0xa2, 0xab, 0xb0, 0x12, 0xbf, 0xa0, 0x12, 0x09, + 0xe0, 0x50, 0x4b, 0xba, 0xc5, 0x6b, 0x49, 0x06, 0x3c, 0x58, 0x07, 0xfd, 0x02, 0x2c, 0x2b, 0x23, + 0xb1, 0xe1, 0xb6, 0xc9, 0x03, 0x81, 0xc3, 0x4e, 0xb3, 0xe0, 0x80, 0x04, 0x0d, 0x0f, 0x70, 0xa3, + 0xf7, 0xc0, 0x62, 0xcb, 0x73, 0x1c, 0xb6, 0x23, 0xf0, 0x57, 0x0b, 0x39, 0x38, 0xe3, 0x0f, 0x7f, + 0x68, 0x14, 0x9c, 0xe0, 0x44, 0x9b, 0x80, 0xbc, 0x66, 0x40, 0xfc, 0x7d, 0xd2, 0x8e, 0xc1, 0x12, + 0xc3, 0x6b, 0x4a, 0x64, 0xfa, 0xcd, 0x01, 0x0e, 0x9c, 0x52, 0x0b, 0x7d, 0x4a, 0x4f, 0xb9, 0x5a, + 0xcc, 0xe2, 0x8d, 0xe6, 0xa4, 0x17, 0xeb, 0xd8, 0x7c, 0x2b, 0x5f, 0x5e, 0xdb, 0x2c, 0x65, 0xf1, + 0xaa, 0x8b, 0xfa, 0x40, 0xda, 0xd0, 0x2b, 0xa0, 0x8f, 0xc1, 0x5c, 0x33, 0x7a, 0xcd, 0xb2, 0xb2, + 0x9c, 0x85, 0x15, 0x49, 0x3c, 0xcc, 0x1a, 0x43, 0x67, 0x49, 0xc0, 0xb1, 0x4a, 0xf4, 0x34, 0x94, + 0xaf, 0x6d, 0xd7, 0xe4, 0x2c, 0x5c, 0x61, 0x5f, 0xbf, 0x40, 0xab, 0x60, 0x95, 0xc0, 0x0e, 0x3d, + 0x91, 0x85, 0x47, 0x89, 0x43, 0xcf, 0xa0, 0xc1, 0x66, 0x47, 0x24, 0x36, 0x55, 0x1b, 0x95, 0x53, + 0xc9, 0x23, 0x12, 0x2f, 0xc7, 0x92, 0x03, 0xbd, 0xaa, 0xc3, 0xf7, 0xd3, 0x0f, 0x97, 0xce, 0x37, + 0x14, 0xe6, 0x3f, 0x07, 0xe5, 0x1e, 0x7b, 0xe4, 0x8f, 0x5c, 0xe9, 0x3b, 0x4e, 0xe5, 0x0c, 0xdb, + 0x37, 0x25, 0xba, 0xdd, 0x8e, 0x49, 0x58, 0xe5, 0x33, 0x3f, 0x19, 0x5f, 0x32, 0xc8, 0x77, 0xac, + 0x3e, 0xaa, 0x7e, 0x2d, 0x23, 0x8b, 0x1f, 0xe6, 0x18, 0x78, 0xca, 0x94, 0x6f, 0xb4, 0xa9, 0xdf, + 0xaa, 0x27, 0xe7, 0x67, 0x26, 0xcf, 0x80, 0xe8, 0x6f, 0x74, 0xf1, 0x3b, 0x35, 0x7d, 0x76, 0x9a, + 0xaf, 0xe5, 0xa5, 0xa3, 0x31, 0x11, 0xdb, 0xe3, 0x43, 0xd1, 0x0e, 0x42, 0xdb, 0xcb, 0x30, 0xbf, + 0x2d, 0xf1, 0xb8, 0x15, 0x8b, 0x55, 0x66, 0x04, 0xcc, 0x55, 0x51, 0x9d, 0x6e, 0xc7, 0x76, 0x1f, + 0x88, 0xee, 0xdf, 0xca, 0x3c, 0x68, 0x87, 0xeb, 0x64, 0x04, 0xcc, 0x55, 0xa1, 0xbb, 0x90, 0xb7, + 0x9c, 0x66, 0x46, 0x3f, 0xc2, 0x92, 0xfc, 0x09, 0x22, 0x1e, 0xe9, 0x57, 0xdb, 0xaa, 0x63, 0xaa, + 0x84, 0xea, 0x0a, 0xba, 0xb6, 0xb0, 0xcd, 0x53, 0xea, 0x6a, 0x5c, 0xdf, 0x48, 0xd3, 0xd5, 0xb8, + 0xbe, 0x81, 0xa9, 0x12, 0xf3, 0x4b, 0x06, 0xac, 0x0c, 0xf0, 0x24, 0x7f, 0xb0, 0xc8, 0x18, 0xff, + 0x07, 0x8b, 0xc4, 0xab, 0x63, 0x8d, 0x9e, 0x63, 0xa7, 0xa6, 0x66, 0xee, 0x24, 0xe8, 0x78, 0xa0, + 0x86, 0xf9, 0x75, 0x03, 0xca, 0x4a, 0x6a, 0x0a, 0x85, 0x6a, 0x2c, 0x85, 0x47, 0x34, 0x23, 0x7e, + 0x70, 0x8d, 0xb9, 0x34, 0x39, 0x8d, 0x7b, 0xd7, 0x3b, 0xb1, 0x8f, 0x59, 0xf1, 0xae, 0xd3, 0x52, + 0x2c, 0xa8, 0xd2, 0x0d, 0x93, 0xd7, 0x33, 0x55, 0x14, 0x37, 0x0c, 0x55, 0x47, 0xf7, 0x8c, 0x64, + 0x58, 0x0e, 0xbb, 0x8e, 0xc2, 0x9c, 0x86, 0xce, 0x43, 0x9e, 0xb8, 0x6d, 0x01, 0x70, 0xca, 0x82, + 0x25, 0x7f, 0xd9, 0x6d, 0x63, 0x5a, 0x6e, 0xde, 0x84, 0xf9, 0x06, 0x69, 0xf9, 0x24, 0x7c, 0x89, + 0x1c, 0x8c, 0xe7, 0xff, 0x3d, 0xcf, 0xc3, 0x45, 0x72, 0xba, 0x40, 0x5a, 0x9d, 0x96, 0x9b, 0x7f, + 0x64, 0x40, 0xe2, 0xb9, 0x3d, 0x64, 0x26, 0x22, 0x40, 0x60, 0x30, 0xfa, 0x43, 0x3b, 0xb9, 0xe5, + 0x46, 0x9e, 0xdc, 0x36, 0x01, 0x75, 0xad, 0xb0, 0xb5, 0x27, 0xbe, 0x8f, 0xf0, 0x28, 0x71, 0x6c, + 0x19, 0x27, 0xc2, 0x0d, 0x70, 0xe0, 0x94, 0x5a, 0xe6, 0xb7, 0x72, 0x30, 0xaf, 0xfd, 0xca, 0xc1, + 0xf1, 0xdd, 0x1f, 0xbf, 0xa1, 0x29, 0x07, 0xb6, 0xfc, 0x84, 0x07, 0x36, 0xf5, 0x94, 0x5a, 0x38, + 0xd9, 0x53, 0x6a, 0x31, 0x93, 0x53, 0xaa, 0xf9, 0x8d, 0x02, 0x2c, 0xea, 0xf9, 0xf0, 0x63, 0x8c, + 0xe9, 0xdb, 0x07, 0xc6, 0x74, 0x42, 0x30, 0x9c, 0x9f, 0x16, 0x0c, 0x17, 0xa6, 0x05, 0xc3, 0xc5, + 0x87, 0x00, 0xc3, 0x83, 0x50, 0x76, 0x66, 0x6c, 0x28, 0xfb, 0x5e, 0xe9, 0x47, 0x9e, 0xd5, 0xae, + 0x01, 0xe2, 0x5b, 0x4d, 0xa4, 0x7f, 0x86, 0x75, 0xaf, 0x9d, 0x7a, 0x3b, 0x5c, 0x3a, 0xc6, 0xbb, + 0xec, 0xa7, 0x5e, 0x42, 0x4e, 0x7e, 0xe4, 0x7d, 0xd3, 0xf8, 0x17, 0x90, 0xe6, 0x27, 0x72, 0x10, + 0xff, 0x70, 0x01, 0x7b, 0xc1, 0x30, 0x50, 0xf6, 0x28, 0x61, 0xc0, 0x37, 0xa7, 0x7d, 0x26, 0x34, + 0x96, 0x28, 0x6e, 0xf1, 0x95, 0x12, 0xac, 0x69, 0xfc, 0x11, 0xfc, 0x60, 0x81, 0x05, 0x4b, 0x89, + 0x64, 0x82, 0xcc, 0x83, 0xe1, 0xbe, 0x9e, 0x83, 0x39, 0x99, 0x8e, 0x41, 0xb7, 0xf5, 0xbe, 0x1f, + 0x3d, 0x40, 0x27, 0xb7, 0xf5, 0xdb, 0x78, 0x0b, 0xd3, 0x72, 0xf4, 0x00, 0x66, 0xf7, 0x88, 0xd5, + 0x26, 0x7e, 0xe4, 0x57, 0xb8, 0x9e, 0x51, 0x1e, 0xc8, 0x35, 0x26, 0x35, 0xee, 0x0b, 0xff, 0x3f, + 0xc0, 0x91, 0x3a, 0x7a, 0x58, 0x0f, 0xed, 0x2e, 0xa1, 0xa0, 0x56, 0xd9, 0x45, 0xf3, 0xf1, 0x61, + 0x7d, 0x47, 0xa3, 0xe2, 0x04, 0x37, 0xdd, 0x5c, 0xee, 0x06, 0x9e, 0xcb, 0x1e, 0x7c, 0x28, 0xe8, + 0xc8, 0x7e, 0xb3, 0x71, 0xf3, 0x06, 0x7b, 0xef, 0x41, 0x72, 0x50, 0x6e, 0x9b, 0x85, 0xa3, 0xfb, + 0x51, 0xc8, 0xdc, 0x72, 0x9c, 0x3c, 0xc7, 0xcb, 0xb1, 0xe4, 0x30, 0x6f, 0xc3, 0x52, 0xa2, 0x23, + 0x91, 0x79, 0x34, 0xd2, 0xcd, 0xe3, 0x58, 0xbf, 0xa6, 0x57, 0x5f, 0xfd, 0xe6, 0xeb, 0x17, 0x1e, + 0xfb, 0xf6, 0xeb, 0x17, 0x1e, 0xfb, 0xce, 0xeb, 0x17, 0x1e, 0xfb, 0xc4, 0xd1, 0x05, 0xe3, 0x9b, + 0x47, 0x17, 0x8c, 0x6f, 0x1f, 0x5d, 0x30, 0xbe, 0x73, 0x74, 0xc1, 0xf8, 0xa7, 0xa3, 0x0b, 0xc6, + 0x97, 0xbe, 0x77, 0xe1, 0xb1, 0x57, 0x4a, 0xd1, 0x60, 0xfe, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x41, 0x9a, 0x2d, 0x7a, 0x06, 0x74, 0x00, 0x00, } func (m *ALBTrafficRouting) Marshal() (dAtA []byte, err error) { @@ -2647,7 +2817,7 @@ func (m *AnalysisRunArgument) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AnalysisRunList) Marshal() (dAtA []byte, err error) { +func (m *AnalysisRunInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2657,20 +2827,20 @@ func (m *AnalysisRunList) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *AnalysisRunList) MarshalTo(dAtA []byte) (int, error) { +func (m *AnalysisRunInfo) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *AnalysisRunInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + if len(m.Jobs) > 0 { + for iNdEx := len(m.Jobs) - 1; iNdEx >= 0; iNdEx-- { { - size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + size, err := m.Jobs[iNdEx].MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2678,11 +2848,36 @@ func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenerated(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x12 + dAtA[i] = 0x4a } } + i = encodeVarintGenerated(dAtA, i, uint64(m.Error)) + i-- + dAtA[i] = 0x40 + i = encodeVarintGenerated(dAtA, i, uint64(m.Inconclusive)) + i-- + dAtA[i] = 0x38 + i = encodeVarintGenerated(dAtA, i, uint64(m.Failed)) + i-- + dAtA[i] = 0x30 + i = encodeVarintGenerated(dAtA, i, uint64(m.Successful)) + i-- + dAtA[i] = 0x28 + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) + i-- + dAtA[i] = 0x18 + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x12 { - size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -2694,7 +2889,7 @@ func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *AnalysisRunSpec) Marshal() (dAtA []byte, err error) { +func (m *AnalysisRunList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -2704,12 +2899,59 @@ func (m *AnalysisRunSpec) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *AnalysisRunSpec) MarshalTo(dAtA []byte) (int, error) { +func (m *AnalysisRunList) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *AnalysisRunSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *AnalysisRunList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *AnalysisRunSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AnalysisRunSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AnalysisRunSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -3891,6 +4133,85 @@ func (m *ExperimentCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ExperimentInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExperimentInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AnalysisRuns) > 0 { + for iNdEx := len(m.AnalysisRuns) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AnalysisRuns[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if len(m.ReplicaSets) > 0 { + for iNdEx := len(m.ReplicaSets) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ReplicaSets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x2a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) + i-- + dAtA[i] = 0x18 + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *ExperimentList) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4242,6 +4563,49 @@ func (m *IstioVirtualService) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *JobInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *JobInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *JobInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *JobMetric) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4948,6 +5312,57 @@ func (m *PauseCondition) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PodInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PodInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PodInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.Restarts)) + i-- + dAtA[i] = 0x28 + i -= len(m.Ready) + copy(dAtA[i:], m.Ready) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Ready))) + i-- + dAtA[i] = 0x22 + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func (m *PodTemplateMetadata) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -5078,30 +5493,7 @@ func (m *PrometheusMetric) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *RequiredDuringSchedulingIgnoredDuringExecution) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *Rollout) Marshal() (dAtA []byte, err error) { +func (m *ReplicaSetInfo) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -5111,38 +5503,178 @@ func (m *Rollout) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Rollout) MarshalTo(dAtA []byte) (int, error) { +func (m *ReplicaSetInfo) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *Rollout) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *ReplicaSetInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - { - size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.Pods) > 0 { + for iNdEx := len(m.Pods) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Pods[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) } - i-- - dAtA[i] = 0x1a - { - size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err + if len(m.Images) > 0 { + for iNdEx := len(m.Images) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Images[iNdEx]) + copy(dAtA[i:], m.Images[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Images[iNdEx]))) + i-- + dAtA[i] = 0x6a } - i -= size - i = encodeVarintGenerated(dAtA, i, uint64(size)) } + i -= len(m.ScaleDownDeadline) + copy(dAtA[i:], m.ScaleDownDeadline) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ScaleDownDeadline))) i-- - dAtA[i] = 0x12 - { - size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + dAtA[i] = 0x62 + i -= len(m.Template) + copy(dAtA[i:], m.Template) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Template))) + i-- + dAtA[i] = 0x5a + i = encodeVarintGenerated(dAtA, i, uint64(m.Available)) + i-- + dAtA[i] = 0x50 + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + i-- + dAtA[i] = 0x48 + i-- + if m.Preview { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + i-- + if m.Active { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x38 + i-- + if m.Canary { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + i-- + if m.Stable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) + i-- + dAtA[i] = 0x20 + i -= len(m.Icon) + copy(dAtA[i:], m.Icon) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Icon))) + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *Rollout) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Rollout) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Rollout) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -5579,6 +6111,64 @@ func (m *RolloutInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.AnalysisRuns) > 0 { + for iNdEx := len(m.AnalysisRuns) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AnalysisRuns[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + } + if len(m.Experiments) > 0 { + for iNdEx := len(m.Experiments) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Experiments[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if len(m.ReplicaSets) > 0 { + for iNdEx := len(m.ReplicaSets) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ReplicaSets[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + } + i -= len(m.Generation) + copy(dAtA[i:], m.Generation) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Generation))) + i-- + dAtA[i] = 0x7a + i -= len(m.RestartedAt) + copy(dAtA[i:], m.RestartedAt) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.RestartedAt))) + i-- + dAtA[i] = 0x72 i = encodeVarintGenerated(dAtA, i, uint64(m.Available)) i-- dAtA[i] = 0x68 @@ -6624,6 +7214,32 @@ func (m *AnalysisRunArgument) Size() (n int) { return n } +func (m *AnalysisRunInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Icon) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Revision)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Successful)) + n += 1 + sovGenerated(uint64(m.Failed)) + n += 1 + sovGenerated(uint64(m.Inconclusive)) + n += 1 + sovGenerated(uint64(m.Error)) + if len(m.Jobs) > 0 { + for _, e := range m.Jobs { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *AnalysisRunList) Size() (n int) { if m == nil { return 0 @@ -7073,6 +7689,36 @@ func (m *ExperimentCondition) Size() (n int) { return n } +func (m *ExperimentInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Icon) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Revision)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.ReplicaSets) > 0 { + for _, e := range m.ReplicaSets { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.AnalysisRuns) > 0 { + for _, e := range m.AnalysisRuns { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + func (m *ExperimentList) Size() (n int) { if m == nil { return 0 @@ -7210,6 +7856,21 @@ func (m *IstioVirtualService) Size() (n int) { return n } +func (m *JobInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Icon) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + func (m *JobMetric) Size() (n int) { if m == nil { return 0 @@ -7461,6 +8122,24 @@ func (m *PauseCondition) Size() (n int) { return n } +func (m *PodInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Icon) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Ready) + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Restarts)) + return n +} + func (m *PodTemplateMetadata) Size() (n int) { if m == nil { return 0 @@ -7509,16 +8188,7 @@ func (m *PrometheusMetric) Size() (n int) { return n } -func (m *RequiredDuringSchedulingIgnoredDuringExecution) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *Rollout) Size() (n int) { +func (m *ReplicaSetInfo) Size() (n int) { if m == nil { return 0 } @@ -7526,11 +8196,58 @@ func (m *Rollout) Size() (n int) { _ = l l = m.ObjectMeta.Size() n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() + l = len(m.Status) n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() + l = len(m.Icon) n += 1 + l + sovGenerated(uint64(l)) - return n + n += 1 + sovGenerated(uint64(m.Revision)) + n += 2 + n += 2 + n += 2 + n += 2 + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.Available)) + l = len(m.Template) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ScaleDownDeadline) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Images) > 0 { + for _, s := range m.Images { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Pods) > 0 { + for _, e := range m.Pods { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RequiredDuringSchedulingIgnoredDuringExecution) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *Rollout) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n } func (m *RolloutAnalysis) Size() (n int) { @@ -7709,6 +8426,28 @@ func (m *RolloutInfo) Size() (n int) { n += 1 + sovGenerated(uint64(m.Desired)) n += 1 + sovGenerated(uint64(m.Updated)) n += 1 + sovGenerated(uint64(m.Available)) + l = len(m.RestartedAt) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Generation) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.ReplicaSets) > 0 { + for _, e := range m.ReplicaSets { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.Experiments) > 0 { + for _, e := range m.Experiments { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } + if len(m.AnalysisRuns) > 0 { + for _, e := range m.AnalysisRuns { + l = e.Size() + n += 2 + l + sovGenerated(uint64(l)) + } + } return n } @@ -8087,6 +8826,29 @@ func (this *AnalysisRunArgument) String() string { }, "") return s } +func (this *AnalysisRunInfo) String() string { + if this == nil { + return "nil" + } + repeatedStringForJobs := "[]JobInfo{" + for _, f := range this.Jobs { + repeatedStringForJobs += strings.Replace(strings.Replace(f.String(), "JobInfo", "JobInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForJobs += "}" + s := strings.Join([]string{`&AnalysisRunInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Successful:` + fmt.Sprintf("%v", this.Successful) + `,`, + `Failed:` + fmt.Sprintf("%v", this.Failed) + `,`, + `Inconclusive:` + fmt.Sprintf("%v", this.Inconclusive) + `,`, + `Error:` + fmt.Sprintf("%v", this.Error) + `,`, + `Jobs:` + repeatedStringForJobs + `,`, + `}`, + }, "") + return s +} func (this *AnalysisRunList) String() string { if this == nil { return "nil" @@ -8408,6 +9170,32 @@ func (this *ExperimentCondition) String() string { }, "") return s } +func (this *ExperimentInfo) String() string { + if this == nil { + return "nil" + } + repeatedStringForReplicaSets := "[]ReplicaSetInfo{" + for _, f := range this.ReplicaSets { + repeatedStringForReplicaSets += strings.Replace(strings.Replace(f.String(), "ReplicaSetInfo", "ReplicaSetInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForReplicaSets += "}" + repeatedStringForAnalysisRuns := "[]AnalysisRunInfo{" + for _, f := range this.AnalysisRuns { + repeatedStringForAnalysisRuns += strings.Replace(strings.Replace(f.String(), "AnalysisRunInfo", "AnalysisRunInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForAnalysisRuns += "}" + s := strings.Join([]string{`&ExperimentInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `ReplicaSets:` + repeatedStringForReplicaSets + `,`, + `AnalysisRuns:` + repeatedStringForAnalysisRuns + `,`, + `}`, + }, "") + return s +} func (this *ExperimentList) String() string { if this == nil { return "nil" @@ -8522,6 +9310,18 @@ func (this *IstioVirtualService) String() string { }, "") return s } +func (this *JobInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&JobInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `}`, + }, "") + return s +} func (this *JobMetric) String() string { if this == nil { return "nil" @@ -8707,6 +9507,20 @@ func (this *PauseCondition) String() string { }, "") return s } +func (this *PodInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PodInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `Ready:` + fmt.Sprintf("%v", this.Ready) + `,`, + `Restarts:` + fmt.Sprintf("%v", this.Restarts) + `,`, + `}`, + }, "") + return s +} func (this *PodTemplateMetadata) String() string { if this == nil { return "nil" @@ -8759,6 +9573,34 @@ func (this *PrometheusMetric) String() string { }, "") return s } +func (this *ReplicaSetInfo) String() string { + if this == nil { + return "nil" + } + repeatedStringForPods := "[]PodInfo{" + for _, f := range this.Pods { + repeatedStringForPods += strings.Replace(strings.Replace(f.String(), "PodInfo", "PodInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForPods += "}" + s := strings.Join([]string{`&ReplicaSetInfo{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Icon:` + fmt.Sprintf("%v", this.Icon) + `,`, + `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, + `Stable:` + fmt.Sprintf("%v", this.Stable) + `,`, + `Canary:` + fmt.Sprintf("%v", this.Canary) + `,`, + `Active:` + fmt.Sprintf("%v", this.Active) + `,`, + `Preview:` + fmt.Sprintf("%v", this.Preview) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `Available:` + fmt.Sprintf("%v", this.Available) + `,`, + `Template:` + fmt.Sprintf("%v", this.Template) + `,`, + `ScaleDownDeadline:` + fmt.Sprintf("%v", this.ScaleDownDeadline) + `,`, + `Images:` + fmt.Sprintf("%v", this.Images) + `,`, + `Pods:` + repeatedStringForPods + `,`, + `}`, + }, "") + return s +} func (this *RequiredDuringSchedulingIgnoredDuringExecution) String() string { if this == nil { return "nil" @@ -8909,6 +9751,21 @@ func (this *RolloutInfo) String() string { if this == nil { return "nil" } + repeatedStringForReplicaSets := "[]ReplicaSetInfo{" + for _, f := range this.ReplicaSets { + repeatedStringForReplicaSets += strings.Replace(strings.Replace(f.String(), "ReplicaSetInfo", "ReplicaSetInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForReplicaSets += "}" + repeatedStringForExperiments := "[]ExperimentInfo{" + for _, f := range this.Experiments { + repeatedStringForExperiments += strings.Replace(strings.Replace(f.String(), "ExperimentInfo", "ExperimentInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForExperiments += "}" + repeatedStringForAnalysisRuns := "[]AnalysisRunInfo{" + for _, f := range this.AnalysisRuns { + repeatedStringForAnalysisRuns += strings.Replace(strings.Replace(f.String(), "AnalysisRunInfo", "AnalysisRunInfo", 1), `&`, ``, 1) + "," + } + repeatedStringForAnalysisRuns += "}" s := strings.Join([]string{`&RolloutInfo{`, `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`, `Status:` + fmt.Sprintf("%v", this.Status) + `,`, @@ -8923,6 +9780,11 @@ func (this *RolloutInfo) String() string { `Desired:` + fmt.Sprintf("%v", this.Desired) + `,`, `Updated:` + fmt.Sprintf("%v", this.Updated) + `,`, `Available:` + fmt.Sprintf("%v", this.Available) + `,`, + `RestartedAt:` + fmt.Sprintf("%v", this.RestartedAt) + `,`, + `Generation:` + fmt.Sprintf("%v", this.Generation) + `,`, + `ReplicaSets:` + repeatedStringForReplicaSets + `,`, + `Experiments:` + repeatedStringForExperiments + `,`, + `AnalysisRuns:` + repeatedStringForAnalysisRuns + `,`, `}`, }, "") return s @@ -9648,7 +10510,7 @@ func (m *AnalysisRunArgument) Unmarshal(dAtA []byte) error { } return nil } -func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { +func (m *AnalysisRunInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -9671,15 +10533,15 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnalysisRunList: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisRunInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisRunList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisRunInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -9706,15 +10568,15 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9724,84 +10586,29 @@ func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, AnalysisRun{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Icon = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AnalysisRunSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisRunSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) } - var msglen int + m.Revision = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9811,31 +10618,16 @@ func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Revision |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Metrics = append(m.Metrics, Metric{}) - if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9845,31 +10637,29 @@ func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Args = append(m.Args, Argument{}) - if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Status = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 5: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Successful", wireType) } - var v int + m.Successful = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9879,70 +10669,16 @@ func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + m.Successful |= int32(b&0x7F) << shift if b < 0x80 { break } } - m.Terminate = bool(v != 0) - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: AnalysisRunStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) } - var stringLen uint64 + m.Failed = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9952,29 +10688,16 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Failed |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Inconclusive", wireType) } - var stringLen uint64 + m.Inconclusive = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -9984,29 +10707,16 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + m.Inconclusive |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricResults", wireType) + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) } - var msglen int + m.Error = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10016,29 +10726,14 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Error |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.MetricResults = append(m.MetricResults, MetricResult{}) - if err := m.MetricResults[len(m.MetricResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Jobs", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10065,10 +10760,8 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartedAt == nil { - m.StartedAt = &v1.Time{} - } - if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Jobs = append(m.Jobs, JobInfo{}) + if err := m.Jobs[len(m.Jobs)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10096,7 +10789,7 @@ func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { +func (m *AnalysisRunList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10119,15 +10812,15 @@ func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnalysisTemplate: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisRunList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisRunList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10154,13 +10847,13 @@ func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10187,7 +10880,8 @@ func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, AnalysisRun{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10215,7 +10909,7 @@ func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { } return nil } -func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { +func (m *AnalysisRunSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10238,15 +10932,15 @@ func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnalysisTemplateList: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisRunSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisRunSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10273,13 +10967,14 @@ func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Metrics = append(m.Metrics, Metric{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10306,11 +11001,31 @@ func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, AnalysisTemplate{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Terminate = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -10335,7 +11050,7 @@ func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { } return nil } -func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { +func (m *AnalysisRunStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10358,17 +11073,17 @@ func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AnalysisTemplateSpec: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisRunStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AnalysisTemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10378,31 +11093,29 @@ func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Metrics = append(m.Metrics, Metric{}) - if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10412,52 +11125,120 @@ func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Args = append(m.Args, Argument{}) - if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetricResults", wireType) } - if skippy < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *AntiAffinity) Unmarshal(dAtA []byte) error { - l := len(dAtA) + m.MetricResults = append(m.MetricResults, MetricResult{}) + if err := m.MetricResults[len(m.MetricResults)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.StartedAt == nil { + m.StartedAt = &v1.Time{} + } + if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AnalysisTemplate) Unmarshal(dAtA []byte) error { + l := len(dAtA) iNdEx := 0 for iNdEx < l { preIndex := iNdEx @@ -10479,15 +11260,15 @@ func (m *AntiAffinity) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: AntiAffinity: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisTemplate: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: AntiAffinity: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10514,16 +11295,13 @@ func (m *AntiAffinity) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.PreferredDuringSchedulingIgnoredDuringExecution == nil { - m.PreferredDuringSchedulingIgnoredDuringExecution = &PreferredDuringSchedulingIgnoredDuringExecution{} - } - if err := m.PreferredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10550,10 +11328,7 @@ func (m *AntiAffinity) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.RequiredDuringSchedulingIgnoredDuringExecution == nil { - m.RequiredDuringSchedulingIgnoredDuringExecution = &RequiredDuringSchedulingIgnoredDuringExecution{} - } - if err := m.RequiredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10581,7 +11356,7 @@ func (m *AntiAffinity) Unmarshal(dAtA []byte) error { } return nil } -func (m *Argument) Unmarshal(dAtA []byte) error { +func (m *AnalysisTemplateList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10604,17 +11379,17 @@ func (m *Argument) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Argument: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisTemplateList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Argument: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10624,60 +11399,28 @@ func (m *Argument) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - s := string(dAtA[iNdEx:postIndex]) - m.Value = &s iNdEx = postIndex - case 3: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10704,10 +11447,8 @@ func (m *Argument) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ValueFrom == nil { - m.ValueFrom = &ValueFrom{} - } - if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, AnalysisTemplate{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10735,7 +11476,7 @@ func (m *Argument) Unmarshal(dAtA []byte) error { } return nil } -func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { +func (m *AnalysisTemplateSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10758,17 +11499,17 @@ func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ArgumentValueFrom: wiretype end group for non-group") + return fmt.Errorf("proto: AnalysisTemplateSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ArgumentValueFrom: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AnalysisTemplateSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PodTemplateHashValue", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10778,28 +11519,29 @@ func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - s := ValueFromPodTemplateHash(dAtA[iNdEx:postIndex]) - m.PodTemplateHashValue = &s + m.Metrics = append(m.Metrics, Metric{}) + if err := m.Metrics[len(m.Metrics)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldRef", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10826,10 +11568,8 @@ func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.FieldRef == nil { - m.FieldRef = &FieldRef{} - } - if err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -10857,7 +11597,7 @@ func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { } return nil } -func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { +func (m *AntiAffinity) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -10880,17 +11620,17 @@ func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BlueGreenStatus: wiretype end group for non-group") + return fmt.Errorf("proto: AntiAffinity: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BlueGreenStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: AntiAffinity: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreviewSelector", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PreferredDuringSchedulingIgnoredDuringExecution", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -10900,79 +11640,31 @@ func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.PreviewSelector = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ActiveSelector", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated + if m.PreferredDuringSchedulingIgnoredDuringExecution == nil { + m.PreferredDuringSchedulingIgnoredDuringExecution = &PreferredDuringSchedulingIgnoredDuringExecution{} } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.PreferredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.ActiveSelector = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ScaleUpPreviewCheckPoint", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ScaleUpPreviewCheckPoint = bool(v != 0) - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysisRunStatus", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field RequiredDuringSchedulingIgnoredDuringExecution", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -10999,46 +11691,10 @@ func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.PrePromotionAnalysisRunStatus == nil { - m.PrePromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} - } - if err := m.PrePromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysisRunStatus", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PostPromotionAnalysisRunStatus == nil { - m.PostPromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} + if m.RequiredDuringSchedulingIgnoredDuringExecution == nil { + m.RequiredDuringSchedulingIgnoredDuringExecution = &RequiredDuringSchedulingIgnoredDuringExecution{} } - if err := m.PostPromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.RequiredDuringSchedulingIgnoredDuringExecution.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -11066,7 +11722,7 @@ func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { +func (m *Argument) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11089,15 +11745,15 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: BlueGreenStrategy: wiretype end group for non-group") + return fmt.Errorf("proto: Argument: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: BlueGreenStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Argument: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ActiveService", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11125,11 +11781,11 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.ActiveService = string(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreviewService", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -11157,71 +11813,12 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PreviewService = string(dAtA[iNdEx:postIndex]) + s := string(dAtA[iNdEx:postIndex]) + m.Value = &s iNdEx = postIndex case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field PreviewReplicaCount", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.PreviewReplicaCount = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionEnabled", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - b := bool(v != 0) - m.AutoPromotionEnabled = &b - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionSeconds", wireType) - } - m.AutoPromotionSeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AutoPromotionSeconds |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ValueFrom", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11248,58 +11845,71 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.MaxUnavailable == nil { - m.MaxUnavailable = &intstr.IntOrString{} + if m.ValueFrom == nil { + m.ValueFrom = &ValueFrom{} } - if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ValueFrom.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelaySeconds", wireType) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + if skippy < 0 { + return ErrInvalidLengthGenerated } - m.ScaleDownDelaySeconds = &v - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayRevisionLimit", wireType) + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF } - m.ScaleDownDelayRevisionLimit = &v - case 9: + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ArgumentValueFrom) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ArgumentValueFrom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ArgumentValueFrom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysis", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PodTemplateHashValue", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11309,31 +11919,28 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.PrePromotionAnalysis == nil { - m.PrePromotionAnalysis = &RolloutAnalysis{} - } - if err := m.PrePromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + s := ValueFromPodTemplateHash(dAtA[iNdEx:postIndex]) + m.PodTemplateHashValue = &s iNdEx = postIndex - case 10: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FieldRef", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11360,126 +11967,18 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AntiAffinity == nil { - m.AntiAffinity = &AntiAffinity{} + if m.FieldRef == nil { + m.FieldRef = &FieldRef{} } - if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.FieldRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysis", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PostPromotionAnalysis == nil { - m.PostPromotionAnalysis = &RolloutAnalysis{} - } - if err := m.PostPromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PreviewMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.PreviewMetadata == nil { - m.PreviewMetadata = &PodTemplateMetadata{} - } - if err := m.PreviewMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ActiveMetadata", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.ActiveMetadata == nil { - m.ActiveMetadata = &PodTemplateMetadata{} - } - if err := m.ActiveMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } if skippy < 0 { return ErrInvalidLengthGenerated @@ -11499,7 +11998,7 @@ func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { } return nil } -func (m *CanaryStatus) Unmarshal(dAtA []byte) error { +func (m *BlueGreenStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11522,17 +12021,17 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CanaryStatus: wiretype end group for non-group") + return fmt.Errorf("proto: BlueGreenStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CanaryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BlueGreenStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentStepAnalysisRunStatus", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PreviewSelector", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11542,31 +12041,79 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.CurrentStepAnalysisRunStatus == nil { - m.CurrentStepAnalysisRunStatus = &RolloutAnalysisRunStatus{} + m.PreviewSelector = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveSelector", wireType) } - if err := m.CurrentStepAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.ActiveSelector = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleUpPreviewCheckPoint", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ScaleUpPreviewCheckPoint = bool(v != 0) + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentBackgroundAnalysisRunStatus", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysisRunStatus", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -11593,18 +12140,18 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CurrentBackgroundAnalysisRunStatus == nil { - m.CurrentBackgroundAnalysisRunStatus = &RolloutAnalysisRunStatus{} + if m.PrePromotionAnalysisRunStatus == nil { + m.PrePromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} } - if err := m.CurrentBackgroundAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PrePromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentExperiment", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysisRunStatus", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11614,23 +12161,27 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.CurrentExperiment = string(dAtA[iNdEx:postIndex]) + if m.PostPromotionAnalysisRunStatus == nil { + m.PostPromotionAnalysisRunStatus = &RolloutAnalysisRunStatus{} + } + if err := m.PostPromotionAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -11656,7 +12207,7 @@ func (m *CanaryStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *CanaryStep) Unmarshal(dAtA []byte) error { +func (m *BlueGreenStrategy) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -11679,17 +12230,17 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: CanaryStep: wiretype end group for non-group") + return fmt.Errorf("proto: BlueGreenStrategy: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: CanaryStep: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: BlueGreenStrategy: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field SetWeight", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveService", wireType) } - var v int32 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11699,17 +12250,29 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.SetWeight = &v + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ActiveService = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Pause", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PreviewService", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11719,33 +12282,29 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Pause == nil { - m.Pause = &RolloutPause{} - } - if err := m.Pause.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.PreviewService = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Experiment", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PreviewReplicaCount", wireType) } - var msglen int + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11755,33 +12314,17 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Experiment == nil { - m.Experiment = &RolloutExperimentStep{} - } - if err := m.Experiment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.PreviewReplicaCount = &v case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionEnabled", wireType) } - var msglen int + var v int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11791,33 +12334,18 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Analysis == nil { - m.Analysis = &RolloutAnalysis{} - } - if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + b := bool(v != 0) + m.AutoPromotionEnabled = &b case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SetCanaryScale", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoPromotionSeconds", wireType) } - var msglen int + m.AutoPromotionSeconds = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11827,86 +12355,16 @@ func (m *CanaryStep) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.AutoPromotionSeconds |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.SetCanaryScale == nil { - m.SetCanaryScale = &SetCanaryScale{} - } - if err := m.SetCanaryScale.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: CanaryStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: CanaryStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CanaryService", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11916,29 +12374,33 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.CanaryService = string(dAtA[iNdEx:postIndex]) + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StableService", wireType) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelaySeconds", wireType) } - var stringLen uint64 + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11948,29 +12410,17 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + v |= int32(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.StableService = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Steps", wireType) + m.ScaleDownDelaySeconds = &v + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayRevisionLimit", wireType) } - var msglen int + var v int32 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -11980,29 +12430,15 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + v |= int32(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Steps = append(m.Steps, CanaryStep{}) - if err := m.Steps[len(m.Steps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: + m.ScaleDownDelayRevisionLimit = &v + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TrafficRouting", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PrePromotionAnalysis", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12029,16 +12465,16 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.TrafficRouting == nil { - m.TrafficRouting = &RolloutTrafficRouting{} + if m.PrePromotionAnalysis == nil { + m.PrePromotionAnalysis = &RolloutAnalysis{} } - if err := m.TrafficRouting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PrePromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12065,16 +12501,16 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.MaxUnavailable == nil { - m.MaxUnavailable = &intstr.IntOrString{} + if m.AntiAffinity == nil { + m.AntiAffinity = &AntiAffinity{} } - if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 11: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PostPromotionAnalysis", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12101,16 +12537,16 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.MaxSurge == nil { - m.MaxSurge = &intstr.IntOrString{} + if m.PostPromotionAnalysis == nil { + m.PostPromotionAnalysis = &RolloutAnalysis{} } - if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PostPromotionAnalysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 7: + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PreviewMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12137,16 +12573,16 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Analysis == nil { - m.Analysis = &RolloutAnalysisBackground{} + if m.PreviewMetadata == nil { + m.PreviewMetadata = &PodTemplateMetadata{} } - if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PreviewMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 8: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ActiveMetadata", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12173,21 +12609,74 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AntiAffinity == nil { - m.AntiAffinity = &AntiAffinity{} + if m.ActiveMetadata == nil { + m.ActiveMetadata = &PodTemplateMetadata{} } - if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ActiveMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CanaryMetadata", wireType) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CanaryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CanaryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CanaryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentStepAnalysisRunStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } if iNdEx >= l { return io.ErrUnexpectedEOF @@ -12209,16 +12698,16 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.CanaryMetadata == nil { - m.CanaryMetadata = &PodTemplateMetadata{} + if m.CurrentStepAnalysisRunStatus == nil { + m.CurrentStepAnalysisRunStatus = &RolloutAnalysisRunStatus{} } - if err := m.CanaryMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.CurrentStepAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StableMetadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CurrentBackgroundAnalysisRunStatus", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12245,13 +12734,45 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StableMetadata == nil { - m.StableMetadata = &PodTemplateMetadata{} + if m.CurrentBackgroundAnalysisRunStatus == nil { + m.CurrentBackgroundAnalysisRunStatus = &RolloutAnalysisRunStatus{} } - if err := m.StableMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.CurrentBackgroundAnalysisRunStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentExperiment", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentExperiment = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -12276,7 +12797,7 @@ func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { } return nil } -func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { +func (m *CanaryStep) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12299,15 +12820,35 @@ func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ClusterAnalysisTemplate: wiretype end group for non-group") + return fmt.Errorf("proto: CanaryStep: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterAnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CanaryStep: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field SetWeight", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.SetWeight = &v + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Pause", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12334,13 +12875,16 @@ func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Pause == nil { + m.Pause = &RolloutPause{} + } + if err := m.Pause.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Experiment", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12367,66 +12911,16 @@ func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.Experiment == nil { + m.Experiment = &RolloutExperimentStep{} } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { + if err := m.Experiment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ClusterAnalysisTemplateList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ClusterAnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12453,13 +12947,16 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.Analysis == nil { + m.Analysis = &RolloutAnalysis{} + } + if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SetCanaryScale", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12486,8 +12983,10 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, ClusterAnalysisTemplate{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.SetCanaryScale == nil { + m.SetCanaryScale = &SetCanaryScale{} + } + if err := m.SetCanaryScale.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -12515,7 +13014,7 @@ func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { } return nil } -func (m *DatadogMetric) Unmarshal(dAtA []byte) error { +func (m *CanaryStrategy) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12538,15 +13037,15 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: DatadogMetric: wiretype end group for non-group") + return fmt.Errorf("proto: CanaryStrategy: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: DatadogMetric: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: CanaryStrategy: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CanaryService", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12574,11 +13073,11 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Interval = DurationString(dAtA[iNdEx:postIndex]) + m.CanaryService = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StableService", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -12606,64 +13105,45 @@ func (m *DatadogMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Query = string(dAtA[iNdEx:postIndex]) + m.StableService = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Steps", wireType) } - if skippy < 0 { + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + msglen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Experiment) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.Steps = append(m.Steps, CanaryStep{}) + if err := m.Steps[len(m.Steps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Experiment: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Experiment: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TrafficRouting", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12690,13 +13170,16 @@ func (m *Experiment) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.TrafficRouting == nil { + m.TrafficRouting = &RolloutTrafficRouting{} + } + if err := m.TrafficRouting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12723,13 +13206,16 @@ func (m *Experiment) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 3: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -12756,68 +13242,18 @@ func (m *Experiment) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ExperimentAnalysisRunStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentAnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Analysis", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -12827,29 +13263,33 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if m.Analysis == nil { + m.Analysis = &RolloutAnalysisBackground{} + } + if err := m.Analysis.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRun", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AntiAffinity", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -12859,29 +13299,33 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.AnalysisRun = string(dAtA[iNdEx:postIndex]) + if m.AntiAffinity == nil { + m.AntiAffinity = &AntiAffinity{} + } + if err := m.AntiAffinity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 9: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CanaryMetadata", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -12891,29 +13335,33 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + if m.CanaryMetadata == nil { + m.CanaryMetadata = &PodTemplateMetadata{} + } + if err := m.CanaryMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 4: + case 10: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StableMetadata", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -12923,23 +13371,27 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + if m.StableMetadata == nil { + m.StableMetadata = &PodTemplateMetadata{} + } + if err := m.StableMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -12965,7 +13417,7 @@ func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { +func (m *ClusterAnalysisTemplate) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -12988,17 +13440,17 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: wiretype end group for non-group") + return fmt.Errorf("proto: ClusterAnalysisTemplate: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ClusterAnalysisTemplate: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13008,29 +13460,30 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TemplateName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13040,47 +13493,81 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.TemplateName = string(dAtA[iNdEx:postIndex]) + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ClusterScope", wireType) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if skippy < 0 { + return ErrInvalidLengthGenerated } - m.ClusterScope = bool(v != 0) - case 4: + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterAnalysisTemplateList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterAnalysisTemplateList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterAnalysisTemplateList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13107,16 +13594,15 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Args = append(m.Args, Argument{}) - if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RequiredForCompletion", wireType) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } - var v int + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13126,12 +13612,26 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - m.RequiredForCompletion = bool(v != 0) + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ClusterAnalysisTemplate{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -13156,7 +13656,7 @@ func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { +func (m *DatadogMetric) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13179,15 +13679,15 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExperimentCondition: wiretype end group for non-group") + return fmt.Errorf("proto: DatadogMetric: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: DatadogMetric: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13215,11 +13715,11 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Type = ExperimentConditionType(dAtA[iNdEx:postIndex]) + m.Interval = DurationString(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13247,44 +13747,64 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + m.Query = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - if msglen < 0 { + if skippy < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Experiment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } - iNdEx = postIndex - case 4: + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Experiment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Experiment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13311,15 +13831,15 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 5: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13329,29 +13849,30 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = string(dAtA[iNdEx:postIndex]) + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 6: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13361,23 +13882,24 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -13403,7 +13925,7 @@ func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExperimentList) Unmarshal(dAtA []byte) error { +func (m *ExperimentAnalysisRunStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13426,17 +13948,17 @@ func (m *ExperimentList) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExperimentList: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentAnalysisRunStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentList: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentAnalysisRunStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13446,30 +13968,29 @@ func (m *ExperimentList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRun", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13479,33 +14000,95 @@ func (m *ExperimentList) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Items = append(m.Items, Experiment{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AnalysisRun = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { return ErrInvalidLengthGenerated } if (iNdEx + skippy) < 0 { @@ -13523,7 +14106,7 @@ func (m *ExperimentList) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { +func (m *ExperimentAnalysisTemplateRef) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13546,17 +14129,17 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExperimentSpec: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentSpec: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentAnalysisTemplateRef: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Templates", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13566,29 +14149,27 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Templates = append(m.Templates, TemplateSpec{}) - if err := m.Templates[len(m.Templates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TemplateName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13616,31 +14197,11 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Duration = DurationString(dAtA[iNdEx:postIndex]) + m.TemplateName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= int32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.ProgressDeadlineSeconds = &v - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ClusterScope", wireType) } var v int for shift := uint(0); ; shift += 7 { @@ -13657,10 +14218,10 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { break } } - m.Terminate = bool(v != 0) - case 5: + m.ClusterScope = bool(v != 0) + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Analyses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Args", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13687,11 +14248,31 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Analyses = append(m.Analyses, ExperimentAnalysisTemplateRef{}) - if err := m.Analyses[len(m.Analyses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Args = append(m.Args, Argument{}) + if err := m.Args[len(m.Args)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredForCompletion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.RequiredForCompletion = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -13716,7 +14297,7 @@ func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { } return nil } -func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { +func (m *ExperimentCondition) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13739,15 +14320,15 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: ExperimentStatus: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentCondition: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: ExperimentStatus: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentCondition: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13775,11 +14356,11 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + m.Type = ExperimentConditionType(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -13807,11 +14388,11 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TemplateStatuses", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13838,14 +14419,13 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.TemplateStatuses = append(m.TemplateStatuses, TemplateStatus{}) - if err := m.TemplateStatuses[len(m.TemplateStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AvailableAt", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -13872,18 +14452,15 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AvailableAt == nil { - m.AvailableAt = &v1.Time{} - } - if err := m.AvailableAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13893,31 +14470,29 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Conditions = append(m.Conditions, ExperimentCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Reason = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRuns", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -13927,25 +14502,23 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.AnalysisRuns = append(m.AnalysisRuns, ExperimentAnalysisRunStatus{}) - if err := m.AnalysisRuns[len(m.AnalysisRuns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -13971,7 +14544,7 @@ func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { } return nil } -func (m *FieldRef) Unmarshal(dAtA []byte) error { +func (m *ExperimentInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -13994,17 +14567,17 @@ func (m *FieldRef) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: FieldRef: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: FieldRef: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FieldPath", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14014,80 +14587,79 @@ func (m *FieldRef) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.FieldPath = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } - if skippy < 0 { + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + intStringLen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) > l { + if postIndex > l { return io.ErrUnexpectedEOF } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + m.Icon = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + m.Revision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Revision |= int32(b&0x7F) << shift + if b < 0x80 { + break + } } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: IstioDestinationRule: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: IstioDestinationRule: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14115,11 +14687,11 @@ func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Status = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CanarySubsetName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14147,13 +14719,13 @@ func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.CanarySubsetName = string(dAtA[iNdEx:postIndex]) + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StableSubsetName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ReplicaSets", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14163,23 +14735,59 @@ func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.StableSubsetName = string(dAtA[iNdEx:postIndex]) + m.ReplicaSets = append(m.ReplicaSets, ReplicaSetInfo{}) + if err := m.ReplicaSets[len(m.ReplicaSets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnalysisRuns = append(m.AnalysisRuns, AnalysisRunInfo{}) + if err := m.AnalysisRuns[len(m.AnalysisRuns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -14205,7 +14813,7 @@ func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { } return nil } -func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { +func (m *ExperimentList) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14228,15 +14836,15 @@ func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: IstioTrafficRouting: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentList: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: IstioTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentList: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VirtualService", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14263,13 +14871,13 @@ func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.VirtualService.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DestinationRule", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14296,10 +14904,8 @@ func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.DestinationRule == nil { - m.DestinationRule = &IstioDestinationRule{} - } - if err := m.DestinationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Items = append(m.Items, Experiment{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14327,7 +14933,7 @@ func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { } return nil } -func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { +func (m *ExperimentSpec) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14350,17 +14956,17 @@ func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: IstioVirtualService: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentSpec: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: IstioVirtualService: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentSpec: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Templates", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14370,27 +14976,29 @@ func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Templates = append(m.Templates, TemplateSpec{}) + if err := m.Templates[len(m.Templates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Routes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14418,7 +15026,81 @@ func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Routes = append(m.Routes, string(dAtA[iNdEx:postIndex])) + m.Duration = DurationString(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ProgressDeadlineSeconds = &v + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Terminate", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Terminate = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Analyses", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Analyses = append(m.Analyses, ExperimentAnalysisTemplateRef{}) + if err := m.Analyses[len(m.Analyses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -14444,7 +15126,7 @@ func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { } return nil } -func (m *JobMetric) Unmarshal(dAtA []byte) error { +func (m *ExperimentStatus) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14467,17 +15149,17 @@ func (m *JobMetric) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: JobMetric: wiretype end group for non-group") + return fmt.Errorf("proto: ExperimentStatus: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: JobMetric: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ExperimentStatus: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14487,148 +15169,29 @@ func (m *JobMetric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *KayentaMetric) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: KayentaMetric: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: KayentaMetric: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Application", wireType) - } - var stringLen uint64 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14654,13 +15217,13 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Application = string(dAtA[iNdEx:postIndex]) + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CanaryConfigName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field TemplateStatuses", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14670,61 +15233,31 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.CanaryConfigName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetricsAccountName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF + m.TemplateStatuses = append(m.TemplateStatuses, TemplateStatus{}) + if err := m.TemplateStatuses[len(m.TemplateStatuses)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.MetricsAccountName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConfigurationAccountName", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AvailableAt", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14734,59 +15267,31 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.ConfigurationAccountName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StorageAccountName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthGenerated + if m.AvailableAt == nil { + m.AvailableAt = &v1.Time{} } - if postIndex > l { - return io.ErrUnexpectedEOF + if err := m.AvailableAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.StorageAccountName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 7: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Threshold", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14813,13 +15318,14 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Threshold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Conditions = append(m.Conditions, ExperimentCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 8: + case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRuns", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -14846,8 +15352,8 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Scopes = append(m.Scopes, KayentaScope{}) - if err := m.Scopes[len(m.Scopes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.AnalysisRuns = append(m.AnalysisRuns, ExperimentAnalysisRunStatus{}) + if err := m.AnalysisRuns[len(m.AnalysisRuns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -14875,7 +15381,7 @@ func (m *KayentaMetric) Unmarshal(dAtA []byte) error { } return nil } -func (m *KayentaScope) Unmarshal(dAtA []byte) error { +func (m *FieldRef) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -14898,15 +15404,15 @@ func (m *KayentaScope) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: KayentaScope: wiretype end group for non-group") + return fmt.Errorf("proto: FieldRef: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: KayentaScope: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: FieldRef: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FieldPath", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -14934,46 +15440,130 @@ func (m *KayentaScope) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.FieldPath = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ControlScope", wireType) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IstioDestinationRule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IstioDestinationRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IstioDestinationRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ControlScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CanarySubsetName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.CanarySubsetName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ExperimentScope", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StableSubsetName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -14983,24 +15573,23 @@ func (m *KayentaScope) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.ExperimentScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.StableSubsetName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -15026,7 +15615,7 @@ func (m *KayentaScope) Unmarshal(dAtA []byte) error { } return nil } -func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { +func (m *IstioTrafficRouting) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15049,17 +15638,17 @@ func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: KayentaThreshold: wiretype end group for non-group") + return fmt.Errorf("proto: IstioTrafficRouting: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: KayentaThreshold: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: IstioTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Pass", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VirtualService", wireType) } - m.Pass = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15069,16 +15658,30 @@ func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Pass |= int64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.VirtualService.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Marginal", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DestinationRule", wireType) } - m.Marginal = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15088,11 +15691,28 @@ func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Marginal |= int64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DestinationRule == nil { + m.DestinationRule = &IstioDestinationRule{} + } + if err := m.DestinationRule.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -15117,7 +15737,7 @@ func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { } return nil } -func (m *Measurement) Unmarshal(dAtA []byte) error { +func (m *IstioVirtualService) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15140,15 +15760,15 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Measurement: wiretype end group for non-group") + return fmt.Errorf("proto: IstioVirtualService: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Measurement: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: IstioVirtualService: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15176,11 +15796,11 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Routes", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15208,11 +15828,64 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + m.Routes = append(m.Routes, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex - case 3: + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15239,18 +15912,15 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.StartedAt == nil { - m.StartedAt = &v1.Time{} - } - if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FinishedAt", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15260,31 +15930,27 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.FinishedAt == nil { - m.FinishedAt = &v1.Time{} - } - if err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Status = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15312,9 +15978,62 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Value = string(dAtA[iNdEx:postIndex]) + m.Icon = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 6: + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *JobMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: JobMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: JobMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } @@ -15343,107 +16062,13 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Metadata == nil { - m.Metadata = make(map[string]string) - } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } + if err := m.Metadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - m.Metadata[mapkey] = mapvalue iNdEx = postIndex - case 7: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResumeAt", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15470,10 +16095,7 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ResumeAt == nil { - m.ResumeAt = &v1.Time{} - } - if err := m.ResumeAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -15501,7 +16123,7 @@ func (m *Measurement) Unmarshal(dAtA []byte) error { } return nil } -func (m *Metric) Unmarshal(dAtA []byte) error { +func (m *KayentaMetric) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15524,15 +16146,15 @@ func (m *Metric) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: Metric: wiretype end group for non-group") + return fmt.Errorf("proto: KayentaMetric: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: Metric: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: KayentaMetric: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15560,11 +16182,11 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Name = string(dAtA[iNdEx:postIndex]) + m.Address = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Application", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15592,11 +16214,11 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Interval = DurationString(dAtA[iNdEx:postIndex]) + m.Application = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InitialDelay", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field CanaryConfigName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15624,13 +16246,13 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.InitialDelay = DurationString(dAtA[iNdEx:postIndex]) + m.CanaryConfigName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field MetricsAccountName", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15640,31 +16262,27 @@ func (m *Metric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Count == nil { - m.Count = &intstr.IntOrString{} - } - if err := m.Count.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.MetricsAccountName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field SuccessCondition", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ConfigurationAccountName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15692,11 +16310,11 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.SuccessCondition = string(dAtA[iNdEx:postIndex]) + m.ConfigurationAccountName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailureCondition", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StorageAccountName", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -15724,11 +16342,11 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.FailureCondition = string(dAtA[iNdEx:postIndex]) + m.StorageAccountName = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field FailureLimit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Threshold", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15755,16 +16373,13 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.FailureLimit == nil { - m.FailureLimit = &intstr.IntOrString{} - } - if err := m.FailureLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Threshold.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 8: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field InconclusiveLimit", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Scopes", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15791,31 +16406,114 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.InconclusiveLimit == nil { - m.InconclusiveLimit = &intstr.IntOrString{} - } - if err := m.InconclusiveLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Scopes = append(m.Scopes, KayentaScope{}) + if err := m.Scopes[len(m.Scopes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveErrorLimit", wireType) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KayentaScope) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KayentaScope: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KayentaScope: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ControlScope", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } } if msglen < 0 { return ErrInvalidLengthGenerated @@ -15827,16 +16525,13 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.ConsecutiveErrorLimit == nil { - m.ConsecutiveErrorLimit = &intstr.IntOrString{} - } - if err := m.ConsecutiveErrorLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ControlScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 10: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ExperimentScope", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -15863,7 +16558,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ExperimentScope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -15891,7 +16586,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error { } return nil } -func (m *MetricProvider) Unmarshal(dAtA []byte) error { +func (m *KayentaThreshold) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -15914,17 +16609,17 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MetricProvider: wiretype end group for non-group") + return fmt.Errorf("proto: KayentaThreshold: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MetricProvider: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: KayentaThreshold: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Prometheus", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Pass", wireType) } - var msglen int + m.Pass = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15934,33 +16629,16 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Pass |= int64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenerated - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Prometheus == nil { - m.Prometheus = &PrometheusMetric{} - } - if err := m.Prometheus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Kayenta", wireType) + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Marginal", wireType) } - var msglen int + m.Marginal = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -15970,33 +16648,69 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + m.Marginal |= int64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen - if postIndex < 0 { + if (iNdEx + skippy) < 0 { return ErrInvalidLengthGenerated } - if postIndex > l { + if (iNdEx + skippy) > l { return io.ErrUnexpectedEOF } - if m.Kayenta == nil { - m.Kayenta = &KayentaMetric{} + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Measurement) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } - if err := m.Kayenta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err + if iNdEx >= l { + return io.ErrUnexpectedEOF } - iNdEx = postIndex - case 3: + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Measurement: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Measurement: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Web", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16006,33 +16720,29 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Web == nil { - m.Web = &WebMetric{} - } - if err := m.Web.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 4: + case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Datadog", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16042,31 +16752,27 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Datadog == nil { - m.Datadog = &DatadogMetric{} - } - if err := m.Datadog.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Message = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 5: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Wavefront", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field StartedAt", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16093,16 +16799,16 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Wavefront == nil { - m.Wavefront = &WavefrontMetric{} + if m.StartedAt == nil { + m.StartedAt = &v1.Time{} } - if err := m.Wavefront.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.StartedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - case 6: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field NewRelic", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field FinishedAt", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16129,16 +16835,175 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.NewRelic == nil { - m.NewRelic = &NewRelicMetric{} + if m.FinishedAt == nil { + m.FinishedAt = &v1.Time{} } - if err := m.NewRelic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.FinishedAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metadata == nil { + m.Metadata = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Metadata[mapkey] = mapvalue + iNdEx = postIndex case 7: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Job", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ResumeAt", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16165,10 +17030,10 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Job == nil { - m.Job = &JobMetric{} + if m.ResumeAt == nil { + m.ResumeAt = &v1.Time{} } - if err := m.Job.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.ResumeAt.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -16196,7 +17061,7 @@ func (m *MetricProvider) Unmarshal(dAtA []byte) error { } return nil } -func (m *MetricResult) Unmarshal(dAtA []byte) error { +func (m *Metric) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16219,10 +17084,10 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MetricResult: wiretype end group for non-group") + return fmt.Errorf("proto: Metric: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MetricResult: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: Metric: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -16259,7 +17124,7 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Interval", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16287,13 +17152,13 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) + m.Interval = DurationString(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Measurements", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field InitialDelay", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16303,31 +17168,29 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Measurements = append(m.Measurements, Measurement{}) - if err := m.Measurements[len(m.Measurements)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.InitialDelay = DurationString(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16337,29 +17200,33 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Message = string(dAtA[iNdEx:postIndex]) + if m.Count == nil { + m.Count = &intstr.IntOrString{} + } + if err := m.Count.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SuccessCondition", wireType) } - m.Count = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16369,16 +17236,29 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Count |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SuccessCondition = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Successful", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailureCondition", wireType) } - m.Successful = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16388,35 +17268,65 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Successful |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated } - m.Failed = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FailureCondition = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FailureLimit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } if iNdEx >= l { return io.ErrUnexpectedEOF } b := dAtA[iNdEx] iNdEx++ - m.Failed |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FailureLimit == nil { + m.FailureLimit = &intstr.IntOrString{} + } + if err := m.FailureLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Inconclusive", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InconclusiveLimit", wireType) } - m.Inconclusive = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16426,16 +17336,33 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Inconclusive |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InconclusiveLimit == nil { + m.InconclusiveLimit = &intstr.IntOrString{} + } + if err := m.InconclusiveLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveErrorLimit", wireType) } - m.Error = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16445,16 +17372,33 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Error |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConsecutiveErrorLimit == nil { + m.ConsecutiveErrorLimit = &intstr.IntOrString{} + } + if err := m.ConsecutiveErrorLimit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex case 10: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveError", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) } - m.ConsecutiveError = 0 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16464,11 +17408,25 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.ConsecutiveError |= int32(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -16493,7 +17451,7 @@ func (m *MetricResult) Unmarshal(dAtA []byte) error { } return nil } -func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { +func (m *MetricProvider) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16516,17 +17474,17 @@ func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: NewRelicMetric: wiretype end group for non-group") + return fmt.Errorf("proto: MetricProvider: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: NewRelicMetric: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MetricProvider: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Profile", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Prometheus", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16536,29 +17494,33 @@ func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Profile = string(dAtA[iNdEx:postIndex]) + if m.Prometheus == nil { + m.Prometheus = &PrometheusMetric{} + } + if err := m.Prometheus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Kayenta", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16568,82 +17530,33 @@ func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.Query = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF + if m.Kayenta == nil { + m.Kayenta = &KayentaMetric{} } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break + if err := m.Kayenta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: NginxTrafficRouting: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: NginxTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + iNdEx = postIndex + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AnnotationPrefix", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Web", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16653,29 +17566,33 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.AnnotationPrefix = string(dAtA[iNdEx:postIndex]) + if m.Web == nil { + m.Web = &WebMetric{} + } + if err := m.Web.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 2: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StableIngress", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Datadog", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16685,27 +17602,31 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLen |= uint64(b&0x7F) << shift + msglen |= int(b&0x7F) << shift if b < 0x80 { break } } - intStringLen := int(stringLen) - if intStringLen < 0 { + if msglen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - m.StableIngress = string(dAtA[iNdEx:postIndex]) + if m.Datadog == nil { + m.Datadog = &DatadogMetric{} + } + if err := m.Datadog.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex - case 3: + case 5: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AdditionalIngressAnnotations", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Wavefront", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -16732,103 +17653,84 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.AdditionalIngressAnnotations == nil { - m.AdditionalIngressAnnotations = make(map[string]string) + if m.Wavefront == nil { + m.Wavefront = &WavefrontMetric{} } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } + if err := m.Wavefront.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NewRelic", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated } - fieldNum := int32(wire >> 3) - if fieldNum == 1 { - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - } else if fieldNum == 2 { - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue < 0 { - return ErrInvalidLengthGenerated - } - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - } else { - iNdEx = entryPreIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > postIndex { - return io.ErrUnexpectedEOF - } - iNdEx += skippy + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break } } - m.AdditionalIngressAnnotations[mapkey] = mapvalue + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NewRelic == nil { + m.NewRelic = &NewRelicMetric{} + } + if err := m.NewRelic.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Job", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Job == nil { + m.Job = &JobMetric{} + } + if err := m.Job.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -16854,7 +17756,7 @@ func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { } return nil } -func (m *PauseCondition) Unmarshal(dAtA []byte) error { +func (m *MetricResult) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -16877,15 +17779,15 @@ func (m *PauseCondition) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PauseCondition: wiretype end group for non-group") + return fmt.Errorf("proto: MetricResult: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PauseCondition: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MetricResult: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -16913,13 +17815,13 @@ func (m *PauseCondition) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Reason = PauseReason(dAtA[iNdEx:postIndex]) + m.Name = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -16929,81 +17831,27 @@ func (m *PauseCondition) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthGenerated } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Phase = AnalysisPhase(dAtA[iNdEx:postIndex]) iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PodTemplateMetadata: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PodTemplateMetadata: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Measurements", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -17030,21 +17878,934 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Labels == nil { - m.Labels = make(map[string]string) + m.Measurements = append(m.Measurements, Measurement{}) + if err := m.Measurements[len(m.Measurements)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err } - var mapkey string - var mapvalue string - for iNdEx < postIndex { - entryPreIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType) + } + m.Count = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Count |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Successful", wireType) + } + m.Successful = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Successful |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Failed", wireType) + } + m.Failed = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Failed |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Inconclusive", wireType) + } + m.Inconclusive = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Inconclusive |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + m.Error = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Error |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ConsecutiveError", wireType) + } + m.ConsecutiveError = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ConsecutiveError |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NewRelicMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NewRelicMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NewRelicMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Profile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Profile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NginxTrafficRouting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NginxTrafficRouting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NginxTrafficRouting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnnotationPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnnotationPrefix = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StableIngress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.StableIngress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdditionalIngressAnnotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AdditionalIngressAnnotations == nil { + m.AdditionalIngressAnnotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.AdditionalIngressAnnotations[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PauseCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PauseCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PauseCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = PauseReason(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.StartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Icon = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Ready", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Ready = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Restarts", wireType) + } + m.Restarts = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Restarts |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PodTemplateMetadata: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PodTemplateMetadata: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } b := dAtA[iNdEx] iNdEx++ wire |= uint64(b&0x7F) << shift @@ -17253,7 +19014,196 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { iNdEx += skippy } } - m.Annotations[mapkey] = mapvalue + m.Annotations[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) + } + m.Weight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Weight |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PrometheusMetric: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PrometheusMetric: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Query = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -17279,7 +19229,7 @@ func (m *PodTemplateMetadata) Unmarshal(dAtA []byte) error { } return nil } -func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) error { +func (m *ReplicaSetInfo) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -17302,17 +19252,251 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: wiretype end group for non-group") + return fmt.Errorf("proto: ReplicaSetInfo: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PreferredDuringSchedulingIgnoredDuringExecution: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: ReplicaSetInfo: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Icon", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Icon = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) + } + m.Revision = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Revision |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Stable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Stable = bool(v != 0) + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Canary", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Canary = bool(v != 0) + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Active", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Active = bool(v != 0) + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Preview", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Preview = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Available", wireType) + } + m.Available = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Available |= int32(b&0x7F) << shift + if b < 0x80 { + break + } } - m.Weight = 0 + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenerated @@ -17322,67 +19506,27 @@ func (m *PreferredDuringSchedulingIgnoredDuringExecution) Unmarshal(dAtA []byte) } b := dAtA[iNdEx] iNdEx++ - m.Weight |= int32(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) < 0 { + postIndex := iNdEx + intStringLen + if postIndex < 0 { return ErrInvalidLengthGenerated } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: PrometheusMetric: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: PrometheusMetric: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: + m.Template = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDeadline", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17410,11 +19554,11 @@ func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Address = string(dAtA[iNdEx:postIndex]) + m.ScaleDownDeadline = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 2: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Query", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Images", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -17442,7 +19586,41 @@ func (m *PrometheusMetric) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Query = string(dAtA[iNdEx:postIndex]) + m.Images = append(m.Images, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pods = append(m.Pods, PodInfo{}) + if err := m.Pods[len(m.Pods)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex default: iNdEx = preIndex @@ -19332,6 +21510,172 @@ func (m *RolloutInfo) Unmarshal(dAtA []byte) error { break } } + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RestartedAt", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RestartedAt = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Generation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Generation = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReplicaSets", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReplicaSets = append(m.ReplicaSets, ReplicaSetInfo{}) + if err := m.ReplicaSets[len(m.ReplicaSets)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Experiments", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Experiments = append(m.Experiments, ExperimentInfo{}) + if err := m.Experiments[len(m.Experiments)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AnalysisRuns", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AnalysisRuns = append(m.AnalysisRuns, AnalysisRunInfo{}) + if err := m.AnalysisRuns[len(m.AnalysisRuns)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) diff --git a/pkg/apis/rollouts/v1alpha1/generated.proto b/pkg/apis/rollouts/v1alpha1/generated.proto index d9434b69f0..b7819da984 100644 --- a/pkg/apis/rollouts/v1alpha1/generated.proto +++ b/pkg/apis/rollouts/v1alpha1/generated.proto @@ -72,6 +72,26 @@ message AnalysisRunArgument { optional ArgumentValueFrom valueFrom = 3; } +message AnalysisRunInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; + + optional string icon = 2; + + optional int32 revision = 3; + + optional string status = 4; + + optional int32 successful = 5; + + optional int32 failed = 6; + + optional int32 inconclusive = 7; + + optional int32 error = 8; + + repeated JobInfo jobs = 9; +} + // AnalysisRunList is a list of AnalysisTemplate resources // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object message AnalysisRunList { @@ -444,6 +464,22 @@ message ExperimentCondition { optional string message = 6; } +message ExperimentInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; + + optional string icon = 2; + + optional int32 revision = 3; + + optional string status = 4; + + optional string message = 5; + + repeated ReplicaSetInfo replicaSets = 6; + + repeated AnalysisRunInfo analysisRuns = 7; +} + // ExperimentList is a list of Experiment resources message ExperimentList { optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; @@ -543,6 +579,14 @@ message IstioVirtualService { repeated string routes = 2; } +message JobInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; + + optional string status = 2; + + optional string icon = 3; +} + // JobMetric defines a job to run which acts as a metric message JobMetric { optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; @@ -743,6 +787,18 @@ message PauseCondition { optional k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 2; } +message PodInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; + + optional string status = 2; + + optional string icon = 3; + + optional string ready = 4; + + optional int32 restarts = 5; +} + // PodTemplateMetadata extra labels to add to the template message PodTemplateMetadata { // Labels Additional labels to add to the experiment @@ -769,6 +825,36 @@ message PrometheusMetric { optional string query = 2; } +message ReplicaSetInfo { + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; + + optional string status = 2; + + optional string icon = 3; + + optional int32 revision = 4; + + optional bool stable = 5; + + optional bool canary = 6; + + optional bool active = 7; + + optional bool preview = 8; + + optional int32 replicas = 9; + + optional int32 available = 10; + + optional string template = 11; + + optional string scaleDownDeadline = 12; + + repeated string images = 13; + + repeated PodInfo pods = 14; +} + // RequiredDuringSchedulingIgnoredDuringExecution defines inter-pod scheduling rule to be RequiredDuringSchedulingIgnoredDuringExecution message RequiredDuringSchedulingIgnoredDuringExecution { } @@ -902,7 +988,7 @@ message RolloutExperimentTemplate { // RolloutInfo is information about a rollout message RolloutInfo { - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta objectMeta = 1; optional string status = 2; @@ -927,6 +1013,16 @@ message RolloutInfo { optional int32 updated = 12; optional int32 available = 13; + + optional string restartedAt = 14; + + optional string generation = 15; + + repeated ReplicaSetInfo replicaSets = 16; + + repeated ExperimentInfo experiments = 17; + + repeated AnalysisRunInfo analysisRuns = 18; } // RolloutList is a list of Rollout resources diff --git a/pkg/apis/rollouts/v1alpha1/types.go b/pkg/apis/rollouts/v1alpha1/types.go index e32c6227ac..97dbc93a6b 100644 --- a/pkg/apis/rollouts/v1alpha1/types.go +++ b/pkg/apis/rollouts/v1alpha1/types.go @@ -669,7 +669,7 @@ type RolloutList struct { // RolloutInfo is information about a rollout type RolloutInfo struct { - metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` Status string `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` Message string `json:"message,omitempty" protobuf:"bytes,3,opt,name=message"` @@ -685,7 +685,63 @@ type RolloutInfo struct { Updated int32 `json:"updated,omitempty" protobuf:"bytes,12,opt,name=updated"` Available int32 `json:"available,omitempty" protobuf:"bytes,13,opt,name=available"` - // ReplicaSets []ReplicaSetInfo - // Experiments []ExperimentInfo - // AnalysisRuns []AnalysisRunInfo + RestartedAt string `json:"restartedAt,omitempty" protobuf:"bytes,14,opt,name=restartedAt"` + Generation string `json:"generation,omitempty" protobuf:"bytes,15,opt,name=generation"` + + ReplicaSets []ReplicaSetInfo `json:"replicaSets,omitempty" protobuf:"bytes,16,rep,name=replicaSets"` + Experiments []ExperimentInfo `json:"experiments,omitempty" protobuf:"bytes,17,rep,name=experiments"` + AnalysisRuns []AnalysisRunInfo `json:"analysisRuns,omitempty" protobuf:"bytes,18,rep,name=analysisRuns"` +} + +type ReplicaSetInfo struct { + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` + Status string `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` + Icon string `json:"icon,omitempty" protobuf:"bytes,3,opt,name=icon"` + Revision int32 `json:"revision,omitempty" protobuf:"varint,4,opt,name=revision"` + Stable bool `json:"stable,omitempty" protobuf:"varint,5,opt,name=stable"` + Canary bool `json:"canary,omitempty" protobuf:"varint,6,opt,name=canary"` + Active bool `json:"active,omitempty" protobuf:"varint,7,opt,name=active"` + Preview bool `json:"preview,omitempty" protobuf:"varint,8,opt,name=preview"` + Replicas int32 `json:"replicas,omitempty" protobuf:"varint,9,opt,name=replicas"` + Available int32 `json:"available,omitempty" protobuf:"varint,10,opt,name=available"` + Template string `json:"template,omitempty" protobuf:"bytes,11,opt,name=template"` + ScaleDownDeadline string `json:"scaleDownDeadline,omitempty" protobuf:"bytes,12,opt,name=scaleDownDeadline"` + Images []string `json:"images,omitempty" protobuf:"bytes,13,rep,name=images"` + Pods []PodInfo `json:"pods,omitempty" protobuf:"bytes,14,rep,name=pods"` +} + +type PodInfo struct { + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` + Status string `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` + Icon string `json:"icon,omitempty" protobuf:"bytes,3,opt,name=icon"` + Ready string `json:"ready,omitempty" protobuf:"bytes,4,opt,name=ready"` + Restarts int32 `json:"restarts,omitempty" protobuf:"varint,5,opt,name=restarts"` +} + +type ExperimentInfo struct { + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` + Icon string `json:"icon,omitempty" protobuf:"bytes,2,opt,name=icon"` + Revision int32 `json:"revision,omitempty" protobuf:"varint,3,opt,name=revision"` + Status string `json:"status,omitempty" protobuf:"bytes,4,opt,name=status"` + Message string `json:"message,omitempty" protobuf:"bytes,5,opt,name=message"` + ReplicaSets []ReplicaSetInfo `json:"replicaSets,omitempty" protobuf:"bytes,6,rep,name=replicaSets"` + AnalysisRuns []AnalysisRunInfo `json:"analysisRuns,omitempty" protobuf:"bytes,7,rep,name=analysisRuns"` +} + +type AnalysisRunInfo struct { + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` + Icon string `json:"icon,omitempty" protobuf:"bytes,2,opt,name=icon"` + Revision int32 `json:"revision,omitempty" protobuf:"varint,3,opt,name=revision"` + Status string `json:"status,omitempty" protobuf:"bytes,4,opt,name=status"` + Successful int32 `json:"successful,omitempty" protobuf:"varint,5,opt,name=successful"` + Failed int32 `json:"failed,omitempty" protobuf:"varint,6,opt,name=failed"` + Inconclusive int32 `json:"inconclusive,omitempty" protobuf:"varint,7,opt,name=inconclusive"` + Error int32 `json:"error,omitempty" protobuf:"varint,8,opt,name=error"` + Jobs []JobInfo `json:"jobs,omitempty" protobuf:"bytes,9,rep,name=jobs"` +} + +type JobInfo struct { + metav1.ObjectMeta `json:"objectMeta,omitempty" protobuf:"bytes,1,opt,name=objectMeta"` + Status string `json:"status,omitempty" protobuf:"bytes,2,opt,name=status"` + Icon string `json:"icon,omitempty" protobuf:"bytes,3,opt,name=icon"` } diff --git a/pkg/kubectl-argo-rollouts/cmd/get/get_experiment.go b/pkg/kubectl-argo-rollouts/cmd/get/get_experiment.go index 968c0073cf..73b3af4a37 100644 --- a/pkg/kubectl-argo-rollouts/cmd/get/get_experiment.go +++ b/pkg/kubectl-argo-rollouts/cmd/get/get_experiment.go @@ -10,6 +10,7 @@ import ( "github.com/juju/ansiterm" "github.com/spf13/cobra" + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" @@ -86,20 +87,21 @@ func (o *GetOptions) WatchExperiment(stopCh <-chan struct{}, expUpdates chan *in } if currExpInfo != nil && time.Now().After(preventFlicker.Add(200*time.Millisecond)) { o.Clear() - o.PrintExperiment(currExpInfo) + e := v1alpha1.ExperimentInfo(*currExpInfo) + o.PrintExperiment(&e) preventFlicker = time.Now() } } } -func (o *GetOptions) PrintExperiment(exInfo *info.ExperimentInfo) { +func (o *GetOptions) PrintExperiment(exInfo *v1alpha1.ExperimentInfo) { fmt.Fprintf(o.Out, tableFormat, "Name:", exInfo.Name) fmt.Fprintf(o.Out, tableFormat, "Namespace:", exInfo.Namespace) fmt.Fprintf(o.Out, tableFormat, "Status:", o.colorize(exInfo.Icon)+" "+exInfo.Status) if exInfo.Message != "" { fmt.Fprintf(o.Out, tableFormat, "Message:", exInfo.Message) } - images := exInfo.Images() + images := info.ExperimentImages(exInfo) if len(images) > 0 { fmt.Fprintf(o.Out, tableFormat, "Images:", o.formatImage(images[0])) for i := 1; i < len(images); i++ { @@ -111,19 +113,19 @@ func (o *GetOptions) PrintExperiment(exInfo *info.ExperimentInfo) { o.PrintExperimentTree(exInfo) } -func (o *GetOptions) PrintExperimentTree(exInfo *info.ExperimentInfo) { +func (o *GetOptions) PrintExperimentTree(exInfo *v1alpha1.ExperimentInfo) { w := ansiterm.NewTabWriter(o.Out, 0, 0, 2, ' ', 0) o.PrintHeader(w) o.PrintExperimentInfo(w, *exInfo, "", "") _ = w.Flush() } -func (o *GetOptions) PrintExperimentInfo(w io.Writer, expInfo info.ExperimentInfo, prefix string, subpfx string) { +func (o *GetOptions) PrintExperimentInfo(w io.Writer, expInfo v1alpha1.ExperimentInfo, prefix string, subpfx string) { name := o.colorizeStatus(expInfo.Name, expInfo.Status) infoCols := []string{} total := len(expInfo.ReplicaSets) + len(expInfo.AnalysisRuns) curr := 0 - fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconExperiment, name, "Experiment", o.colorize(expInfo.Icon), expInfo.Status, expInfo.Age(), strings.Join(infoCols, ",")) + fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconExperiment, name, "Experiment", o.colorize(expInfo.Icon), expInfo.Status, info.Age(expInfo.ObjectMeta), strings.Join(infoCols, ",")) for _, rsInfo := range expInfo.ReplicaSets { childPrefix, childSubpfx := getPrefixes(curr == total-1, subpfx) diff --git a/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go b/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go index 31b742e2ce..8360e9aa9a 100644 --- a/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go +++ b/pkg/kubectl-argo-rollouts/cmd/get/get_rollout.go @@ -10,6 +10,7 @@ import ( "github.com/juju/ansiterm" "github.com/spf13/cobra" + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" @@ -53,8 +54,8 @@ func NewCmdGetRollout(o *options.ArgoRolloutsOptions) *cobra.Command { if !getOptions.Watch { getOptions.PrintRollout(ri) } else { - rolloutUpdates := make(chan *info.RolloutInfo) - controller.RegisterCallback(func(roInfo *info.RolloutInfo) { + rolloutUpdates := make(chan *v1alpha1.RolloutInfo) + controller.RegisterCallback(func(roInfo *v1alpha1.RolloutInfo) { rolloutUpdates <- roInfo }) go getOptions.WatchRollout(ctx.Done(), rolloutUpdates) @@ -69,9 +70,9 @@ func NewCmdGetRollout(o *options.ArgoRolloutsOptions) *cobra.Command { return cmd } -func Watch(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo, callback func(*info.RolloutInfo)) { +func Watch(stopCh <-chan struct{}, rolloutUpdates chan *v1alpha1.RolloutInfo, callback func(*v1alpha1.RolloutInfo)) { ticker := time.NewTicker(time.Second) - var currRolloutInfo *info.RolloutInfo + var currRolloutInfo *v1alpha1.RolloutInfo // preventFlicker is used to rate-limit the updates we print to the terminal when updates occur // so rapidly that it causes the terminal to flicker var preventFlicker time.Time @@ -91,11 +92,12 @@ func Watch(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo, callba } } -func (o *GetOptions) WatchRollout(stopCh <-chan struct{}, rolloutUpdates chan *info.RolloutInfo) { +func (o *GetOptions) WatchRollout(stopCh <-chan struct{}, rolloutUpdates chan *v1alpha1.RolloutInfo) { Watch(stopCh, rolloutUpdates, - func (i *info.RolloutInfo) { + func (i *v1alpha1.RolloutInfo) { o.Clear() - o.PrintRollout(i) + ri := v1alpha1.RolloutInfo(*i) + o.PrintRollout(&ri) }) } @@ -112,7 +114,7 @@ func (o *GetOptions) formatImage(image info.ImageInfo) string { return imageStr } -func (o *GetOptions) PrintRollout(roInfo *info.RolloutInfo) { +func (o *GetOptions) PrintRollout(roInfo *v1alpha1.RolloutInfo) { fmt.Fprintf(o.Out, tableFormat, "Name:", roInfo.Name) fmt.Fprintf(o.Out, tableFormat, "Namespace:", roInfo.Namespace) fmt.Fprintf(o.Out, tableFormat, "Status:", o.colorize(roInfo.Icon)+" "+roInfo.Status) @@ -125,7 +127,7 @@ func (o *GetOptions) PrintRollout(roInfo *info.RolloutInfo) { fmt.Fprintf(o.Out, tableFormat, " SetWeight:", roInfo.SetWeight) fmt.Fprintf(o.Out, tableFormat, " ActualWeight:", roInfo.ActualWeight) } - images := roInfo.Images() + images := info.Images(roInfo) if len(images) > 0 { fmt.Fprintf(o.Out, tableFormat, "Images:", o.formatImage(images[0])) for i := 1; i < len(images); i++ { @@ -143,11 +145,11 @@ func (o *GetOptions) PrintRollout(roInfo *info.RolloutInfo) { o.PrintRolloutTree(roInfo) } -func (o *GetOptions) PrintRolloutTree(roInfo *info.RolloutInfo) { +func (o *GetOptions) PrintRolloutTree(roInfo *v1alpha1.RolloutInfo) { w := ansiterm.NewTabWriter(o.Out, 0, 0, 2, ' ', 0) o.PrintHeader(w) - fmt.Fprintf(w, "%s %s\t%s\t%s %s\t%s\t%v\n", IconRollout, roInfo.Name, "Rollout", o.colorize(roInfo.Icon), roInfo.Status, roInfo.Age(), "") - revisions := roInfo.Revisions() + fmt.Fprintf(w, "%s %s\t%s\t%s %s\t%s\t%v\n", IconRollout, roInfo.Name, "Rollout", o.colorize(roInfo.Icon), roInfo.Status, info.Age(roInfo.ObjectMeta), "") + revisions := info.Revisions(roInfo) for i, rev := range revisions { isLast := i == len(revisions)-1 prefix, subpfx := getPrefixes(isLast, "") @@ -156,12 +158,12 @@ func (o *GetOptions) PrintRolloutTree(roInfo *info.RolloutInfo) { _ = w.Flush() } -func (o *GetOptions) PrintRevision(w io.Writer, roInfo *info.RolloutInfo, revision int, prefix string, subpfx string) { +func (o *GetOptions) PrintRevision(w io.Writer, roInfo *v1alpha1.RolloutInfo, revision int, prefix string, subpfx string) { name := fmt.Sprintf("revision:%d", revision) fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconRevision, name, "", "", "", "", "") - replicaSets := roInfo.ReplicaSetsByRevision(revision) - experiments := roInfo.ExperimentsByRevision(revision) - analysisRuns := roInfo.AnalysisRunsByRevision(revision) + replicaSets := info.ReplicaSetsByRevision(roInfo, revision) + experiments := info.ExperimentsByRevision(roInfo, revision) + analysisRuns := info.AnalysisRunsByRevision(roInfo, revision) total := len(replicaSets) + len(experiments) + len(analysisRuns) curr := 0 @@ -182,7 +184,7 @@ func (o *GetOptions) PrintRevision(w io.Writer, roInfo *info.RolloutInfo, revisi } } -func (o *GetOptions) PrintReplicaSetInfo(w io.Writer, rsInfo info.ReplicaSetInfo, prefix string, subpfx string) { +func (o *GetOptions) PrintReplicaSetInfo(w io.Writer, rsInfo v1alpha1.ReplicaSetInfo, prefix string, subpfx string) { infoCols := []string{} name := rsInfo.Name if rsInfo.Stable { @@ -200,10 +202,10 @@ func (o *GetOptions) PrintReplicaSetInfo(w io.Writer, rsInfo info.ReplicaSetInfo name = o.colorizeStatus(name, info.InfoTagPreview) } if rsInfo.ScaleDownDeadline != "" { - infoCols = append(infoCols, fmt.Sprintf("delay:%s", rsInfo.ScaleDownDelay())) + infoCols = append(infoCols, fmt.Sprintf("delay:%s", info.ScaleDownDelay(rsInfo))) } - fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconReplicaSet, name, "ReplicaSet", o.colorize(rsInfo.Icon), rsInfo.Status, rsInfo.Age(), strings.Join(infoCols, ",")) + fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconReplicaSet, name, "ReplicaSet", o.colorize(rsInfo.Icon), rsInfo.Status, info.Age(rsInfo.ObjectMeta), strings.Join(infoCols, ",")) for i, podInfo := range rsInfo.Pods { isLast := i == len(rsInfo.Pods)-1 podPrefix, _ := getPrefixes(isLast, subpfx) @@ -211,11 +213,11 @@ func (o *GetOptions) PrintReplicaSetInfo(w io.Writer, rsInfo info.ReplicaSetInfo if podInfo.Restarts > 0 { podInfoCol = append(podInfoCol, fmt.Sprintf("restarts:%d", podInfo.Restarts)) } - fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", podPrefix, IconPod, podInfo.Name, "Pod", o.colorize(podInfo.Icon), podInfo.Status, podInfo.Age(), strings.Join(podInfoCol, ",")) + fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", podPrefix, IconPod, podInfo.Name, "Pod", o.colorize(podInfo.Icon), podInfo.Status, info.Age(podInfo.ObjectMeta), strings.Join(podInfoCol, ",")) } } -func (o *GetOptions) PrintAnalysisRunInfo(w io.Writer, arInfo info.AnalysisRunInfo, prefix string, subpfx string) { +func (o *GetOptions) PrintAnalysisRunInfo(w io.Writer, arInfo v1alpha1.AnalysisRunInfo, prefix string, subpfx string) { name := o.colorizeStatus(arInfo.Name, arInfo.Status) infoCols := []string{} if arInfo.Successful > 0 { @@ -230,7 +232,7 @@ func (o *GetOptions) PrintAnalysisRunInfo(w io.Writer, arInfo info.AnalysisRunIn if arInfo.Error > 0 { infoCols = append(infoCols, fmt.Sprintf("%s %d", o.colorize(info.IconWarning), arInfo.Error)) } - fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconAnalysis, name, "AnalysisRun", o.colorize(arInfo.Icon), arInfo.Status, arInfo.Age(), strings.Join(infoCols, ",")) + fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconAnalysis, name, "AnalysisRun", o.colorize(arInfo.Icon), arInfo.Status, info.Age(arInfo.ObjectMeta), strings.Join(infoCols, ",")) for i, jobInfo := range arInfo.Jobs { isLast := i == len(arInfo.Jobs)-1 jobPrefix, jobChildPrefix := getPrefixes(isLast, subpfx) @@ -238,7 +240,7 @@ func (o *GetOptions) PrintAnalysisRunInfo(w io.Writer, arInfo info.AnalysisRunIn } } -func (o *GetOptions) PrintJob(w io.Writer, jobInfo info.JobInfo, prefix string, subpfx string) { +func (o *GetOptions) PrintJob(w io.Writer, jobInfo v1alpha1.JobInfo, prefix string, subpfx string) { name := o.colorizeStatus(jobInfo.Name, jobInfo.Status) - fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconJob, name, "Job", o.colorize(jobInfo.Icon), jobInfo.Status, jobInfo.Age(), "") + fmt.Fprintf(w, "%s%s %s\t%s\t%s %s\t%s\t%v\n", prefix, IconJob, name, "Job", o.colorize(jobInfo.Icon), jobInfo.Status, info.Age(jobInfo.ObjectMeta), "") } diff --git a/pkg/kubectl-argo-rollouts/info/analysisrun_info.go b/pkg/kubectl-argo-rollouts/info/analysisrun_info.go index d92566d218..54a0b7103e 100644 --- a/pkg/kubectl-argo-rollouts/info/analysisrun_info.go +++ b/pkg/kubectl-argo-rollouts/info/analysisrun_info.go @@ -3,6 +3,7 @@ package info import ( "sort" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "github.com/argoproj/argo-rollouts/metricproviders/job" @@ -10,32 +11,17 @@ import ( analysisutil "github.com/argoproj/argo-rollouts/utils/analysis" ) -type AnalysisRunInfo struct { - Metadata - Icon string - Revision int - Status string - Successful int32 - Failed int32 - Inconclusive int32 - Error int32 - Jobs []JobInfo -} - -type JobInfo struct { - Metadata - Status string - Icon string -} +type AnalysisRunInfo v1alpha1.AnalysisRunInfo +type JobInfo v1alpha1.JobInfo -func getAnalysisRunInfo(ownerUID types.UID, allAnalysisRuns []*v1alpha1.AnalysisRun) []AnalysisRunInfo { - var arInfos []AnalysisRunInfo +func getAnalysisRunInfo(ownerUID types.UID, allAnalysisRuns []*v1alpha1.AnalysisRun) []v1alpha1.AnalysisRunInfo { + var arInfos []v1alpha1.AnalysisRunInfo for _, run := range allAnalysisRuns { if ownerRef(run.OwnerReferences, []types.UID{ownerUID}) == nil { continue } - arInfo := AnalysisRunInfo{ - Metadata: Metadata{ + arInfo := v1alpha1.AnalysisRunInfo{ + ObjectMeta: v1.ObjectMeta{ Name: run.Name, Namespace: run.Namespace, CreationTimestamp: run.CreationTimestamp, @@ -51,8 +37,8 @@ func getAnalysisRunInfo(ownerUID types.UID, allAnalysisRuns []*v1alpha1.Analysis lastMeasurement := analysisutil.LastMeasurement(run, mr.Name) if lastMeasurement != nil && lastMeasurement.Metadata != nil { if jobName, ok := lastMeasurement.Metadata[job.JobNameKey]; ok { - jobInfo := JobInfo{ - Metadata: Metadata{ + jobInfo := v1alpha1.JobInfo{ + ObjectMeta: v1.ObjectMeta{ Name: jobName, }, Icon: analysisIcon(lastMeasurement.Phase), @@ -66,7 +52,7 @@ func getAnalysisRunInfo(ownerUID types.UID, allAnalysisRuns []*v1alpha1.Analysis } } arInfo.Icon = analysisIcon(run.Status.Phase) - arInfo.Revision = parseRevision(run.ObjectMeta.Annotations) + arInfo.Revision = int32(parseRevision(run.ObjectMeta.Annotations)) arInfos = append(arInfos, arInfo) } diff --git a/pkg/kubectl-argo-rollouts/info/experiment_info.go b/pkg/kubectl-argo-rollouts/info/experiment_info.go index 1e4ba1a6cc..a33162dbb7 100644 --- a/pkg/kubectl-argo-rollouts/info/experiment_info.go +++ b/pkg/kubectl-argo-rollouts/info/experiment_info.go @@ -6,30 +6,23 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" ) -type ExperimentInfo struct { - Metadata - Icon string - Revision int - Status string - Message string - ReplicaSets []ReplicaSetInfo - AnalysisRuns []AnalysisRunInfo -} +type ExperimentInfo v1alpha1.ExperimentInfo func NewExperimentInfo( exp *v1alpha1.Experiment, allReplicaSets []*appsv1.ReplicaSet, allAnalysisRuns []*v1alpha1.AnalysisRun, allPods []*corev1.Pod, -) *ExperimentInfo { +) *v1alpha1.ExperimentInfo { - expInfo := ExperimentInfo{ - Metadata: Metadata{ + expInfo := v1alpha1.ExperimentInfo{ + ObjectMeta: v1.ObjectMeta{ Name: exp.Name, Namespace: exp.Namespace, CreationTimestamp: exp.CreationTimestamp, @@ -39,7 +32,7 @@ func NewExperimentInfo( Message: exp.Status.Message, } expInfo.Icon = analysisIcon(exp.Status.Phase) - expInfo.Revision = parseRevision(exp.ObjectMeta.Annotations) + expInfo.Revision = int32(parseRevision(exp.ObjectMeta.Annotations)) expInfo.ReplicaSets = getReplicaSetInfo(exp.UID, nil, allReplicaSets, allPods) expInfo.AnalysisRuns = getAnalysisRunInfo(exp.UID, allAnalysisRuns) return &expInfo @@ -51,9 +44,9 @@ func getExperimentInfo( allReplicaSets []*appsv1.ReplicaSet, allAnalysisRuns []*v1alpha1.AnalysisRun, allPods []*corev1.Pod, -) []ExperimentInfo { +) []v1alpha1.ExperimentInfo { - var expInfos []ExperimentInfo + var expInfos []v1alpha1.ExperimentInfo for _, exp := range allExperiments { if ownerRef(exp.OwnerReferences, []types.UID{ro.UID}) == nil { continue @@ -71,7 +64,7 @@ func getExperimentInfo( } // Images returns a list of images that are currently running along with tags on which stack they belong to -func (r *ExperimentInfo) Images() []ImageInfo { +func ExperimentImages(r *v1alpha1.ExperimentInfo) []ImageInfo { var images []ImageInfo for _, rsInfo := range r.ReplicaSets { if rsInfo.Replicas > 0 { diff --git a/pkg/kubectl-argo-rollouts/info/info.go b/pkg/kubectl-argo-rollouts/info/info.go index 563b4faef7..01fd1ebb5c 100644 --- a/pkg/kubectl-argo-rollouts/info/info.go +++ b/pkg/kubectl-argo-rollouts/info/info.go @@ -4,6 +4,7 @@ import ( "strconv" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/duration" @@ -29,19 +30,14 @@ const ( InfoTagPreview = "preview" ) -type Metadata struct { - Name string - Namespace string - UID types.UID - CreationTimestamp metav1.Time -} +type Metadata v1.ObjectMeta type ImageInfo struct { Image string Tags []string } -func (m Metadata) Age() string { +func Age(m v1.ObjectMeta) string { return duration.HumanDuration(metav1.Now().Sub(m.CreationTimestamp.Time)) } diff --git a/pkg/kubectl-argo-rollouts/info/pod_info.go b/pkg/kubectl-argo-rollouts/info/pod_info.go index d312416580..431892453a 100644 --- a/pkg/kubectl-argo-rollouts/info/pod_info.go +++ b/pkg/kubectl-argo-rollouts/info/pod_info.go @@ -5,20 +5,14 @@ import ( "sort" "strings" + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/types" k8snode "k8s.io/kubernetes/pkg/util/node" ) -type PodInfo struct { - Metadata - Status string - Icon string - Ready string - Restarts int -} - -func addPodInfos(rsInfos []ReplicaSetInfo, allPods []*corev1.Pod) []ReplicaSetInfo { +func addPodInfos(rsInfos []v1alpha1.ReplicaSetInfo, allPods []*corev1.Pod) []v1alpha1.ReplicaSetInfo { var uids []types.UID uidToRSInfoIdx := make(map[types.UID]int) for i, rsInfo := range rsInfos { @@ -32,7 +26,7 @@ func addPodInfos(rsInfos []ReplicaSetInfo, allPods []*corev1.Pod) []ReplicaSetIn continue } - podInfo := newPodInfo(pod) + podInfo := v1alpha1.PodInfo(newPodInfo(pod)) idx := uidToRSInfoIdx[owner.UID] rsInfos[idx].Pods = append(rsInfos[idx].Pods, podInfo) } @@ -51,7 +45,7 @@ func addPodInfos(rsInfos []ReplicaSetInfo, allPods []*corev1.Pod) []ReplicaSetIn func newPodInfo(pod *corev1.Pod) PodInfo { podInfo := PodInfo{ - Metadata: Metadata{ + ObjectMeta: v1.ObjectMeta{ Name: pod.Name, Namespace: pod.Namespace, CreationTimestamp: pod.CreationTimestamp, @@ -131,7 +125,7 @@ func newPodInfo(pod *corev1.Pod) PodInfo { podInfo.Status = reason podInfo.Icon = podIcon(podInfo.Status) podInfo.Ready = fmt.Sprintf("%d/%d", readyContainers, totalContainers) - podInfo.Restarts = restarts + podInfo.Restarts = int32(restarts) return podInfo } diff --git a/pkg/kubectl-argo-rollouts/info/replicaset_info.go b/pkg/kubectl-argo-rollouts/info/replicaset_info.go index 57f87cef53..929fa3adb5 100644 --- a/pkg/kubectl-argo-rollouts/info/replicaset_info.go +++ b/pkg/kubectl-argo-rollouts/info/replicaset_info.go @@ -5,6 +5,7 @@ import ( "time" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -15,32 +16,18 @@ import ( replicasetutil "github.com/argoproj/argo-rollouts/utils/replicaset" ) -type ReplicaSetInfo struct { - Metadata - Status string - Icon string - Revision int - Stable bool - Canary bool - Active bool - Preview bool - Replicas int32 - Available int32 - Template string - ScaleDownDeadline string - Images []string - Pods []PodInfo -} +type ReplicaSetInfo v1alpha1.ReplicaSetInfo +type PodInfo v1alpha1.PodInfo -func getReplicaSetInfo(ownerUID types.UID, ro *v1alpha1.Rollout, allReplicaSets []*appsv1.ReplicaSet, allPods []*corev1.Pod) []ReplicaSetInfo { - var rsInfos []ReplicaSetInfo +func getReplicaSetInfo(ownerUID types.UID, ro *v1alpha1.Rollout, allReplicaSets []*appsv1.ReplicaSet, allPods []*corev1.Pod) []v1alpha1.ReplicaSetInfo { + var rsInfos []v1alpha1.ReplicaSetInfo for _, rs := range allReplicaSets { // if owned by replicaset if ownerRef(rs.OwnerReferences, []types.UID{ownerUID}) == nil { continue } - rsInfo := ReplicaSetInfo{ - Metadata: Metadata{ + rsInfo := v1alpha1.ReplicaSetInfo{ + ObjectMeta: v1.ObjectMeta{ Name: rs.Name, Namespace: rs.Namespace, CreationTimestamp: rs.CreationTimestamp, @@ -51,7 +38,7 @@ func getReplicaSetInfo(ownerUID types.UID, ro *v1alpha1.Rollout, allReplicaSets Available: rs.Status.AvailableReplicas, } rsInfo.Icon = replicaSetIcon(rsInfo.Status) - rsInfo.Revision = parseRevision(rs.ObjectMeta.Annotations) + rsInfo.Revision = int32(parseRevision(rs.ObjectMeta.Annotations)) rsInfo.Template = parseExperimentTemplateName(rs.ObjectMeta.Annotations) rsInfo.ScaleDownDeadline = parseScaleDownDeadline(rs.ObjectMeta.Annotations) @@ -134,7 +121,7 @@ func getReplicaSetCondition(status appsv1.ReplicaSetStatus, condType appsv1.Repl return nil } -func (rs ReplicaSetInfo) ScaleDownDelay() string { +func ScaleDownDelay(rs v1alpha1.ReplicaSetInfo) string { if deadline, err := time.Parse(time.RFC3339, rs.ScaleDownDeadline); err == nil { now := metav1.Now().Time if deadline.Before(now) { diff --git a/pkg/kubectl-argo-rollouts/info/rollout_info.go b/pkg/kubectl-argo-rollouts/info/rollout_info.go index 900e9f8cd6..ea8f8a335e 100644 --- a/pkg/kubectl-argo-rollouts/info/rollout_info.go +++ b/pkg/kubectl-argo-rollouts/info/rollout_info.go @@ -7,6 +7,7 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" "github.com/argoproj/argo-rollouts/utils/conditions" @@ -14,27 +15,7 @@ import ( replicasetutil "github.com/argoproj/argo-rollouts/utils/replicaset" ) -type RolloutInfo struct { - Metadata - - Status string - Message string - Icon string - Strategy string - Step string - SetWeight string - ActualWeight string - - Ready int32 - Current int32 - Desired int32 - Updated int32 - Available int32 - - ReplicaSets []ReplicaSetInfo - Experiments []ExperimentInfo - AnalysisRuns []AnalysisRunInfo -} +type RolloutInfo v1alpha1.RolloutInfo func NewRolloutInfo( ro *v1alpha1.Rollout, @@ -42,16 +23,17 @@ func NewRolloutInfo( allPods []*corev1.Pod, allExperiments []*v1alpha1.Experiment, allARs []*v1alpha1.AnalysisRun, -) *RolloutInfo { +) *v1alpha1.RolloutInfo { - roInfo := RolloutInfo{ - Metadata: Metadata{ + roInfo := v1alpha1.RolloutInfo{ + ObjectMeta: v1.ObjectMeta{ Name: ro.Name, Namespace: ro.Namespace, UID: ro.UID, CreationTimestamp: ro.CreationTimestamp, }, } + roInfo.ReplicaSets = getReplicaSetInfo(ro.UID, ro, allReplicaSets, allPods) roInfo.Experiments = getExperimentInfo(ro, allExperiments, allReplicaSets, allARs, allPods) roInfo.AnalysisRuns = getAnalysisRunInfo(ro.UID, allARs) @@ -86,6 +68,15 @@ func NewRolloutInfo( roInfo.Status, roInfo.Message = RolloutStatusString(ro) roInfo.Icon = rolloutIcon(roInfo.Status) + if (ro.Status.RestartedAt != nil) { + roInfo.RestartedAt = ro.Status.RestartedAt.String() + } else { + roInfo.RestartedAt = "Never" + } + + roInfo.Generation = ro.Status.ObservedGeneration + + roInfo.Desired = defaults.GetReplicasOrDefault(ro.Spec.Replicas) roInfo.Ready = ro.Status.ReadyReplicas roInfo.Current = ro.Status.Replicas @@ -208,7 +199,7 @@ func rolloutIcon(status string) string { // Images returns a list of images that are currently running along with informational tags about // 1. which stack they belong to (canary, stable, active, preview) // 2. which experiment template they are part of -func (r *RolloutInfo) Images() []ImageInfo { +func Images(r *v1alpha1.RolloutInfo) []ImageInfo { var images []ImageInfo for _, rsInfo := range r.ReplicaSets { if rsInfo.Replicas > 0 { @@ -233,7 +224,7 @@ func (r *RolloutInfo) Images() []ImageInfo { } } for _, expInfo := range r.Experiments { - for _, expImage := range expInfo.Images() { + for _, expImage := range ExperimentImages(&expInfo) { images = mergeImageAndTags(expImage, images) } } @@ -278,16 +269,16 @@ func mergeTags(newTags []string, existingTags []string) []string { return tags } -func (r *RolloutInfo) Revisions() []int { +func Revisions(r *v1alpha1.RolloutInfo) []int { revisionMap := make(map[int]bool) for _, rsInfo := range r.ReplicaSets { - revisionMap[rsInfo.Revision] = true + revisionMap[int(rsInfo.Revision)] = true } for _, expInfo := range r.Experiments { - revisionMap[expInfo.Revision] = true + revisionMap[int(expInfo.Revision)] = true } for _, arInfo := range r.AnalysisRuns { - revisionMap[arInfo.Revision] = true + revisionMap[int(arInfo.Revision)] = true } revisions := make([]int, 0, len(revisionMap)) for k := range revisionMap { @@ -297,30 +288,30 @@ func (r *RolloutInfo) Revisions() []int { return revisions } -func (r *RolloutInfo) ReplicaSetsByRevision(rev int) []ReplicaSetInfo { - var replicaSets []ReplicaSetInfo +func ReplicaSetsByRevision(r *v1alpha1.RolloutInfo, rev int) []v1alpha1.ReplicaSetInfo { + var replicaSets []v1alpha1.ReplicaSetInfo for _, rs := range r.ReplicaSets { - if rs.Revision == rev { + if rs.Revision == int32(rev) { replicaSets = append(replicaSets, rs) } } return replicaSets } -func (r *RolloutInfo) ExperimentsByRevision(rev int) []ExperimentInfo { - var experiments []ExperimentInfo +func ExperimentsByRevision(r *v1alpha1.RolloutInfo, rev int) []v1alpha1.ExperimentInfo { + var experiments []v1alpha1.ExperimentInfo for _, e := range r.Experiments { - if e.Revision == rev { + if int(e.Revision) == rev { experiments = append(experiments, e) } } return experiments } -func (r *RolloutInfo) AnalysisRunsByRevision(rev int) []AnalysisRunInfo { - var runs []AnalysisRunInfo +func AnalysisRunsByRevision(r *v1alpha1.RolloutInfo, rev int) []v1alpha1.AnalysisRunInfo { + var runs []v1alpha1.AnalysisRunInfo for _, run := range r.AnalysisRuns { - if run.Revision == rev { + if int(run.Revision) == rev { runs = append(runs, run) } } diff --git a/pkg/kubectl-argo-rollouts/viewcontroller/viewcontroller.go b/pkg/kubectl-argo-rollouts/viewcontroller/viewcontroller.go index 67a41647d6..2f07133b9f 100644 --- a/pkg/kubectl-argo-rollouts/viewcontroller/viewcontroller.go +++ b/pkg/kubectl-argo-rollouts/viewcontroller/viewcontroller.go @@ -16,6 +16,7 @@ import ( "k8s.io/client-go/tools/cache" "k8s.io/client-go/util/workqueue" + "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" rolloutinformers "github.com/argoproj/argo-rollouts/pkg/client/informers/externalversions" rolloutlisters "github.com/argoproj/argo-rollouts/pkg/client/listers/rollouts/v1alpha1" @@ -53,7 +54,7 @@ type ExperimentViewController struct { *viewController } -type RolloutInfoCallback func(*info.RolloutInfo) +type RolloutInfoCallback func(*v1alpha1.RolloutInfo) type ExperimentInfoCallback func(*info.ExperimentInfo) @@ -165,7 +166,7 @@ func (c *viewController) processNextWorkItem() bool { return true } -func (c *RolloutViewController) GetRolloutInfo() (*info.RolloutInfo, error) { +func (c *RolloutViewController) GetRolloutInfo() (*v1alpha1.RolloutInfo, error) { ro, err := c.rolloutLister.Get(c.name) if err != nil { return nil, err @@ -197,12 +198,12 @@ func (c *RolloutViewController) GetRolloutInfo() (*info.RolloutInfo, error) { func (c *RolloutViewController) RegisterCallback(callback RolloutInfoCallback) { cb := func(i interface{}) { - callback(i.(*info.RolloutInfo)) + callback(i.(*v1alpha1.RolloutInfo)) } c.callbacks = append(c.callbacks, cb) } -func (c *ExperimentViewController) GetExperimentInfo() (*info.ExperimentInfo, error) { +func (c *ExperimentViewController) GetExperimentInfo() (*v1alpha1.ExperimentInfo, error) { exp, err := c.experimentLister.Get(c.name) if err != nil { return nil, err diff --git a/server/server.go b/server/server.go index a99ca7986c..3b833cbf06 100644 --- a/server/server.go +++ b/server/server.go @@ -13,7 +13,7 @@ import ( rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/list" - "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/restart" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" "github.com/argoproj/argo-rollouts/utils/json" "github.com/argoproj/pkg/errors" @@ -153,21 +153,18 @@ func (s* ArgoRolloutsServer) initRolloutViewController(name string, ctx context. return controller } -func infoToResponse(ri *info.RolloutInfo) *v1alpha1.RolloutInfo { - return &v1alpha1.RolloutInfo{ - ObjectMeta: v1.ObjectMeta{ Name: ri.Metadata.Name, Namespace: ri.Metadata.Namespace}, - Status: ri.Status, +func (s* ArgoRolloutsServer) getRollout(name string) (*v1alpha1.RolloutInfo, error) { + controller := s.initRolloutViewController(name, context.Background()) + ri, err := controller.GetRolloutInfo() + if (err != nil) { + return nil, err } + return ri, nil } // GetRollout returns a rollout func (s* ArgoRolloutsServer) GetRollout(c context.Context, q *rollout.RolloutQuery) (*v1alpha1.RolloutInfo, error) { - controller := s.initRolloutViewController(q.GetName(), context.Background()) - ri, err := controller.GetRolloutInfo() - if (err != nil) { - return nil, err - } - return infoToResponse(ri), nil + return s.getRollout(q.GetName()); } // WatchRollout returns a rollout stream @@ -175,13 +172,13 @@ func (s* ArgoRolloutsServer) WatchRollout(q *rollout.RolloutQuery, ws rollout.Ro ctx := context.Background() controller := s.initRolloutViewController(q.GetName(), ctx) - rolloutUpdates := make(chan *info.RolloutInfo) - controller.RegisterCallback(func(roInfo *info.RolloutInfo) { + rolloutUpdates := make(chan *v1alpha1.RolloutInfo) + controller.RegisterCallback(func(roInfo *v1alpha1.RolloutInfo) { rolloutUpdates <- roInfo }) - go get.Watch(ctx.Done(), rolloutUpdates, func(i *info.RolloutInfo) { - ws.Send(infoToResponse(i)) + go get.Watch(ctx.Done(), rolloutUpdates, func(i *v1alpha1.RolloutInfo) { + ws.Send(i) }) controller.Run(ctx) close(rolloutUpdates) @@ -198,18 +195,24 @@ func (s* ArgoRolloutsServer) ListRollouts(ctx context.Context, e *empty.Empty) ( return rolloutList, nil } +func (s* ArgoRolloutsServer) RestartRollout(ctx context.Context, q *rollout.RolloutQuery) (*empty.Empty, error) { + rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) + restartAt := time.Now().UTC() + restart.RestartRollout(rolloutIf, q.GetName(), &restartAt) + return nil, nil +} + // WatchRollouts returns a stream of all rollouts func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutService_WatchRolloutsServer) error { - send := func(r* v1alpha1.Rollout) { + send := func(r* v1alpha1.RolloutInfo) { err := ws.Send(&rollout.RolloutWatchEvent{ Type: "Updated", - Rollout: r, + RolloutInfo: r, }) if err != nil { return } } - ctx := context.Background() rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) rolloutList, err := rolloutIf.List(ctx, v1.ListOptions{}) @@ -218,15 +221,20 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer } for i := range(rolloutList.Items) { - err := ws.Send(&rollout.RolloutWatchEvent{ + ri, err := s.getRollout(rolloutList.Items[i].ObjectMeta.Name) + if (err != nil) { + return nil + } + err = ws.Send(&rollout.RolloutWatchEvent{ Type: "Added", - Rollout: &rolloutList.Items[i], + RolloutInfo: ri, }) if err != nil { return err } } + flush := func() error { return nil } @@ -240,7 +248,11 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer for { select { case r := <-stream: - send(r) + ri, err := s.getRollout(r.ObjectMeta.Name); + if (err != nil) { + return err + } + send(ri) case <-ws.Context().Done(): return nil } diff --git a/ui/package.json b/ui/package.json index b1e93bac5c..0eda5b581b 100644 --- a/ui/package.json +++ b/ui/package.json @@ -18,6 +18,7 @@ "@types/react-helmet": "^6.1.0", "@types/react-router-dom": "^5.1.7", "moment": "^2.29.1", + "moment-timezone": "^0.5.33", "portable-fetch": "^3.0.0", "react": "^17.0.1", "react-dom": "^17.0.1", @@ -31,8 +32,8 @@ "webpack-dev-server": "^3.11.2" }, "scripts": { - "start": "webpack serve --config ./src/app/webpack.config.js", - "build": "react-scripts build", + "start": "webpack serve --config ./src/app/webpack.dev.js", + "build": "rm -rf dist && webpack --config ./src/app/webpack.prod.js", "test": "react-scripts test", "eject": "react-scripts eject", "protogen": "swagger-codegen generate -i ../pkg/apiclient/rollout/rollout.swagger.json -l typescript-fetch -o src/models/rollout/generated" @@ -57,9 +58,12 @@ }, "devDependencies": { "copy-webpack-plugin": "^6.3.2", + "mini-css-extract-plugin": "^1.3.9", "raw-loader": "^4.0.2", "sass": "^1.32.8", "ts-loader": "^8.0.17", - "webpack-cli": "^4.5.0" + "webpack-bundle-analyzer": "^4.4.0", + "webpack-cli": "^4.5.0", + "webpack-merge": "^5.7.3" } } diff --git a/ui/src/app/components/action-button/action-button.tsx b/ui/src/app/components/action-button/action-button.tsx index 313ddc59c9..9a12a1e91e 100644 --- a/ui/src/app/components/action-button/action-button.tsx +++ b/ui/src/app/components/action-button/action-button.tsx @@ -10,7 +10,12 @@ export interface ButtonAction extends InfoLabelProps { export const ActionButton = (props: {action: () => any} & InfoLabelProps) => { const {label, action, icon} = props; return ( - diff --git a/ui/src/app/components/rollout/rollout.tsx b/ui/src/app/components/rollout/rollout.tsx index a7e11728eb..96630eca5f 100644 --- a/ui/src/app/components/rollout/rollout.tsx +++ b/ui/src/app/components/rollout/rollout.tsx @@ -6,7 +6,7 @@ import './rollout.scss'; import {RolloutActions} from '../rollout-actions/rollout-actions'; import {useServerData} from '../../shared/utils/utils'; import {RolloutServiceApi} from '../../../models/rollout/generated'; -import {RolloutStatus, statusIcon} from '../status-icon/status-icon'; +import {RolloutStatus, StatusIcon} from '../status-icon/status-icon'; export const Rollout = () => { const {name} = useParams<{name: string}>(); @@ -22,7 +22,7 @@ export const Rollout = () => {
- {name} {statusIcon(rollout.status as RolloutStatus)} + {name}
diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss index a9fe154f80..1d5745846f 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.scss +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -8,40 +8,11 @@ border-radius: 3px; background-color: $space; padding: 7px; - .pod { + .pod-icon { margin: 3px; } } -.pod { - $size: 25px; - width: $size; - height: $size; - line-height: $size; - text-align: center; - border: 1px solid $silver-lining; - background-color: $fog; - color: $shine; - border-radius: 3px; - cursor: pointer; - &--available { - background-color: $forest; - color: $lime; - border: 1px solid $leaf; - &:hover { - border-color: $lime; - } - } - &--errored { - background-color: $dirt; - color: $coral; - border: 1px solid $clay; - &:hover { - border-color: $coral; - } - } -} - .rollouts-list { display: flex; padding: 20px; diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx index 6a38d87acb..b8880a8e2e 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.tsx +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -1,74 +1,79 @@ -import {faCheck, faClock, faDove, faHistory, faPalette, faPlayCircle, faSync, faTimes} from '@fortawesome/free-solid-svg-icons'; +import {faClock, faDove, faHistory, faPalette, faPlayCircle, faSync} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; import {Link} from 'react-router-dom'; -import {Rollout} from '../../../models/rollout/rollout'; +import {RolloutServiceApi} from '../../../models/rollout/generated'; +import {Pod, RolloutInfo} from '../../../models/rollout/rollout'; import {useWatchRollouts} from '../../shared/services/rollout'; -import {formatTimestamp, latestCondition} from '../../shared/utils/utils'; +import {formatTimestamp} from '../../shared/utils/utils'; import {ActionButton} from '../action-button/action-button'; import {InfoItemRow} from '../info-item/info-item'; -import {conditionIcon} from '../status-icon/status-icon'; +import {PodIcon, RolloutStatus, StatusIcon} from '../status-icon/status-icon'; +import {WaitFor} from '../wait-for/wait-for'; import './rollouts-list.scss'; export const RolloutsList = () => { - const rollouts = useWatchRollouts(); + const [rollouts, loading] = useWatchRollouts(); + console.log(rollouts); return (
- {(rollouts || []).map((rollout) => ( - - ))} + + {(rollouts || []).map((rollout) => ( + + ))} +
); }; -export const RolloutWidget = (props: {rollout: Rollout}) => { +export const RolloutWidget = (props: {rollout: RolloutInfo}) => { const {rollout} = props; - const strategy = rollout.spec?.strategy?.blueGreen ? 'BlueGreen' : 'Canary'; + const api = new RolloutServiceApi(); return ( - +
- } /> - } /> - } /> -
-
- + } /> + } /> + } />
+ {rollout.replicaSets?.map( + (rsInfo) => + rsInfo.pods && + rsInfo.pods.length > 0 && ( +
+ +
+ ) + )}
- null} icon={} /> + api.restartRollout(rollout.objectMeta.name)} icon={} /> null} icon={} />
); }; -const Pods = () => { - const pods = Array(3); - pods.fill({status: true}); - pods.push({status: false}); - pods.push({status: false}); +const Pods = (props: {pods: Pod[]}) => { return (
- {pods.map((pod, i) => ( - + {props.pods.map((pod, i) => ( + ))}
); }; -const Pod = (props: {status: boolean}) => ( -
- -
-); +const PodWidget = (props: {status: string}) => ; -const WidgetHeader = (props: {rollout: Rollout}) => { +const WidgetHeader = (props: {rollout: RolloutInfo}) => { const {rollout} = props; return (
- {rollout.metadata?.name} - {conditionIcon(latestCondition(rollout.status?.conditions || []))} + {rollout.objectMeta?.name} + + +
); }; diff --git a/ui/src/app/components/status-icon/pod-icon.scss b/ui/src/app/components/status-icon/pod-icon.scss new file mode 100644 index 0000000000..c71a8b3817 --- /dev/null +++ b/ui/src/app/components/status-icon/pod-icon.scss @@ -0,0 +1,38 @@ +@import '../../shared/styles/colors.scss'; + +.pod-icon { + $size: 25px; + width: $size; + height: $size; + line-height: $size; + text-align: center; + border: 1px solid $silver-lining; + background-color: $fog; + color: $shine; + border-radius: 3px; + cursor: pointer; + &--success { + background-color: $forest; + color: $lime; + border: 1px solid $leaf; + &:hover { + border-color: $lime; + } + } + &--failure { + background-color: $dirt; + color: $coral; + border: 1px solid $clay; + &:hover { + border-color: $coral; + } + } + &--pending { + background-color: $deep-sea; + color: $sky; + border: 1px solid $sea; + &:hover { + border-color: $sky; + } + } +} diff --git a/ui/src/app/components/status-icon/status-icon.tsx b/ui/src/app/components/status-icon/status-icon.tsx index 4f2728dc9b..f1be9b9132 100644 --- a/ui/src/app/components/status-icon/status-icon.tsx +++ b/ui/src/app/components/status-icon/status-icon.tsx @@ -1,34 +1,11 @@ import * as React from 'react'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; -import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {faCheck, faCircleNotch, faExclamationTriangle, faTimes} from '@fortawesome/free-solid-svg-icons'; import {faCheckCircle, faPauseCircle, faQuestionCircle, faTimesCircle} from '@fortawesome/free-regular-svg-icons'; -import {RolloutCondition} from '../../../models/rollout/rollout'; import './status-icon.scss'; - -export const conditionIcon = (condition: RolloutCondition): JSX.Element => { - let icon, className; - let spin = false; - switch (condition.type) { - case 'Progressing': { - icon = faCircleNotch; - className = 'progressing'; - spin = true; - break; - } - case 'Available': { - icon = faCheckCircle; - className = 'healthy'; - break; - } - default: { - icon = faQuestionCircle; - className = 'unknown'; - } - } - return ; -}; +import './pod-icon.scss'; export enum RolloutStatus { Progressing = 'Progressing', @@ -37,9 +14,10 @@ export enum RolloutStatus { Healthy = 'Healthy', } -export const statusIcon = (status: RolloutStatus): JSX.Element => { +export const StatusIcon = (props: {status: RolloutStatus}): JSX.Element => { let icon, className; let spin = false; + const {status} = props; switch (status) { case 'Progressing': { icon = faCircleNotch; @@ -69,3 +47,54 @@ export const statusIcon = (status: RolloutStatus): JSX.Element => { } return ; }; + +export const PodIcon = (props: {status: string}) => { + const {status} = props; + let icon, className; + let spin = false; + if (status.startsWith('Init:')) { + icon = faCircleNotch; + spin = true; + } + if (status.startsWith('Signal:') || status.startsWith('ExitCode:')) { + icon = faTimes; + } + if (status.endsWith('Error') || status.startsWith('Err')) { + icon = faExclamationTriangle; + } + + switch (status) { + case 'Pending': + case 'Terminating': + case 'ContainerCreating': + icon = faCircleNotch; + className = 'pending'; + spin = true; + break; + case 'Running': + case 'Completed': + icon = faCheck; + className = 'success'; + break; + case 'Failed': + case 'InvalidImageName': + case 'CrashLoopBackOff': + className = 'failure'; + icon = faTimes; + break; + case 'ImagePullBackOff': + case 'RegistryUnavailable': + className = 'warning'; + icon = faExclamationTriangle; + break; + default: + className = 'unknown'; + icon = faQuestionCircle; + } + + return ( +
+ +
+ ); +}; diff --git a/ui/src/app/components/wait-for/wait-for.tsx b/ui/src/app/components/wait-for/wait-for.tsx new file mode 100644 index 0000000000..659209bd57 --- /dev/null +++ b/ui/src/app/components/wait-for/wait-for.tsx @@ -0,0 +1,13 @@ +import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import * as React from 'react'; + +export const Spinner = () => ( +
+ +
+); + +export const WaitFor = (props: {loading: boolean; loader?: React.ReactNode} & React.ComponentProps): JSX.Element => ( + {props.loading ? props.loader || : props.children} +); diff --git a/ui/src/app/shared/services/rollout.ts b/ui/src/app/shared/services/rollout.ts index 50e5cd3e20..b0ae714f3c 100644 --- a/ui/src/app/shared/services/rollout.ts +++ b/ui/src/app/shared/services/rollout.ts @@ -1,11 +1,11 @@ import {RolloutRolloutWatchEvent, RolloutServiceApiFetchParamCreator} from '../../../models/rollout/generated'; import {useWatch} from '../utils/watch'; -import {Rollout} from '../../../models/rollout/rollout'; +import {RolloutInfo} from '../../../models/rollout/rollout'; import * as React from 'react'; -export const useWatchRollouts = (init?: Rollout[]): Rollout[] => { - const findRollout = React.useCallback((rollout: Rollout, change: RolloutRolloutWatchEvent) => rollout.metadata.name === change.rollout.metadata.name, []); - const getRollout = React.useCallback((c) => c.rollout, []); +export const useWatchRollouts = (init?: RolloutInfo[]): [RolloutInfo[], boolean, boolean] => { + const findRollout = React.useCallback((ri: RolloutInfo, change: RolloutRolloutWatchEvent) => ri.objectMeta.name === change.rolloutInfo?.objectMeta?.name, []); + const getRollout = React.useCallback((c) => c.rolloutInfo as RolloutInfo, []); const streamUrl = RolloutServiceApiFetchParamCreator().watchRollouts().url; - return useWatch(streamUrl, findRollout, getRollout, init); + return useWatch(streamUrl, findRollout, getRollout, init); }; diff --git a/ui/src/app/shared/styles/colors.scss b/ui/src/app/shared/styles/colors.scss index 085373cebf..a6692555fc 100644 --- a/ui/src/app/shared/styles/colors.scss +++ b/ui/src/app/shared/styles/colors.scss @@ -67,6 +67,7 @@ $forest: #12221e; $sky: #58a6fe; $sea: #3a5e88; +$deep-sea: #172636; $coral: #f85149; $clay: #9e3d38; diff --git a/ui/src/app/shared/utils/utils.tsx b/ui/src/app/shared/utils/utils.tsx index 9be561bb1b..44291ab7e6 100644 --- a/ui/src/app/shared/utils/utils.tsx +++ b/ui/src/app/shared/utils/utils.tsx @@ -1,5 +1,4 @@ import * as React from 'react'; -import {RolloutCondition} from '../../../models/rollout/rollout'; import * as moment from 'moment'; export function useServerData(getData: () => Promise) { @@ -14,21 +13,8 @@ export function useServerData(getData: () => Promise) { return data as T; } -export function latestCondition(conditions: RolloutCondition[]): RolloutCondition { - if (conditions.length === 0) return {} as RolloutCondition; - let latest = conditions[0]; - conditions.forEach((condition) => { - const curTimestamp = moment(condition.lastUpdateTime as string); - const latestTimestamp = moment(latest.lastUpdateTime as string); - if (latestTimestamp.isSameOrBefore(curTimestamp)) { - latest = condition; - } - }); - return latest; -} - export function formatTimestamp(ts: string): string { - const inputFormat = 'YYYY-MM-DDTHH:mm:ss[Z]'; + const inputFormat = 'YYYY-MM-DD HH:mm:ss Z z'; const m = moment(ts, inputFormat); if (!ts || !m.isValid()) { return 'Never'; diff --git a/ui/src/app/shared/utils/watch.ts b/ui/src/app/shared/utils/watch.ts index 760e88d349..0e0f8b5e0a 100644 --- a/ui/src/app/shared/utils/watch.ts +++ b/ui/src/app/shared/utils/watch.ts @@ -1,6 +1,6 @@ import * as React from 'react'; -import {fromEvent, Observable, Observer, Subscription} from 'rxjs'; -import {debounceTime, delay, map, repeat, retryWhen, scan} from 'rxjs/operators'; +import {fromEvent, interval, Observable, Observer, Subscription} from 'rxjs'; +import {bufferTime, debounceTime, delay, map, mergeMap, repeat, retryWhen, scan, takeUntil} from 'rxjs/operators'; function fromEventSource(url: string): Observable { return new Observable((subscriber) => { @@ -16,6 +16,9 @@ function fromEventSource(url: string): Observable { }); } +const INITIAL_LOAD_TIME = 500; +const BUFFER_TIME = 500; + export function handlePageVisibility(src: () => Observable): Observable { return new Observable((observer: Observer) => { let subscription: Subscription; @@ -60,43 +63,67 @@ interface WatchEvent { } // NOTE: findItem and getItem must be React.useCallback functions -export function useWatch(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): T[] { +export function useWatch(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): [T[], boolean, boolean] { const [items, setItems] = React.useState([] as T[]); - + const [error, setError] = React.useState(false); + const [loading, setLoading] = React.useState(true); React.useEffect(() => { const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as E)); - let watch = handlePageVisibility(() => - stream.pipe( - repeat(), - retryWhen((errors) => errors.pipe(delay(500))), - scan((items, change) => { - const index = items.findIndex((i) => findItem(i, change)); - switch (change.type) { - case 'DELETED': - if (index > -1) { - items.splice(index, 1); - } - break; - default: - if (index > -1) { - items[index] = getItem(change); - } else { - items.unshift(getItem(change)); - } - break; - } - return items; - }, init || []) - ) + let watch = stream.pipe( + repeat(), + retryWhen((errors) => errors.pipe(delay(500))), + scan((items, change) => { + const index = items.findIndex((i) => findItem(i, change)); + switch (change.type) { + case 'DELETED': + if (index > -1) { + items.splice(index, 1); + } + break; + default: + if (index > -1) { + items[index] = getItem(change) as T; + } else { + items.unshift(getItem(change) as T); + } + break; + } + return items; + }, init || []) ); - watch.subscribe((list) => { + const subscribeList = (list: T[]) => { setItems([...list]); - }); + }; + + const initialLoad = watch.pipe( + takeUntil(interval(INITIAL_LOAD_TIME)), + bufferTime(INITIAL_LOAD_TIME), + mergeMap((r) => r) + ); + + initialLoad.subscribe( + subscribeList, + () => { + setLoading(false); + setError(true); + }, + () => { + setLoading(false); + } + ); + + const liveStream = handlePageVisibility(() => + watch.pipe( + bufferTime(BUFFER_TIME), + mergeMap((r) => r) + ) + ); + liveStream.subscribe(subscribeList); return () => { watch = null; }; }, [init, url, findItem, getItem]); - return items; + return [items, loading, error]; } diff --git a/ui/src/app/webpack.config.js b/ui/src/app/webpack.common.js similarity index 59% rename from ui/src/app/webpack.config.js rename to ui/src/app/webpack.common.js index 0b726ef4aa..1ddea01e16 100644 --- a/ui/src/app/webpack.config.js +++ b/ui/src/app/webpack.common.js @@ -2,15 +2,11 @@ const CopyWebpackPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); + const webpack = require('webpack'); const path = require('path'); -const isProd = process.env.NODE_ENV === 'production'; - -console.log(`Starting webpack in ${process.env.NODE_ENV || 'development'} mode`); - const config = { - mode: isProd ? 'production' : 'development', entry: { main: './src/app/index.tsx', }, @@ -29,10 +25,7 @@ const config = { rules: [ { test: /\.tsx?$/, - loaders: [ - ...(isProd ? [] : ['react-hot-loader/webpack']), - `ts-loader?transpileOnly=${!isProd}&allowTsInNodeModules=true&configFile=${path.resolve('./src/app/tsconfig.json')}`, - ], + loaders: [`ts-loader?allowTsInNodeModules=true&configFile=${path.resolve('./src/app/tsconfig.json')}`], }, { test: /\.scss$/, @@ -53,8 +46,7 @@ const config = { }, plugins: [ new webpack.DefinePlugin({ - 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'), - 'SYSTEM_INFO': JSON.stringify({ + SYSTEM_INFO: JSON.stringify({ version: process.env.VERSION || 'latest', }), }), @@ -69,25 +61,6 @@ const config = { ], }), ], - devServer: { - historyApiFallback: { - disableDotRule: true, - }, - watchOptions: { - ignored: [/dist/, /node_modules/], - }, - headers: { - 'X-Frame-Options': 'SAMEORIGIN', - }, - host: 'localhost', - port: 3101, - proxy: { - '/api/v1': { - target: isProd ? '' : 'http://localhost:3100', - secure: false, - }, - }, - }, }; module.exports = config; diff --git a/ui/src/app/webpack.dev.js b/ui/src/app/webpack.dev.js new file mode 100644 index 0000000000..88977f2c0a --- /dev/null +++ b/ui/src/app/webpack.dev.js @@ -0,0 +1,33 @@ +const {merge} = require('webpack-merge'); +const common = require('./webpack.common.js'); +const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; +const webpack = require('webpack'); + +module.exports = merge(common, { + mode: 'development', + plugins: [ + new BundleAnalyzerPlugin(), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify('development'), + }), + ], + devServer: { + historyApiFallback: { + disableDotRule: true, + }, + watchOptions: { + ignored: [/dist/, /node_modules/], + }, + headers: { + 'X-Frame-Options': 'SAMEORIGIN', + }, + host: 'localhost', + port: 3101, + proxy: { + '/api/v1': { + target: 'http://localhost:3100', + secure: false, + }, + }, + }, +}); diff --git a/ui/src/app/webpack.prod.js b/ui/src/app/webpack.prod.js new file mode 100644 index 0000000000..da8dc9c2c1 --- /dev/null +++ b/ui/src/app/webpack.prod.js @@ -0,0 +1,23 @@ +const {merge} = require('webpack-merge'); +const common = require('./webpack.common.js'); +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const webpack = require('webpack'); + +module.exports = merge(common, { + mode: 'production', + devtool: 'source-map', + plugins: [ + new MiniCssExtractPlugin(), + new webpack.DefinePlugin({ + 'process.env.NODE_ENV': JSON.stringify('production'), + }), + ], + module: { + rules: [ + { + test: /\.css$/i, + use: [MiniCssExtractPlugin.loader, 'css-loader'], + }, + ], + }, +}); diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index 94650c76a3..54b082a49b 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -133,6 +133,67 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRun */ valueFrom?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ArgumentValueFrom; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + icon?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + revision?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + status?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + successful?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + failed?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + inconclusive?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + error?: number; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1AnalysisRunInfo + */ + jobs?: Array; +} /** * * @export @@ -422,6 +483,55 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1CanaryStrat */ stableMetadata?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodTemplateMetadata; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + icon?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + revision?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + message?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + replicaSets?: Array; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ExperimentInfo + */ + analysisRuns?: Array; +} /** * * @export @@ -498,6 +608,31 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1IstioVirtua */ routes?: Array; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobInfo + */ + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobInfo + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1JobInfo + */ + icon?: string; +} /** * * @export @@ -542,6 +677,43 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PauseCondit */ startTime?: K8sIoApimachineryPkgApisMetaV1Time; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ + icon?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ + ready?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo + */ + restarts?: number; +} /** * * @export @@ -574,6 +746,97 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PreferredDu */ weight?: number; } +/** + * + * @export + * @interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ +export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo { + /** + * + * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + status?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + icon?: string; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + revision?: number; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + stable?: boolean; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + canary?: boolean; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + active?: boolean; + /** + * + * @type {boolean} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + preview?: boolean; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + replicas?: number; + /** + * + * @type {number} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + available?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + template?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + scaleDownDeadline?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + images?: Array; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo + */ + pods?: Array; +} /** * * @export @@ -841,7 +1104,7 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo * @type {K8sIoApimachineryPkgApisMetaV1ObjectMeta} * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo */ - metadata?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; + objectMeta?: K8sIoApimachineryPkgApisMetaV1ObjectMeta; /** * * @type {string} @@ -914,6 +1177,36 @@ export interface GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo */ available?: number; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + restartedAt?: string; + /** + * + * @type {string} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + generation?: string; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + replicaSets?: Array; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + experiments?: Array; + /** + * + * @type {Array} + * @memberof GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo + */ + analysisRuns?: Array; } /** * @@ -4706,10 +4999,10 @@ export interface RolloutRolloutWatchEvent { type?: string; /** * - * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout} + * @type {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo} * @memberof RolloutRolloutWatchEvent */ - rollout?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout; + rolloutInfo?: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo; } /** * @@ -4828,6 +5121,34 @@ export const RolloutServiceApiFetchParamCreator = function (configuration?: Conf options: localVarRequestOptions, }; }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + restartRollout(name: string, options: any = {}): FetchArgs { + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new RequiredError('name','Required parameter name was null or undefined when calling restartRollout.'); + } + const localVarPath = `/api/v1/rollout/restart/{name}` + .replace(`{${"name"}}`, encodeURIComponent(String(name))); + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * * @param {string} name @@ -4940,6 +5261,24 @@ export const RolloutServiceApiFp = function(configuration?: Configuration) { }); }; }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + restartRollout(name: string, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).restartRollout(name, options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, /** * * @param {string} name @@ -5010,6 +5349,15 @@ export const RolloutServiceApiFactory = function (configuration?: Configuration, listRollouts(options?: any) { return RolloutServiceApiFp(configuration).listRollouts(options)(fetch, basePath); }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + restartRollout(name: string, options?: any) { + return RolloutServiceApiFp(configuration).restartRollout(name, options)(fetch, basePath); + }, /** * * @param {string} name @@ -5069,6 +5417,17 @@ export class RolloutServiceApi extends BaseAPI { return RolloutServiceApiFp(this.configuration).listRollouts(options)(this.fetch, this.basePath); } + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public restartRollout(name: string, options?: any) { + return RolloutServiceApiFp(this.configuration).restartRollout(name, options)(this.fetch, this.basePath); + } + /** * * @param {string} name diff --git a/ui/src/models/rollout/generated/api_test.spec.ts b/ui/src/models/rollout/generated/api_test.spec.ts index 9cdb76ff46..8856efb9bc 100644 --- a/ui/src/models/rollout/generated/api_test.spec.ts +++ b/ui/src/models/rollout/generated/api_test.spec.ts @@ -31,6 +31,10 @@ describe("RolloutServiceApi", () => { test("listRollouts", () => { return expect(instance.listRollouts({})).resolves.toBe(null) }) + test("restartRollout", () => { + const name: string = "name_example" + return expect(instance.restartRollout(name, {})).resolves.toBe(null) + }) test("watchRollout", () => { const name: string = "name_example" return expect(instance.watchRollout(name, {})).resolves.toBe(null) diff --git a/ui/src/models/rollout/rollout.tsx b/ui/src/models/rollout/rollout.tsx index 9d41eeeae9..f6dcbaa694 100644 --- a/ui/src/models/rollout/rollout.tsx +++ b/ui/src/models/rollout/rollout.tsx @@ -1,4 +1,6 @@ import * as Generated from './generated'; export type Rollout = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1Rollout; +export type RolloutInfo = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutInfo; export type RolloutCondition = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1RolloutCondition; +export type Pod = Generated.GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1PodInfo; diff --git a/ui/yarn.lock b/ui/yarn.lock index 76dd9785d2..37141573c1 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1480,6 +1480,11 @@ schema-utils "^2.6.5" source-map "^0.7.3" +"@polka/url@^1.0.0-next.9": + version "1.0.0-next.11" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71" + integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA== + "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" @@ -2257,6 +2262,11 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.2.tgz#d4632bfc63fd93d0f15fd05ea0e984ffd3f5a8c3" + integrity sha512-+bpA9MJsHdZ4bgfDcpk0ozQyhhVct7rzOmO0s1IIr0AGGgKBljss8n2zp11rRP2wid5VGeh04CgeKzgat5/25A== + acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" @@ -2267,6 +2277,11 @@ acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.4: + version "8.0.5" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.5.tgz#a3bfb872a74a6a7f661bc81b9849d9cac12601b7" + integrity sha512-v+DieK/HJkJOpFBETDJioequtc3PfxsWMaxIdIwujtF7FEV/MAyDQLlm6/zPvr7Mix07mLh6ccVwIsloceodlg== + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -3448,6 +3463,11 @@ commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== +commander@^6.2.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + commander@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" @@ -4299,7 +4319,7 @@ dotenv@8.2.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== -duplexer@^0.1.1: +duplexer@^0.1.1, duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== @@ -5490,6 +5510,13 @@ gzip-size@5.1.1: duplexer "^0.1.1" pify "^4.0.1" +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + handle-thing@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" @@ -7350,7 +7377,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -mime@^2.4.4: +mime@^2.3.1, mime@^2.4.4: version "2.5.2" resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== @@ -7390,6 +7417,15 @@ mini-css-extract-plugin@0.11.3: schema-utils "^1.0.0" webpack-sources "^1.1.0" +mini-css-extract-plugin@^1.3.9: + version "1.3.9" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" + integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + webpack-sources "^1.1.0" + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -7484,7 +7520,14 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -moment@^2.29.1: +moment-timezone@^0.5.33: + version "0.5.33" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c" + integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w== + dependencies: + moment ">= 2.9.0" + +"moment@>= 2.9.0", moment@^2.29.1: version "2.29.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== @@ -7882,6 +7925,11 @@ open@^7.0.2: is-docker "^2.0.0" is-wsl "^2.1.1" +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + opn@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -10183,6 +10231,15 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sirv@^1.0.7: + version "1.0.11" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" + integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== + dependencies: + "@polka/url" "^1.0.0-next.9" + mime "^2.3.1" + totalist "^1.0.0" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -10918,6 +10975,11 @@ toidentifier@1.0.0: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + tough-cookie@^2.3.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -11389,6 +11451,21 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== +webpack-bundle-analyzer@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.0.tgz#74013106e7e2b07cbd64f3a5ae847f7e814802c7" + integrity sha512-9DhNa+aXpqdHk8LkLPTBU/dMfl84Y+WE2+KnfI6rSpNRNVKa0VGLjPd2pjFubDeqnWmulFggxmWBxhfJXZnR0g== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^6.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + webpack-cli@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" @@ -11842,7 +11919,7 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^7.2.3: +ws@^7.2.3, ws@^7.3.1: version "7.4.3" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.3.tgz#1f9643de34a543b8edb124bdcbc457ae55a6e5cd" integrity sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA== From 0c1630b960de07ef5cb869c32b45585dacb49f9c Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Mon, 8 Mar 2021 16:48:28 -0800 Subject: [PATCH 008/112] Fix rollouts watch endpoint. UI watch is smarter. Light/dark mode in UI. More UI progress Signed-off-by: Remington Breeze --- .../cmd/list/list_rollouts.go | 40 ++---- server/server.go | 55 +++++--- ui/package.json | 1 + ui/src/app/App.scss | 17 ++- ui/src/app/App.tsx | 42 +++--- .../action-button/action-button.scss | 21 ++- .../action-button/action-button.tsx | 35 +++-- ui/src/app/components/header/header.scss | 5 +- ui/src/app/components/header/header.tsx | 6 +- .../app/components/info-item/info-item.scss | 13 +- ui/src/app/components/info-item/info-item.tsx | 39 ++++-- .../rollout-actions/rollout-actions.tsx | 27 ++-- ui/src/app/components/rollout/rollout.scss | 47 ++++++- ui/src/app/components/rollout/rollout.tsx | 120 ++++++++++++++++-- .../rollouts-list/rollouts-list.scss | 47 +++++-- .../rollouts-list/rollouts-list.tsx | 116 ++++++++++++----- .../app/components/status-icon/pod-icon.scss | 33 +++++ .../components/status-icon/status-icon.tsx | 5 +- ui/src/app/components/theme-div/theme-div.tsx | 24 ++++ .../components/theme-toggle/theme-toggle.tsx | 12 ++ ui/src/app/components/tooltip/tooltip.scss | 15 +++ ui/src/app/components/tooltip/tooltip.tsx | 40 ++++++ ui/src/app/components/wait-for/spinner.scss | 10 ++ ui/src/app/components/wait-for/wait-for.tsx | 6 +- ui/src/app/shared/context/theme.tsx | 31 +++++ ui/src/app/shared/services/rollout.ts | 14 +- ui/src/app/shared/styles/colors.scss | 3 +- ui/src/app/shared/utils/watch.ts | 53 +++++++- ui/yarn.lock | 10 +- 29 files changed, 704 insertions(+), 183 deletions(-) create mode 100644 ui/src/app/components/theme-div/theme-div.tsx create mode 100644 ui/src/app/components/theme-toggle/theme-toggle.tsx create mode 100644 ui/src/app/components/tooltip/tooltip.scss create mode 100644 ui/src/app/components/tooltip/tooltip.tsx create mode 100644 ui/src/app/components/wait-for/spinner.scss create mode 100644 ui/src/app/shared/context/theme.tsx diff --git a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go index 4f896d2e05..6746876767 100644 --- a/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go +++ b/pkg/kubectl-argo-rollouts/cmd/list/list_rollouts.go @@ -6,7 +6,6 @@ import ( "text/tabwriter" "time" - log "github.com/sirupsen/logrus" "github.com/spf13/cobra" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -100,7 +99,12 @@ func (o *ListOptions) PrintRolloutTable(roList *v1alpha1.RolloutList) error { return nil } -func SubscribeRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList, opts metav1.ListOptions, flush func() error, c chan *v1alpha1.Rollout) error { +// PrintRolloutUpdates watches for changes to rollouts and prints the updates +func (o *ListOptions) PrintRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList) error { + w := tabwriter.NewWriter(o.Out, 0, 0, 2, ' ', 0) + + opts := o.ListOptions() + opts.ResourceVersion = roList.ListMeta.ResourceVersion watchIf, err := rolloutIf.Watch(ctx, opts) if err != nil { return err @@ -125,13 +129,12 @@ L: case next := <-watchIf.ResultChan(): ro, _ = next.Object.(*v1alpha1.Rollout) case <-ticker.C: - _ = flush() + _ = w.Flush() continue case <-ctx.Done(): break L } if ro == nil { - log.Warn("error on rollout watch. Attempting to re-establish") // if we get here, it means an error on the watch. try to re-establish the watch watchIf.Stop() newWatchIf, err := rolloutIf.Watch(ctx, opts) @@ -139,7 +142,7 @@ L: if retries > 5 { return err } - log.Warn(err) + o.Log.Warn(err) // this sleep prevents a hot-loop in the event there is a persistent error time.Sleep(time.Second) retries++ @@ -152,35 +155,10 @@ L: opts.ResourceVersion = ro.ObjectMeta.ResourceVersion roLine := newRolloutInfo(*ro) if prevLine, ok := prevLines[roLine.key()]; !ok || prevLine != roLine { - c <- ro + fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) prevLines[roLine.key()] = roLine } } watchIf.Stop() return nil } - -// PrintRolloutUpdates watches for changes to rollouts and prints the updates -func (o *ListOptions) PrintRolloutUpdates(ctx context.Context, rolloutIf argoprojv1alpha1.RolloutInterface, roList *v1alpha1.RolloutList) error { - opts := o.ListOptions() - opts.ResourceVersion = roList.ListMeta.ResourceVersion - - w := tabwriter.NewWriter(o.Out, 0, 0, 2, ' ', 0) - - stream := make(chan *v1alpha1.Rollout, 1000) - err := SubscribeRolloutUpdates(ctx, rolloutIf, roList, opts, w.Flush, stream) - if (err != nil) { - return err - } - - for { - select { - case r := <-stream: - roLine := newRolloutInfo(*r) - fmt.Fprintln(w, roLine.String(o.timestamps, o.allNamespaces)) - case <-ctx.Done(): - return nil - } - } - -} diff --git a/server/server.go b/server/server.go index 3b833cbf06..df8ae02200 100644 --- a/server/server.go +++ b/server/server.go @@ -12,8 +12,8 @@ import ( "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" - "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/list" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/restart" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" "github.com/argoproj/argo-rollouts/utils/json" "github.com/argoproj/pkg/errors" @@ -153,7 +153,7 @@ func (s* ArgoRolloutsServer) initRolloutViewController(name string, ctx context. return controller } -func (s* ArgoRolloutsServer) getRollout(name string) (*v1alpha1.RolloutInfo, error) { +func (s* ArgoRolloutsServer) getRolloutInfo(name string) (*v1alpha1.RolloutInfo, error) { controller := s.initRolloutViewController(name, context.Background()) ri, err := controller.GetRolloutInfo() if (err != nil) { @@ -164,7 +164,7 @@ func (s* ArgoRolloutsServer) getRollout(name string) (*v1alpha1.RolloutInfo, err // GetRollout returns a rollout func (s* ArgoRolloutsServer) GetRollout(c context.Context, q *rollout.RolloutQuery) (*v1alpha1.RolloutInfo, error) { - return s.getRollout(q.GetName()); + return s.getRolloutInfo(q.GetName()); } // WatchRollout returns a rollout stream @@ -199,7 +199,7 @@ func (s* ArgoRolloutsServer) RestartRollout(ctx context.Context, q *rollout.Roll rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) restartAt := time.Now().UTC() restart.RestartRollout(rolloutIf, q.GetName(), &restartAt) - return nil, nil + return &empty.Empty{}, nil } // WatchRollouts returns a stream of all rollouts @@ -221,7 +221,8 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer } for i := range(rolloutList.Items) { - ri, err := s.getRollout(rolloutList.Items[i].ObjectMeta.Name) + // only do intensive get for initial list + ri, err := s.getRolloutInfo(rolloutList.Items[i].ObjectMeta.Name) if (err != nil) { return nil } @@ -234,29 +235,45 @@ func (s* ArgoRolloutsServer) WatchRollouts(q *empty.Empty, ws rollout.RolloutSer } } - - flush := func() error { - return nil - } - - stream := make(chan *v1alpha1.Rollout, 1000) - err = list.SubscribeRolloutUpdates(ctx, rolloutIf, rolloutList, v1.ListOptions{}, flush, stream) + watchIf, err := rolloutIf.Watch(ctx, v1.ListOptions{}) if err != nil { return err } + var ro *v1alpha1.Rollout + retries := 0 +L: for { select { - case r := <-stream: - ri, err := s.getRollout(r.ObjectMeta.Name); - if (err != nil) { - return err + case next := <-watchIf.ResultChan(): + ro, _ = next.Object.(*v1alpha1.Rollout) + case <-ctx.Done(): + break L + } + if ro == nil { + log.Warn("error on rollout watch. Attempting to re-establish") + watchIf.Stop() + newWatchIf, err := rolloutIf.Watch(ctx, v1.ListOptions{}) + if err != nil { + if retries > 5 { + return err + } + log.Warn(err) + // this sleep prevents a hot-loop in the event there is a persistent error + time.Sleep(time.Second) + retries++ + } else { + watchIf = newWatchIf + retries = 0 } - send(ri) - case <-ws.Context().Done(): - return nil + continue } + // get shallow rollout info + ri := info.NewRolloutInfo(ro, nil, nil, nil, nil) + send(ri) } + watchIf.Stop() + return nil } func (s* ArgoRolloutsServer) GetNamespace(ctx context.Context, e* empty.Empty) (*rollout.NamespaceInfo, error) { diff --git a/ui/package.json b/ui/package.json index 0eda5b581b..f8dd060cf8 100644 --- a/ui/package.json +++ b/ui/package.json @@ -8,6 +8,7 @@ "@fortawesome/free-regular-svg-icons": "^5.15.2", "@fortawesome/free-solid-svg-icons": "^5.15.2", "@fortawesome/react-fontawesome": "^0.1.14", + "@rbreeze/react-keypress": "^0.1.0", "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", diff --git a/ui/src/app/App.scss b/ui/src/app/App.scss index aeb9d114a3..6a0b87f579 100644 --- a/ui/src/app/App.scss +++ b/ui/src/app/App.scss @@ -4,7 +4,7 @@ body, html { padding: 0; margin: 0; - background-color: $midnight-sky; + height: 100%; button, form, input, @@ -17,6 +17,21 @@ html { } } +a { + color: inherit; + text-decoration: none; +} + +#root { + height: 100%; +} + .rollouts { + height: 100%; font-family: 'Heebo', sans-serif; + background-color: $argo-color-gray-3; + + &--dark { + background-color: $midnight-sky; + } } diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx index 7beb3e88e7..9c591870ac 100644 --- a/ui/src/app/App.tsx +++ b/ui/src/app/App.tsx @@ -6,33 +6,39 @@ import {RolloutsList} from './components/rollouts-list/rollouts-list'; import {Redirect, Route, Router, Switch} from 'react-router-dom'; import {Rollout} from './components/rollout/rollout'; import {createBrowserHistory} from 'history'; +import {ThemeProvider} from './shared/context/theme'; +import {ThemeDiv} from './components/theme-div/theme-div'; const bases = document.getElementsByTagName('base'); const base = bases.length > 0 ? bases[0].getAttribute('href') || '/' : '/'; export const history = createBrowserHistory({basename: base}); -const Page = (props: {path: string; component: React.ReactNode; exact?: boolean}) => ( -
- - -
- {props.component} - - -
-); +const Page = (props: {path: string; component: React.ReactNode; exact?: boolean}) => { + return ( + + + +
+ {props.component} + + + + ); +}; const App = () => ( - - - + + + + - } /> - } /> + } /> + } /> - - - + + + + ); export default App; diff --git a/ui/src/app/components/action-button/action-button.scss b/ui/src/app/components/action-button/action-button.scss index faa1278bb6..56d798021b 100644 --- a/ui/src/app/components/action-button/action-button.scss +++ b/ui/src/app/components/action-button/action-button.scss @@ -2,16 +2,25 @@ .action-button { border-radius: 20px; - border: 1px solid $silver-lining; + border: 1px solid $argo-color-gray-6; padding: 10px 14px; - background-color: $fog; - color: $shine; + background-color: $argo-color-gray-6; + color: white; cursor: pointer; margin-right: 5px; - &:hover { - background-color: $spray-tan; - color: white; + background-color: $sherbert; border-color: $sherbert; } + + &--dark { + border: 1px solid $silver-lining; + background-color: $fog; + color: $shine; + &:hover { + background-color: $spray-tan; + color: white; + border-color: $sherbert; + } + } } diff --git a/ui/src/app/components/action-button/action-button.tsx b/ui/src/app/components/action-button/action-button.tsx index 9a12a1e91e..43299b09e5 100644 --- a/ui/src/app/components/action-button/action-button.tsx +++ b/ui/src/app/components/action-button/action-button.tsx @@ -1,23 +1,36 @@ +import {faCircleNotch, IconDefinition} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; -import {InfoLabelProps} from '../info-item/info-item'; +import {ThemeDiv} from '../theme-div/theme-div'; import './action-button.scss'; -export interface ButtonAction extends InfoLabelProps { - action: () => any; +export interface ActionButtonProps { + action?: Function; + label?: string; + icon?: IconDefinition; + indicateLoading?: boolean; + dark?: boolean; } -export const ActionButton = (props: {action: () => any} & InfoLabelProps) => { - const {label, action, icon} = props; +export const ActionButton = (props: ActionButtonProps) => { + const {label, action, icon, indicateLoading} = props; + const [loading, setLoading] = React.useState(false); + React.useEffect(() => { + setTimeout(() => setLoading(false), 1000); + }, [loading]); return ( - + {icon && } + {label && {label}} + ); }; diff --git a/ui/src/app/components/header/header.scss b/ui/src/app/components/header/header.scss index f919463ec5..9e113df23e 100644 --- a/ui/src/app/components/header/header.scss +++ b/ui/src/app/components/header/header.scss @@ -6,13 +6,16 @@ color: white; align-items: center; padding: 10px 0; - margin-bottom: 1em; &__brand { color: $shine; display: flex; align-items: center; text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } h1 { diff --git a/ui/src/app/components/header/header.tsx b/ui/src/app/components/header/header.tsx index 123790ffe5..e41185b487 100644 --- a/ui/src/app/components/header/header.tsx +++ b/ui/src/app/components/header/header.tsx @@ -3,6 +3,7 @@ import {Link, useParams} from 'react-router-dom'; import {RolloutNamespaceInfo, RolloutServiceApi} from '../../../models/rollout/generated'; import {useServerData} from '../../shared/utils/utils'; import {InfoItemRow} from '../info-item/info-item'; +import {ThemeToggle} from '../theme-toggle/theme-toggle'; import './header.scss'; @@ -24,7 +25,10 @@ export const Header = () => {
- + + + +
v0.1.0
diff --git a/ui/src/app/components/info-item/info-item.scss b/ui/src/app/components/info-item/info-item.scss index a3958b6b88..34b0e35c67 100644 --- a/ui/src/app/components/info-item/info-item.scss +++ b/ui/src/app/components/info-item/info-item.scss @@ -1,11 +1,20 @@ @import '../../shared/styles/colors.scss'; .info-item { - background-color: $fog; + background-color: $argo-color-gray-4; border-radius: 3px; - border: 1px solid $silver-lining; + border: 1px solid $argo-color-gray-5; padding: 3px 5px; margin-left: auto; + color: $argo-color-gray-8; + display: flex; + align-items: center; + + &--dark { + background-color: $fog; + border: 1px solid $silver-lining; + color: $dull-shine; + } &--row { display: flex; diff --git a/ui/src/app/components/info-item/info-item.tsx b/ui/src/app/components/info-item/info-item.tsx index fc4019d0c9..b7493b3507 100644 --- a/ui/src/app/components/info-item/info-item.tsx +++ b/ui/src/app/components/info-item/info-item.tsx @@ -1,24 +1,39 @@ +import {IconDefinition} from '@fortawesome/fontawesome-svg-core'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; +import {ThemeDiv} from '../theme-div/theme-div'; import './info-item.scss'; -export interface InfoLabelProps { - label: string; - icon?: JSX.Element; +export interface InfoItemProps { + content?: string; + icon?: IconDefinition; + style?: React.CSSProperties; } -export const InfoItem = (props: InfoLabelProps) => ( -
- {props.icon && {props.icon}} - {props.label} -
+export const InfoItem = (props: InfoItemProps) => ( + + {props.icon && ( + + + + )} + {props.content && props.content} + ); -export const InfoItemRow = (props: {content: string} & InfoLabelProps) => { - const {label, content, icon} = props; +export const InfoItemRow = (props: {label: string; content: InfoItemProps | InfoItemProps[]}) => { + let {label, content} = props; + if (!Array.isArray(content)) { + content = [content]; + } return (
- - + {props.label && } +
+ {content.map((c) => ( + + ))} +
); }; diff --git a/ui/src/app/components/rollout-actions/rollout-actions.tsx b/ui/src/app/components/rollout-actions/rollout-actions.tsx index 5f36120265..650cb9caa5 100644 --- a/ui/src/app/components/rollout-actions/rollout-actions.tsx +++ b/ui/src/app/components/rollout-actions/rollout-actions.tsx @@ -1,41 +1,46 @@ import {faPlayCircle} from '@fortawesome/free-regular-svg-icons'; import {faArrowCircleUp, faExclamationCircle, faRedoAlt, faSync} from '@fortawesome/free-solid-svg-icons'; -import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; +import {RolloutServiceApi} from '../../../models/rollout/generated'; import {ActionButton} from '../action-button/action-button'; -const Actions = [ - { +export const Actions = { + Restart: { label: 'RESTART', icon: faSync, - action: (): any => null, + action: (api: RolloutServiceApi, rolloutName: string, cb?: Function) => { + api.restartRollout(rolloutName); + if (cb) { + cb(); + } + }, }, - { + Resume: { label: 'RESUME', icon: faPlayCircle, action: (): any => null, }, - { + Retry: { label: 'RETRY', icon: faRedoAlt, action: (): any => null, }, - { + Abort: { label: 'ABORT', icon: faExclamationCircle, action: (): any => null, }, - { + PromoteFull: { label: 'PROMOTE-FULL', icon: faArrowCircleUp, action: (): any => null, }, -]; +}; export const RolloutActions = () => (
- {Actions.map((action) => ( - } /> + {Object.values(Actions).map((action) => ( + ))}
); diff --git a/ui/src/app/components/rollout/rollout.scss b/ui/src/app/components/rollout/rollout.scss index 1212d26d8f..7006a8a0eb 100644 --- a/ui/src/app/components/rollout/rollout.scss +++ b/ui/src/app/components/rollout/rollout.scss @@ -1,21 +1,60 @@ @import '../../shared/styles/colors.scss'; .rollout { - header { - color: $shine; + &__info { + width: 450px; + border: 1px solid $argo-color-gray-4; + border-radius: 3px; + padding: 10px; + background-color: white; + + &--dark { + background-color: $space; + border-color: $silver-lining; + } + } + + &__header { + color: $argo-color-gray-8; font-size: 22px; + margin-bottom: 1em; + &--dark { + color: $shine; + } } &__toolbar { box-sizing: border-box; font-size: 14px; width: 100%; - border-bottom: 1px solid $silver-lining; padding: 0 10px; padding-bottom: 1em; - margin-bottom: 1em; + margin-bottom: 1.5em; + border-bottom: 1px solid $argo-color-gray-4; + background-color: white; + padding-top: 1em; + + &--dark { + background-color: $space; + border-bottom: 1px solid $silver-lining; + } } &__body { padding: 0 20px; + color: $argo-color-gray-8; + + h3 { + margin-bottom: 0px; + font-size: 12px; + font-weight: 500; + color: $argo-color-gray-6; + } + + &--dark { + color: $shine; + h3 { + color: $dull-shine; + } + } } } diff --git a/ui/src/app/components/rollout/rollout.tsx b/ui/src/app/components/rollout/rollout.tsx index 96630eca5f..fe39c8985e 100644 --- a/ui/src/app/components/rollout/rollout.tsx +++ b/ui/src/app/components/rollout/rollout.tsx @@ -4,27 +4,127 @@ import {Helmet} from 'react-helmet'; import './rollout.scss'; import {RolloutActions} from '../rollout-actions/rollout-actions'; -import {useServerData} from '../../shared/utils/utils'; -import {RolloutServiceApi} from '../../../models/rollout/generated'; import {RolloutStatus, StatusIcon} from '../status-icon/status-icon'; +import {ThemeDiv} from '../theme-div/theme-div'; +import {useWatchRollout} from '../../shared/services/rollout'; +import {InfoItemRow} from '../info-item/info-item'; +import {RolloutInfo} from '../../../models/rollout/rollout'; +import {faBalanceScale, faBalanceScaleRight, faDove, faPalette, faRunning, faSearch, faShoePrints, faThumbsUp} from '@fortawesome/free-solid-svg-icons'; + +interface ImageInfo { + image: string; + tags: ImageTag[]; +} + +enum ImageTag { + Canary = 'canary', + Stable = 'stable', + Active = 'active', + Preview = 'preview', +} + +enum Strategy { + Canary = 'Canary', + BlueGreen = 'BlueGreen', +} + +const parseImages = (r: RolloutInfo): ImageInfo[] => { + const images: {[key: string]: ImageInfo} = {}; + (r.replicaSets || []).forEach((rs) => { + (rs.images || []).forEach((img) => { + const newImage: ImageInfo = { + image: img, + tags: [], + }; + if (rs.canary) { + newImage.tags.push(ImageTag.Canary); + } + if (rs.stable) { + newImage.tags.push(ImageTag.Stable); + } + if (rs.active) { + newImage.tags.push(ImageTag.Active); + } + if (rs.preview) { + newImage.tags.push(ImageTag.Preview); + } + if (images[img]) { + images[img].tags = [...newImage.tags, ...images[img].tags]; + } else { + images[img] = newImage; + } + }); + }); + return Object.values(images); +}; export const Rollout = () => { const {name} = useParams<{name: string}>(); - const getRollout = React.useCallback(() => new RolloutServiceApi().getRollout(name), [name]); - const rollout = useServerData(getRollout); + + const rollout = useWatchRollout(name, true); + return (
{name} / Argo Rollouts -
+ -
-
-
+ + + {name} -
-
+ + + + + {rollout.strategy === Strategy.Canary && ( + + + + {' '} + + )} + +

IMAGES

+ +
+ +
+ ); +}; + +const iconForStrategy = (s: Strategy) => { + switch (s) { + case Strategy.Canary: + return faDove; + case Strategy.BlueGreen: + return faPalette; + } +}; + +const iconForTag = (t: ImageTag) => { + switch (t) { + case ImageTag.Canary: + return faDove; + case ImageTag.Stable: + return faThumbsUp; + case ImageTag.Preview: + return faSearch; + case ImageTag.Active: + return faRunning; + } +}; + +const ImageItems = (props: {images: ImageInfo[]}) => { + return ( +
+ {props.images.map((img) => { + const imageItems = img.tags.map((t) => { + return {content: t, icon: iconForTag(t)}; + }); + return ; + })}
); }; diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss index 1d5745846f..d44156a230 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.scss +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -2,44 +2,73 @@ .pods { margin-top: 10px; - border: 1px solid $silver-lining; + border: 1px solid $argo-color-gray-5; display: flex; align-items: center; border-radius: 3px; - background-color: $space; + background-color: $argo-color-gray-3; padding: 7px; .pod-icon { margin: 3px; } + &--dark { + border-color: $silver-lining; + background-color: $space; + } } .rollouts-list { display: flex; padding: 20px; &__widget { - text-decoration: none; - border: 1px solid $silver-lining; border-radius: 5px; padding: 10px; - box-shadow: 1px 0px 4px 1px $space; - color: $dull-shine; + border: 1px solid $argo-color-gray-4; font-size: 14px; margin-right: 20px; - &:hover { + box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.05); + color: $argo-color-gray-7; + background-color: white; + + &--dark { + border-color: $silver-lining; + box-shadow: 1px 2px 3px 1px $space; + color: $dull-shine; + background: none; + } + + &:hover, + &--selected { + border-color: $sherbert; + } + + &--dark:hover, + &--dark#{&}--selected { border-color: $spray-tan; } + &__refresh { + &:hover { + color: $sherbert; + } + } + header { - color: $shine; + color: $argo-color-gray-8; display: flex; align-items: center; font-weight: 500; font-size: 18px; - border-bottom: 1px solid $silver-lining; + border-bottom: 1px solid $argo-color-gray-4; padding-bottom: 0.5em; margin-bottom: 0.5em; } + &--dark header { + color: $shine; + border-bottom: 1px solid $silver-lining; + } + &__body { width: 300px; } diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx index b8880a8e2e..9176d4a044 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.tsx +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -1,77 +1,125 @@ -import {faClock, faDove, faHistory, faPalette, faPlayCircle, faSync} from '@fortawesome/free-solid-svg-icons'; +import {faCircleNotch, faClock, faDove, faHistory, faPalette, faPlayCircle, faRedoAlt} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; import {Link} from 'react-router-dom'; import {RolloutServiceApi} from '../../../models/rollout/generated'; import {Pod, RolloutInfo} from '../../../models/rollout/rollout'; -import {useWatchRollouts} from '../../shared/services/rollout'; +import {useWatchRollout, useWatchRollouts} from '../../shared/services/rollout'; import {formatTimestamp} from '../../shared/utils/utils'; import {ActionButton} from '../action-button/action-button'; import {InfoItemRow} from '../info-item/info-item'; import {PodIcon, RolloutStatus, StatusIcon} from '../status-icon/status-icon'; +import {Tooltip} from '../tooltip/tooltip'; import {WaitFor} from '../wait-for/wait-for'; +import {Key, useKeyListener, useNav} from '@rbreeze/react-keypress'; import './rollouts-list.scss'; +import {ThemeDiv} from '../theme-div/theme-div'; +import {Actions} from '../rollout-actions/rollout-actions'; export const RolloutsList = () => { const [rollouts, loading] = useWatchRollouts(); - console.log(rollouts); + const [pos, nav, reset] = useNav(rollouts.length); + + const useKeyPress = useKeyListener(); + + useKeyPress(Key.RIGHT, () => nav(1)); + useKeyPress(Key.LEFT, () => nav(-1)); + useKeyPress(Key.ESCAPE, () => { + reset(); + return true; + }); + return (
- {(rollouts || []).map((rollout) => ( - + {(rollouts || []).map((rollout, i) => ( + ))}
); }; -export const RolloutWidget = (props: {rollout: RolloutInfo}) => { - const {rollout} = props; +export const RolloutWidget = (props: {rollout: RolloutInfo; selected?: boolean}) => { const api = new RolloutServiceApi(); + const [watching, subscribe] = React.useState(false); + let rollout = props.rollout; + const ACTION_WATCH_TIMEOUT = 20000; + React.useEffect(() => { + setTimeout(() => { + subscribe(false); + }, ACTION_WATCH_TIMEOUT); + }, [watching]); + useWatchRollout(props.rollout?.objectMeta?.name, watching, ACTION_WATCH_TIMEOUT, (r: RolloutInfo) => (rollout = r)); return ( - - -
- } /> - } /> - } /> -
- {rollout.replicaSets?.map( - (rsInfo) => - rsInfo.pods && - rsInfo.pods.length > 0 && ( -
- -
- ) - )} -
- api.restartRollout(rollout.objectMeta.name)} icon={} /> - null} icon={} /> -
- + + + subscribe(true)} /> +
+ + + +
+ {rollout.replicaSets?.map( + (rsInfo) => + rsInfo.pods && + rsInfo.pods.length > 0 && ( +
+ +
+ ) + )} +
+ Actions.Restart.action(api, rollout.objectMeta?.name || '', () => subscribe(true))} + icon={Actions.Restart.icon} + /> + null} icon={faPlayCircle} /> +
+ +
); }; const Pods = (props: {pods: Pod[]}) => { return ( -
+ {props.pods.map((pod, i) => ( - + ))} -
+ ); }; -const PodWidget = (props: {status: string}) => ; +const PodWidget = (props: {pod: Pod}) => ( + + + +); -const WidgetHeader = (props: {rollout: RolloutInfo}) => { +const WidgetHeader = (props: {rollout: RolloutInfo; refresh: () => void}) => { const {rollout} = props; + const [loading, setLoading] = React.useState(false); + React.useEffect(() => { + setTimeout(() => setLoading(false), 500); + }, [loading]); return (
{rollout.objectMeta?.name} - + + { + props.refresh(); + setLoading(true); + e.preventDefault(); + }} + spin={loading} + />
diff --git a/ui/src/app/components/status-icon/pod-icon.scss b/ui/src/app/components/status-icon/pod-icon.scss index c71a8b3817..09c5d5af89 100644 --- a/ui/src/app/components/status-icon/pod-icon.scss +++ b/ui/src/app/components/status-icon/pod-icon.scss @@ -11,7 +11,18 @@ color: $shine; border-radius: 3px; cursor: pointer; + &--success { + background-color: $grass; + color: white; + border: 1px solid $grass; + &:hover { + background-color: $leaf; + border-color: $leaf; + } + } + + &--dark#{&}--success { background-color: $forest; color: $lime; border: 1px solid $leaf; @@ -19,7 +30,18 @@ border-color: $lime; } } + &--failure { + background-color: $clay; + color: white; + border: 1px solid $clay; + &:hover { + border-color: $coral; + background-color: $coral; + } + } + + &--dark#{&}--failure { background-color: $dirt; color: $coral; border: 1px solid $clay; @@ -27,7 +49,18 @@ border-color: $coral; } } + &--pending { + background-color: $sky; + color: white; + border: 1px solid $sky; + &:hover { + border-color: $sea; + background-color: $sea; + } + } + + &--dark#{&}--pending { background-color: $deep-sea; color: $sky; border: 1px solid $sea; diff --git a/ui/src/app/components/status-icon/status-icon.tsx b/ui/src/app/components/status-icon/status-icon.tsx index f1be9b9132..f1c4ab08bb 100644 --- a/ui/src/app/components/status-icon/status-icon.tsx +++ b/ui/src/app/components/status-icon/status-icon.tsx @@ -6,6 +6,7 @@ import {faCheckCircle, faPauseCircle, faQuestionCircle, faTimesCircle} from '@fo import './status-icon.scss'; import './pod-icon.scss'; +import {ThemeDiv} from '../theme-div/theme-div'; export enum RolloutStatus { Progressing = 'Progressing', @@ -93,8 +94,8 @@ export const PodIcon = (props: {status: string}) => { } return ( -
+ -
+ ); }; diff --git a/ui/src/app/components/theme-div/theme-div.tsx b/ui/src/app/components/theme-div/theme-div.tsx new file mode 100644 index 0000000000..c6506b5288 --- /dev/null +++ b/ui/src/app/components/theme-div/theme-div.tsx @@ -0,0 +1,24 @@ +import * as React from 'react'; +import {Theme, useTheme} from '../../shared/context/theme'; + +export const ThemeDiv = (props: {children: React.ReactNode; disabled?: boolean} & React.DetailedHTMLProps, HTMLDivElement>) => { + const theme = useTheme(); + let clString = props.className; + + if (theme === Theme.Dark && !props.disabled) { + const cl = (clString || '').split(' ') || []; + const darkCl = []; + for (const c of cl) { + if (!c.endsWith('--dark')) { + darkCl.push(c + '--dark'); + } + } + clString = `${cl.join(' ')} ${darkCl.join(' ')}`; + } + + return ( +
+ {props.children} +
+ ); +}; diff --git a/ui/src/app/components/theme-toggle/theme-toggle.tsx b/ui/src/app/components/theme-toggle/theme-toggle.tsx new file mode 100644 index 0000000000..96464c01d9 --- /dev/null +++ b/ui/src/app/components/theme-toggle/theme-toggle.tsx @@ -0,0 +1,12 @@ +import {faMoon} from '@fortawesome/free-regular-svg-icons'; +import {faSun} from '@fortawesome/free-solid-svg-icons'; +import * as React from 'react'; +import {Theme, ThemeContext} from '../../shared/context/theme'; +import {ActionButton} from '../action-button/action-button'; + +export const ThemeToggle = () => { + const dmCtx = React.useContext(ThemeContext); + const isDark = dmCtx.theme === Theme.Dark; + const icon = isDark ? faSun : faMoon; + return dmCtx.set(isDark ? Theme.Light : Theme.Dark)} icon={icon} dark />; +}; diff --git a/ui/src/app/components/tooltip/tooltip.scss b/ui/src/app/components/tooltip/tooltip.scss new file mode 100644 index 0000000000..d3cc2969af --- /dev/null +++ b/ui/src/app/components/tooltip/tooltip.scss @@ -0,0 +1,15 @@ +@import '../../shared/styles/colors.scss'; + +.tooltip { + position: absolute; + padding: 5px 10px; + border-radius: 3px; + bottom: 100%; + z-index: 2; + background-color: $slate; + color: white; + width: 200px; + &--dark { + border: 1px solid $dull-shine; + } +} diff --git a/ui/src/app/components/tooltip/tooltip.tsx b/ui/src/app/components/tooltip/tooltip.tsx new file mode 100644 index 0000000000..ce91cc8b7f --- /dev/null +++ b/ui/src/app/components/tooltip/tooltip.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import {ThemeDiv} from '../theme-div/theme-div'; + +import './tooltip.scss'; + +export const useHover = (): [React.MutableRefObject, boolean] => { + const [show, setShow] = React.useState(false); + const ref = React.useRef(null); + + const handleMouseOver = () => setShow(true); + const handleMouseOut = () => setShow(false); + + React.useEffect(() => { + const cur = ref.current; + + if (cur) { + cur.addEventListener('mouseover', handleMouseOver); + cur.addEventListener('mouseout', handleMouseOut); + + return () => { + cur.removeEventListener('mouseover', handleMouseOver); + cur.removeEventListener('mouseout', handleMouseOut); + }; + } + }, []); + + return [ref, show]; +}; + +export const Tooltip = (props: {content: React.ReactNode | string} & React.PropsWithRef) => { + const [tooltip, showTooltip] = useHover(); + return ( +
+ +
{props.children}
+
+ ); +}; diff --git a/ui/src/app/components/wait-for/spinner.scss b/ui/src/app/components/wait-for/spinner.scss new file mode 100644 index 0000000000..ad9ef376fa --- /dev/null +++ b/ui/src/app/components/wait-for/spinner.scss @@ -0,0 +1,10 @@ +@import '../../shared/styles/colors.scss'; + +.spinner { + color: $slate; + font-size: 25px; + + &--dark { + color: white; + } +} diff --git a/ui/src/app/components/wait-for/wait-for.tsx b/ui/src/app/components/wait-for/wait-for.tsx index 659209bd57..5b802f4a51 100644 --- a/ui/src/app/components/wait-for/wait-for.tsx +++ b/ui/src/app/components/wait-for/wait-for.tsx @@ -1,11 +1,13 @@ import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; +import {ThemeDiv} from '../theme-div/theme-div'; +import './spinner.scss'; export const Spinner = () => ( -
+ -
+ ); export const WaitFor = (props: {loading: boolean; loader?: React.ReactNode} & React.ComponentProps): JSX.Element => ( diff --git a/ui/src/app/shared/context/theme.tsx b/ui/src/app/shared/context/theme.tsx new file mode 100644 index 0000000000..af9eb4ead9 --- /dev/null +++ b/ui/src/app/shared/context/theme.tsx @@ -0,0 +1,31 @@ +import * as React from 'react'; + +export const THEME_KEY = 'theme'; + +export enum Theme { + Dark = 'dark', + Light = 'light', +} + +const init = (JSON.parse(window.localStorage.getItem(THEME_KEY)) as Theme) || Theme.Light; + +interface ThemeContextProps { + theme: Theme; + set: (th: Theme) => void; +} + +export const ThemeContext = React.createContext({theme: init} as ThemeContextProps); + +export const ThemeProvider = (props: {children: React.ReactNode}) => { + const [theme, setTheme] = React.useState(init); + React.useEffect(() => { + window.localStorage.setItem(THEME_KEY, JSON.stringify(theme)); + }, [theme]); + + return setTheme(th)}}>{props.children}; +}; + +export const useTheme = () => { + const dmCtx = React.useContext(ThemeContext); + return dmCtx.theme; +}; diff --git a/ui/src/app/shared/services/rollout.ts b/ui/src/app/shared/services/rollout.ts index b0ae714f3c..0e739731b9 100644 --- a/ui/src/app/shared/services/rollout.ts +++ b/ui/src/app/shared/services/rollout.ts @@ -1,5 +1,5 @@ import {RolloutRolloutWatchEvent, RolloutServiceApiFetchParamCreator} from '../../../models/rollout/generated'; -import {useWatch} from '../utils/watch'; +import {useWatch, useWatchList} from '../utils/watch'; import {RolloutInfo} from '../../../models/rollout/rollout'; import * as React from 'react'; @@ -7,5 +7,15 @@ export const useWatchRollouts = (init?: RolloutInfo[]): [RolloutInfo[], boolean, const findRollout = React.useCallback((ri: RolloutInfo, change: RolloutRolloutWatchEvent) => ri.objectMeta.name === change.rolloutInfo?.objectMeta?.name, []); const getRollout = React.useCallback((c) => c.rolloutInfo as RolloutInfo, []); const streamUrl = RolloutServiceApiFetchParamCreator().watchRollouts().url; - return useWatch(streamUrl, findRollout, getRollout, init); + return useWatchList(streamUrl, findRollout, getRollout, init); +}; + +export const useWatchRollout = (name: string, subscribe: boolean, timeoutAfter?: number, callback?: (ri: RolloutInfo) => void): RolloutInfo => { + name = name || ''; + const streamUrl = RolloutServiceApiFetchParamCreator().watchRollout(name).url; + const ri = useWatch(streamUrl, subscribe, timeoutAfter); + if (callback && ri.objectMeta) { + callback(ri); + } + return ri; }; diff --git a/ui/src/app/shared/styles/colors.scss b/ui/src/app/shared/styles/colors.scss index a6692555fc..f7d9909642 100644 --- a/ui/src/app/shared/styles/colors.scss +++ b/ui/src/app/shared/styles/colors.scss @@ -46,8 +46,8 @@ $argo-cancelled-color: $argo-color-gray-5; $argo-init-color: $argo-color-gray-5; // Dark Mode -$midnight-sky: #0e0e14; $space: #09090f; +$midnight-sky: #0e0e14; $slate: #191826; $shine: #dad6e7; $dull-shine: #abb2b9; @@ -62,6 +62,7 @@ $peach: #fd8a5f; // Statuses $lime: #3eb74f; +$grass: #339440; $leaf: #246b2d; $forest: #12221e; diff --git a/ui/src/app/shared/utils/watch.ts b/ui/src/app/shared/utils/watch.ts index 0e0f8b5e0a..17d14cf934 100644 --- a/ui/src/app/shared/utils/watch.ts +++ b/ui/src/app/shared/utils/watch.ts @@ -1,6 +1,6 @@ import * as React from 'react'; import {fromEvent, interval, Observable, Observer, Subscription} from 'rxjs'; -import {bufferTime, debounceTime, delay, map, mergeMap, repeat, retryWhen, scan, takeUntil} from 'rxjs/operators'; +import {bufferTime, debounceTime, delay, map, mergeMap, repeat, retryWhen, scan, takeUntil, timeout} from 'rxjs/operators'; function fromEventSource(url: string): Observable { return new Observable((subscriber) => { @@ -63,7 +63,7 @@ interface WatchEvent { } // NOTE: findItem and getItem must be React.useCallback functions -export function useWatch(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): [T[], boolean, boolean] { +export function useWatchList(url: string, findItem: (item: T, change: E) => boolean, getItem: (change: E) => T, init?: T[]): [T[], boolean, boolean] { const [items, setItems] = React.useState([] as T[]); const [error, setError] = React.useState(false); const [loading, setLoading] = React.useState(true); @@ -75,11 +75,17 @@ export function useWatch(url: string, findItem: (item: scan((items, change) => { const index = items.findIndex((i) => findItem(i, change)); switch (change.type) { - case 'DELETED': + case 'Deleted': if (index > -1) { items.splice(index, 1); } break; + case 'Updated': + if (index > -1) { + const updated = {...items[index], ...getItem(change)}; + items[index] = updated as T; + } + break; default: if (index > -1) { items[index] = getItem(change) as T; @@ -113,17 +119,54 @@ export function useWatch(url: string, findItem: (item: } ); - const liveStream = handlePageVisibility(() => + let liveStream = handlePageVisibility(() => watch.pipe( bufferTime(BUFFER_TIME), mergeMap((r) => r) ) ); - liveStream.subscribe(subscribeList); + const sub = liveStream.subscribe(subscribeList); return () => { watch = null; + liveStream = null; + sub.unsubscribe(); }; }, [init, url, findItem, getItem]); return [items, loading, error]; } + +export function useWatch(url: string, subscribe: boolean, timeoutAfter?: number) { + const [item, setItem] = React.useState({} as T); + React.useEffect(() => { + if (!subscribe) { + return; + } + const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as T)); + let watch = stream.pipe( + repeat(), + retryWhen((errors) => errors.pipe(delay(500))), + scan((item, update) => { + return update; + }, {} as T) + ); + + let liveStream = handlePageVisibility(() => + watch.pipe( + bufferTime(BUFFER_TIME), + mergeMap((r) => r) + ) + ); + + if (timeoutAfter > 0) { + liveStream = liveStream.pipe(timeout(timeoutAfter)); + } + + const sub = liveStream.subscribe((i) => setItem(i)); + return () => { + liveStream = null; + sub.unsubscribe(); + }; + }, [url, subscribe, timeoutAfter]); + return item; +} diff --git a/ui/yarn.lock b/ui/yarn.lock index 37141573c1..ab75cb7b6b 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1485,6 +1485,14 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71" integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA== +"@rbreeze/react-keypress@^0.1.0": + version "0.1.1" + resolved "https://npm.pkg.github.com/download/@rbreeze/react-keypress/0.1.1/c22084694bbbb2f4e3c9ae14200ac24e85c4d5d55fe07fa1ee38c6d4c918fbab#08779fe877f52c6fc52c2b021577291d0e572daa" + integrity sha512-Lsu8OaOjMfVBnODUBQwTL7PwQdIRiVbyX9udHbwu9JD088+SKPjdgyVtiARES69z5Gmja5LV4qh/gPShjqqKkg== + dependencies: + "@types/react" "^17.0.2" + react "^17.0.1" + "@rollup/plugin-node-resolve@^7.1.1": version "7.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" @@ -1875,7 +1883,7 @@ "@types/history" "*" "@types/react" "*" -"@types/react@*", "@types/react@^17.0.0": +"@types/react@*", "@types/react@^17.0.0", "@types/react@^17.0.2": version "17.0.2" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.2.tgz#3de24c4efef902dd9795a49c75f760cbe4f7a5a8" integrity sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA== From c0e6c576da7942c7ba111bc67fe7cf469d590f8d Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Tue, 9 Mar 2021 18:15:16 -0800 Subject: [PATCH 009/112] Add server action to promote rollout, add more info to rollout UI view Signed-off-by: Remington Breeze --- pkg/apiclient/rollout/rollout.pb.go | 102 +++++++++++------ pkg/apiclient/rollout/rollout.pb.gw.go | 98 ++++++++++++++++ pkg/apiclient/rollout/rollout.proto | 4 + pkg/apiclient/rollout/rollout.swagger.json | 24 ++++ server/server.go | 10 ++ ui/src/app/App.tsx | 19 +-- .../app/components/info-item/info-item.scss | 5 +- ui/src/app/components/info-item/info-item.tsx | 4 +- ui/src/app/components/menu/menu.scss | 31 +++++ ui/src/app/components/menu/menu.tsx | 38 ++++++ .../pod-icon.scss => pods/pods.scss} | 42 ++++++- ui/src/app/components/pods/pods.tsx | 96 ++++++++++++++++ .../rollout-actions/rollout-actions.tsx | 108 ++++++++++++------ ui/src/app/components/rollout/rollout.scss | 14 ++- ui/src/app/components/rollout/rollout.tsx | 40 +++---- .../rollouts-list/rollouts-list.scss | 41 +++---- .../rollouts-list/rollouts-list.tsx | 49 +++----- .../components/status-icon/status-icon.scss | 2 +- .../components/status-icon/status-icon.tsx | 55 +-------- ui/src/app/shared/context/api.tsx | 9 ++ ui/src/app/shared/utils/utils.tsx | 39 +++++++ ui/src/app/shared/utils/watch.ts | 81 ++++++------- ui/src/models/rollout/generated/api.ts | 66 +++++++++++ .../models/rollout/generated/api_test.spec.ts | 4 + 24 files changed, 711 insertions(+), 270 deletions(-) create mode 100644 ui/src/app/components/menu/menu.scss create mode 100644 ui/src/app/components/menu/menu.tsx rename ui/src/app/components/{status-icon/pod-icon.scss => pods/pods.scss} (63%) create mode 100644 ui/src/app/components/pods/pods.tsx create mode 100644 ui/src/app/shared/context/api.tsx diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index 4848d53c7c..e22faba7dc 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -189,39 +189,39 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 497 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcf, 0x6b, 0x13, 0x41, - 0x14, 0x66, 0x8a, 0x3f, 0xe8, 0x34, 0x2d, 0xf6, 0x89, 0x21, 0xc6, 0xb0, 0x84, 0x55, 0xa4, 0x97, - 0xce, 0x36, 0xf5, 0xe0, 0x5d, 0x08, 0xa5, 0x50, 0x04, 0xe3, 0x41, 0xf4, 0x22, 0x93, 0xf5, 0x75, - 0xb3, 0x66, 0x33, 0x33, 0xcc, 0x4c, 0x22, 0x41, 0xbc, 0x78, 0x15, 0xbc, 0xe8, 0xc1, 0x3f, 0xc9, - 0xa3, 0xe0, 0x3f, 0x20, 0xc1, 0x7f, 0xc1, 0xbb, 0xcc, 0xec, 0xec, 0x26, 0x0d, 0x04, 0x3d, 0x94, - 0x9e, 0xf6, 0xcd, 0xdb, 0x37, 0xdf, 0xf7, 0xbd, 0xf7, 0x3e, 0x86, 0xde, 0x57, 0xe3, 0x2c, 0xe1, - 0x2a, 0x4f, 0x8b, 0x1c, 0x85, 0x4d, 0xb4, 0x2c, 0x0a, 0x39, 0xad, 0xbf, 0x4c, 0x69, 0x69, 0x25, - 0xdc, 0x0c, 0xc7, 0x76, 0x27, 0x93, 0x32, 0x2b, 0xd0, 0x5d, 0x48, 0xb8, 0x10, 0xd2, 0x72, 0x9b, - 0x4b, 0x61, 0xca, 0xb2, 0xf6, 0x59, 0x96, 0xdb, 0xd1, 0x74, 0xc8, 0x52, 0x39, 0x49, 0xb8, 0xce, - 0xa4, 0xd2, 0xf2, 0xad, 0x0f, 0x0e, 0xc3, 0x7d, 0x93, 0x04, 0x36, 0x93, 0xd4, 0x99, 0x59, 0x8f, - 0x17, 0x6a, 0xc4, 0x7b, 0x49, 0x86, 0x02, 0x35, 0xb7, 0xf8, 0x26, 0xa0, 0xdd, 0x0b, 0x5c, 0xfe, - 0x34, 0x9c, 0x9e, 0x27, 0x38, 0x51, 0x76, 0x5e, 0xfe, 0x8c, 0x63, 0xda, 0x18, 0x94, 0x08, 0xcf, - 0xa6, 0xa8, 0xe7, 0x00, 0xf4, 0x9a, 0xe0, 0x13, 0x6c, 0x91, 0x2e, 0x39, 0xd8, 0x1e, 0xf8, 0x38, - 0xfe, 0x4a, 0xe8, 0x7e, 0x28, 0x7a, 0xc1, 0x6d, 0x3a, 0xea, 0xcf, 0x50, 0x58, 0x57, 0x69, 0xe7, - 0xaa, 0xae, 0x74, 0x31, 0x8c, 0xe9, 0x4e, 0xd0, 0x73, 0x2a, 0xce, 0x65, 0x6b, 0xab, 0x4b, 0x0e, - 0x76, 0x8e, 0x4f, 0xd9, 0xb2, 0x1d, 0x56, 0xb5, 0xe3, 0x83, 0xd7, 0x95, 0x78, 0xa6, 0xc6, 0x19, - 0x73, 0xed, 0xb0, 0x3a, 0x53, 0xb5, 0xc3, 0x06, 0x4b, 0xc0, 0xc1, 0x2a, 0x7a, 0x7c, 0x48, 0x77, - 0x9f, 0xf2, 0x09, 0x1a, 0xc5, 0x53, 0x74, 0x09, 0xe8, 0xd0, 0x6d, 0x51, 0x25, 0x82, 0xac, 0x65, - 0xe2, 0xf8, 0xcf, 0x75, 0xba, 0x17, 0xb0, 0x9e, 0xa3, 0x9e, 0xe5, 0x29, 0xc2, 0x67, 0x42, 0xe9, - 0x09, 0xda, 0x90, 0x85, 0x3b, 0x15, 0x3b, 0x5b, 0x1d, 0x49, 0xfb, 0xf2, 0xf4, 0xc7, 0xd1, 0xc7, - 0x9f, 0xbf, 0xbf, 0x6c, 0xb5, 0xa0, 0xe9, 0x17, 0x3f, 0xeb, 0xd5, 0x36, 0x79, 0xef, 0x74, 0x7e, - 0x80, 0x6f, 0x84, 0x36, 0xfc, 0x88, 0xaf, 0x4e, 0xd2, 0x03, 0x2f, 0x29, 0x82, 0xce, 0xba, 0xa4, - 0x77, 0x4e, 0x47, 0x10, 0x76, 0x44, 0xe0, 0x13, 0xa1, 0x8d, 0xb3, 0xdc, 0x54, 0xc3, 0x32, 0xd0, - 0x64, 0xa5, 0xaf, 0x58, 0xe5, 0x2b, 0xd6, 0x77, 0xbe, 0xba, 0x24, 0x6d, 0x8e, 0x2a, 0x6e, 0x79, - 0x6d, 0x00, 0xb7, 0xd6, 0xb4, 0x19, 0x40, 0xba, 0xbb, 0x3a, 0xa7, 0xcd, 0x6a, 0xda, 0xeb, 0x03, - 0x5c, 0x3a, 0x78, 0xe3, 0x36, 0x4c, 0xd9, 0xfb, 0x11, 0x81, 0x97, 0xb4, 0x71, 0x82, 0xb6, 0x76, - 0xd9, 0x46, 0x96, 0x66, 0xcd, 0x72, 0xc1, 0x91, 0xf1, 0x5d, 0xcf, 0x70, 0x1b, 0xf6, 0x2b, 0x86, - 0xda, 0x8e, 0x90, 0xd1, 0xbd, 0x01, 0x1a, 0xcb, 0xf5, 0xbf, 0xec, 0xb7, 0x81, 0x33, 0x7e, 0xe8, - 0xb1, 0xbb, 0x10, 0xad, 0x2f, 0x4e, 0x97, 0xb0, 0x61, 0x75, 0x4f, 0xfa, 0xdf, 0x17, 0x11, 0xf9, - 0xb1, 0x88, 0xc8, 0xaf, 0x45, 0x44, 0x5e, 0x3d, 0xfe, 0xef, 0xa7, 0xe5, 0xe2, 0x43, 0x36, 0xbc, - 0xe1, 0xe9, 0x1f, 0xfd, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x5d, 0x82, 0x53, 0xe8, 0x04, 0x00, - 0x00, + // 509 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x41, 0x6b, 0x13, 0x41, + 0x14, 0x66, 0x8a, 0x54, 0x3a, 0x4d, 0x83, 0x7d, 0x62, 0x88, 0x31, 0x2c, 0x61, 0x15, 0xe9, 0xa5, + 0xb3, 0x4d, 0x3d, 0x78, 0x17, 0x42, 0x29, 0x14, 0xd1, 0x78, 0x10, 0xbd, 0xc8, 0x64, 0x7d, 0xdd, + 0xac, 0xd9, 0xdd, 0x19, 0x66, 0x27, 0x91, 0x20, 0x5e, 0xbc, 0x0a, 0x5e, 0xf4, 0xe0, 0x4f, 0xf2, + 0x28, 0x78, 0x17, 0x09, 0xfe, 0x10, 0x99, 0xd9, 0x99, 0x4d, 0x1a, 0x08, 0x7a, 0x08, 0x9e, 0xf6, + 0xcd, 0xdb, 0x37, 0xdf, 0xf7, 0xbd, 0xf7, 0x3e, 0x86, 0xde, 0x95, 0x93, 0x24, 0xe2, 0x32, 0x8d, + 0xb3, 0x14, 0x0b, 0x1d, 0x29, 0x91, 0x65, 0x62, 0x5a, 0x7f, 0x99, 0x54, 0x42, 0x0b, 0xb8, 0xee, + 0x8e, 0x9d, 0x6e, 0x22, 0x44, 0x92, 0xa1, 0xb9, 0x10, 0xf1, 0xa2, 0x10, 0x9a, 0xeb, 0x54, 0x14, + 0x65, 0x55, 0xd6, 0xb9, 0x48, 0x52, 0x3d, 0x9e, 0x8e, 0x58, 0x2c, 0xf2, 0x88, 0xab, 0x44, 0x48, + 0x25, 0xde, 0xd8, 0xe0, 0xd8, 0xdd, 0x2f, 0x23, 0xc7, 0x56, 0x46, 0x75, 0x66, 0xd6, 0xe7, 0x99, + 0x1c, 0xf3, 0x7e, 0x94, 0x60, 0x81, 0x8a, 0x6b, 0x7c, 0xed, 0xd0, 0xee, 0x38, 0x2e, 0x7b, 0x1a, + 0x4d, 0x2f, 0x23, 0xcc, 0xa5, 0x9e, 0x57, 0x3f, 0xc3, 0x90, 0x36, 0x86, 0x15, 0xc2, 0xd3, 0x29, + 0xaa, 0x39, 0x00, 0xbd, 0x56, 0xf0, 0x1c, 0xdb, 0xa4, 0x47, 0x8e, 0xf6, 0x86, 0x36, 0x0e, 0xbf, + 0x10, 0x7a, 0xe8, 0x8a, 0x9e, 0x73, 0x1d, 0x8f, 0x07, 0x33, 0x2c, 0xb4, 0xa9, 0xd4, 0x73, 0x59, + 0x57, 0x9a, 0x18, 0x26, 0x74, 0xdf, 0xe9, 0x39, 0x2f, 0x2e, 0x45, 0x7b, 0xa7, 0x47, 0x8e, 0xf6, + 0x4f, 0xcf, 0xd9, 0xb2, 0x1d, 0xe6, 0xdb, 0xb1, 0xc1, 0x2b, 0x2f, 0x9e, 0xc9, 0x49, 0xc2, 0x4c, + 0x3b, 0xac, 0xce, 0xf8, 0x76, 0xd8, 0x70, 0x09, 0x38, 0x5c, 0x45, 0x0f, 0x8f, 0xe9, 0xc1, 0x63, + 0x9e, 0x63, 0x29, 0x79, 0x8c, 0x26, 0x01, 0x5d, 0xba, 0x57, 0xf8, 0x84, 0x93, 0xb5, 0x4c, 0x9c, + 0xfe, 0xdc, 0xa5, 0x4d, 0x87, 0xf5, 0x0c, 0xd5, 0x2c, 0x8d, 0x11, 0x3e, 0x11, 0x4a, 0xcf, 0x50, + 0xbb, 0x2c, 0xdc, 0xf2, 0xec, 0x6c, 0x75, 0x24, 0x9d, 0xed, 0xe9, 0x0f, 0x83, 0x0f, 0x3f, 0x7e, + 0x7f, 0xde, 0x69, 0x43, 0xcb, 0x2e, 0x7e, 0xd6, 0xaf, 0x6d, 0xf2, 0xce, 0xe8, 0x7c, 0x0f, 0x5f, + 0x09, 0x6d, 0xd8, 0x11, 0xff, 0x3f, 0x49, 0xf7, 0xac, 0xa4, 0x00, 0xba, 0xeb, 0x92, 0xde, 0x1a, + 0x1d, 0x4e, 0xd8, 0x09, 0x81, 0x8f, 0x84, 0x36, 0x2e, 0xd2, 0xd2, 0x0f, 0xab, 0x84, 0x16, 0xab, + 0x7c, 0xc5, 0xbc, 0xaf, 0xd8, 0xc0, 0xf8, 0x6a, 0x4b, 0xda, 0x0c, 0x55, 0xd8, 0xb6, 0xda, 0x00, + 0x6e, 0xac, 0x69, 0x2b, 0x01, 0xe9, 0xc1, 0xea, 0x9c, 0x36, 0xab, 0xe9, 0xac, 0x0f, 0x70, 0xe9, + 0xe0, 0x8d, 0xdb, 0x28, 0xab, 0xde, 0x4f, 0x08, 0xbc, 0xa0, 0x8d, 0x33, 0xd4, 0xb5, 0xcb, 0x36, + 0xb2, 0xb4, 0x6a, 0x96, 0x2b, 0x8e, 0x0c, 0x6f, 0x5b, 0x86, 0x9b, 0x70, 0xe8, 0x19, 0x6a, 0x3b, + 0x42, 0x42, 0x9b, 0x43, 0x2c, 0x35, 0x57, 0x7f, 0xb3, 0xdf, 0x06, 0xce, 0xf0, 0xbe, 0xc5, 0xee, + 0x41, 0xb0, 0xbe, 0x38, 0x55, 0xc1, 0x7a, 0x4f, 0x25, 0xb4, 0xf9, 0x44, 0x89, 0x5c, 0x68, 0xdc, + 0x36, 0x91, 0xac, 0x60, 0x1d, 0xd1, 0xa3, 0xc1, 0xb7, 0x45, 0x40, 0xbe, 0x2f, 0x02, 0xf2, 0x6b, + 0x11, 0x90, 0x97, 0x0f, 0xff, 0xf9, 0x0d, 0xbb, 0xfa, 0x62, 0x8e, 0x76, 0x2d, 0xfd, 0x83, 0x3f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xd3, 0x9b, 0x24, 0x51, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -243,6 +243,7 @@ type RolloutServiceClient interface { WatchRollouts(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (RolloutService_WatchRolloutsClient, error) GetNamespace(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*NamespaceInfo, error) RestartRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) + PromoteRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) } type rolloutServiceClient struct { @@ -353,6 +354,15 @@ func (c *rolloutServiceClient) RestartRollout(ctx context.Context, in *RolloutQu return out, nil } +func (c *rolloutServiceClient) PromoteRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/PromoteRollout", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // Get returns a rollout @@ -362,6 +372,7 @@ type RolloutServiceServer interface { WatchRollouts(*empty.Empty, RolloutService_WatchRolloutsServer) error GetNamespace(context.Context, *empty.Empty) (*NamespaceInfo, error) RestartRollout(context.Context, *RolloutQuery) (*empty.Empty, error) + PromoteRollout(context.Context, *RolloutQuery) (*empty.Empty, error) } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. @@ -386,6 +397,9 @@ func (*UnimplementedRolloutServiceServer) GetNamespace(ctx context.Context, req func (*UnimplementedRolloutServiceServer) RestartRollout(ctx context.Context, req *RolloutQuery) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method RestartRollout not implemented") } +func (*UnimplementedRolloutServiceServer) PromoteRollout(ctx context.Context, req *RolloutQuery) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method PromoteRollout not implemented") +} func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) @@ -505,6 +519,24 @@ func _RolloutService_RestartRollout_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _RolloutService_PromoteRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).PromoteRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/PromoteRollout", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).PromoteRollout(ctx, req.(*RolloutQuery)) + } + return interceptor(ctx, in, info, handler) +} + var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), @@ -525,6 +557,10 @@ var _RolloutService_serviceDesc = grpc.ServiceDesc{ MethodName: "RestartRollout", Handler: _RolloutService_RestartRollout_Handler, }, + { + MethodName: "PromoteRollout", + Handler: _RolloutService_PromoteRollout_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index ce419fcc65..bc9b1539c0 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -228,6 +228,60 @@ func local_request_RolloutService_RestartRollout_0(ctx context.Context, marshale } +func request_RolloutService_PromoteRollout_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.PromoteRollout(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_PromoteRollout_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.PromoteRollout(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". // UnaryRPC :call RolloutServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -327,6 +381,26 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_PromoteRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_PromoteRollout_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_PromoteRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -488,6 +562,26 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_PromoteRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_PromoteRollout_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_PromoteRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -503,6 +597,8 @@ var ( pattern_RolloutService_GetNamespace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "namespace"}, "", runtime.AssumeColonVerbOpt(true))) pattern_RolloutService_RestartRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "restart", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_PromoteRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "promote", "name"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -517,4 +613,6 @@ var ( forward_RolloutService_GetNamespace_0 = runtime.ForwardResponseMessage forward_RolloutService_RestartRollout_0 = runtime.ForwardResponseMessage + + forward_RolloutService_PromoteRollout_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index b9e2e16eb2..c8a9bec61c 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -45,4 +45,8 @@ service RolloutService { rpc RestartRollout(RolloutQuery) returns (google.protobuf.Empty) { option (google.api.http).get = "/api/v1/rollout/restart/{name}"; } + + rpc PromoteRollout(RolloutQuery) returns (google.protobuf.Empty) { + option (google.api.http).get = "/api/v1/rollout/promote/{name}"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index f49386fa96..243414a74e 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -27,6 +27,30 @@ ] } }, + "/api/v1/rollout/promote/{name}": { + "get": { + "operationId": "PromoteRollout", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/rollout/restart/{name}": { "get": { "operationId": "RestartRollout", diff --git a/server/server.go b/server/server.go index df8ae02200..ee21aa4f00 100644 --- a/server/server.go +++ b/server/server.go @@ -12,6 +12,7 @@ import ( "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/promote" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/restart" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" @@ -278,4 +279,13 @@ L: func (s* ArgoRolloutsServer) GetNamespace(ctx context.Context, e* empty.Empty) (*rollout.NamespaceInfo, error) { return &rollout.NamespaceInfo{ Namespace: s.Options.Namespace }, nil +} + +func (s* ArgoRolloutsServer) PromoteRollout(ctx context.Context, q *rollout.RolloutQuery) (*empty.Empty, error) { + rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) + _, err := promote.PromoteRollout(rolloutIf, q.GetName(), false, false, false) + if (err != nil) { + return nil, err + } + return &empty.Empty{}, nil } \ No newline at end of file diff --git a/ui/src/app/App.tsx b/ui/src/app/App.tsx index 9c591870ac..9220b36833 100644 --- a/ui/src/app/App.tsx +++ b/ui/src/app/App.tsx @@ -8,6 +8,7 @@ import {Rollout} from './components/rollout/rollout'; import {createBrowserHistory} from 'history'; import {ThemeProvider} from './shared/context/theme'; import {ThemeDiv} from './components/theme-div/theme-div'; +import {APIProvider} from './shared/context/api'; const bases = document.getElementsByTagName('base'); const base = bases.length > 0 ? bases[0].getAttribute('href') || '/' : '/'; @@ -28,16 +29,18 @@ const Page = (props: {path: string; component: React.ReactNode; exact?: boolean} const App = () => ( - - - + + + + - } /> - } /> + } /> + } /> - - - + + + + ); diff --git a/ui/src/app/components/info-item/info-item.scss b/ui/src/app/components/info-item/info-item.scss index 34b0e35c67..fefd86e324 100644 --- a/ui/src/app/components/info-item/info-item.scss +++ b/ui/src/app/components/info-item/info-item.scss @@ -4,8 +4,9 @@ background-color: $argo-color-gray-4; border-radius: 3px; border: 1px solid $argo-color-gray-5; - padding: 3px 5px; + padding: 5px 7px; margin-left: auto; + margin-right: 5px; color: $argo-color-gray-8; display: flex; align-items: center; @@ -19,7 +20,7 @@ &--row { display: flex; align-items: center; - margin: 0.25em 0; + margin: 0.5em 0; label { margin-right: auto; padding-right: 5px; diff --git a/ui/src/app/components/info-item/info-item.tsx b/ui/src/app/components/info-item/info-item.tsx index b7493b3507..44cb2d16f3 100644 --- a/ui/src/app/components/info-item/info-item.tsx +++ b/ui/src/app/components/info-item/info-item.tsx @@ -30,8 +30,8 @@ export const InfoItemRow = (props: {label: string; content: InfoItemProps | Info
{props.label && }
- {content.map((c) => ( - + {content.map((c, i) => ( + ))}
diff --git a/ui/src/app/components/menu/menu.scss b/ui/src/app/components/menu/menu.scss new file mode 100644 index 0000000000..ade7c63048 --- /dev/null +++ b/ui/src/app/components/menu/menu.scss @@ -0,0 +1,31 @@ +@import '../../shared/styles/colors.scss'; + +.menu { + position: absolute; + padding: 5px 10px; + border-radius: 3px; + top: 100%; + z-index: 2; + background-color: white; + color: $argo-color-gray-7; + border: 1px solid $argo-color-gray-4; + box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.05); + width: 150px; + + &__item { + width: 100%; + padding: 0.5em 0; + cursor: pointer; + + &__label { + display: inline-block; + margin-left: 10px; + } + } + + &--dark { + border: 1px solid $silver-lining; + background-color: $slate; + color: white; + } +} diff --git a/ui/src/app/components/menu/menu.tsx b/ui/src/app/components/menu/menu.tsx new file mode 100644 index 0000000000..ff9c4f9b7e --- /dev/null +++ b/ui/src/app/components/menu/menu.tsx @@ -0,0 +1,38 @@ +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import * as React from 'react'; +import {ActionButtonProps} from '../action-button/action-button'; +import {ThemeDiv} from '../theme-div/theme-div'; + +import './menu.scss'; + +export const Menu = (props: {children: React.ReactNode; items: ActionButtonProps[]}) => { + const [menuVisible, setMenuVisible] = React.useState(false); + const ref = React.useRef(null); + React.useEffect(() => { + document.addEventListener('click', (e) => { + if (ref.current && !ref.current.contains(e.target)) { + setMenuVisible(false); + } + }); + }); + return ( +
+ +
setMenuVisible(true)}> + {props.children} +
+
+ ); +}; diff --git a/ui/src/app/components/status-icon/pod-icon.scss b/ui/src/app/components/pods/pods.scss similarity index 63% rename from ui/src/app/components/status-icon/pod-icon.scss rename to ui/src/app/components/pods/pods.scss index 09c5d5af89..275319a6c0 100644 --- a/ui/src/app/components/status-icon/pod-icon.scss +++ b/ui/src/app/components/pods/pods.scss @@ -1,10 +1,44 @@ @import '../../shared/styles/colors.scss'; +$POD_SIZE: 30px; + +.pods { + margin-bottom: 1em; + &__header { + font-size: 16px; + font-weight: 500; + display: flex; + align-items: center; + &__tags { + margin-left: auto; + display: flex; + } + } + &__container { + margin-top: 10px; + border: 1px solid $argo-color-gray-5; + display: flex; + align-items: center; + border-radius: 3px; + background-color: $argo-color-gray-3; + padding: 7px; + flex-wrap: wrap; + + .pod-icon { + margin: 3px; + } + &--dark { + border-color: $silver-lining; + background-color: $space; + } + } +} + .pod-icon { - $size: 25px; - width: $size; - height: $size; - line-height: $size; + width: $POD_SIZE; + height: $POD_SIZE; + line-height: $POD_SIZE; + font-size: 18px; text-align: center; border: 1px solid $silver-lining; background-color: $fog; diff --git a/ui/src/app/components/pods/pods.tsx b/ui/src/app/components/pods/pods.tsx new file mode 100644 index 0000000000..ad68b19cdf --- /dev/null +++ b/ui/src/app/components/pods/pods.tsx @@ -0,0 +1,96 @@ +import {faQuestionCircle} from '@fortawesome/free-regular-svg-icons'; +import {faCheck, faCircleNotch, faClipboard, faExclamationTriangle, faTimes} from '@fortawesome/free-solid-svg-icons'; +import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; +import * as React from 'react'; +import {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo} from '../../../models/rollout/generated'; +import {Pod} from '../../../models/rollout/rollout'; +import {IconForTag, ParseTagsFromReplicaSet} from '../../shared/utils/utils'; +import {InfoItem} from '../info-item/info-item'; +import {Menu} from '../menu/menu'; +import {ThemeDiv} from '../theme-div/theme-div'; +import {Tooltip} from '../tooltip/tooltip'; + +import './pods.scss'; + +export const PodIcon = (props: {status: string}) => { + const {status} = props; + let icon, className; + let spin = false; + if (status.startsWith('Init:')) { + icon = faCircleNotch; + spin = true; + } + if (status.startsWith('Signal:') || status.startsWith('ExitCode:')) { + icon = faTimes; + } + if (status.endsWith('Error') || status.startsWith('Err')) { + icon = faExclamationTriangle; + } + + switch (status) { + case 'Pending': + case 'Terminating': + case 'ContainerCreating': + icon = faCircleNotch; + className = 'pending'; + spin = true; + break; + case 'Running': + case 'Completed': + icon = faCheck; + className = 'success'; + break; + case 'Failed': + case 'InvalidImageName': + case 'CrashLoopBackOff': + className = 'failure'; + icon = faTimes; + break; + case 'ImagePullBackOff': + case 'RegistryUnavailable': + className = 'warning'; + icon = faExclamationTriangle; + break; + default: + className = 'unknown'; + icon = faQuestionCircle; + } + + return ( + + + + ); +}; + +export const ReplicaSet = (props: {rs: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo}) => { + const rsName = props.rs.objectMeta.name; + const tags = ParseTagsFromReplicaSet(props.rs); + return ( + + {rsName && ( + + {rsName} +
+ {tags.map((t) => ( + + ))} +
+
+ )} + + {(props.rs.pods || []).map((pod, i) => ( + + ))} + +
+ ); +}; + +export const PodWidget = (props: {pod: Pod}) => ( + navigator.clipboard.writeText(props.pod.objectMeta?.name), icon: faClipboard}]}> + + + + +); diff --git a/ui/src/app/components/rollout-actions/rollout-actions.tsx b/ui/src/app/components/rollout-actions/rollout-actions.tsx index 650cb9caa5..7092487831 100644 --- a/ui/src/app/components/rollout-actions/rollout-actions.tsx +++ b/ui/src/app/components/rollout-actions/rollout-actions.tsx @@ -1,46 +1,82 @@ -import {faPlayCircle} from '@fortawesome/free-regular-svg-icons'; +import {faPlayCircle, IconDefinition} from '@fortawesome/free-regular-svg-icons'; import {faArrowCircleUp, faExclamationCircle, faRedoAlt, faSync} from '@fortawesome/free-solid-svg-icons'; import * as React from 'react'; -import {RolloutServiceApi} from '../../../models/rollout/generated'; +import {RolloutAPIContext} from '../../shared/context/api'; import {ActionButton} from '../action-button/action-button'; -export const Actions = { - Restart: { - label: 'RESTART', - icon: faSync, - action: (api: RolloutServiceApi, rolloutName: string, cb?: Function) => { - api.restartRollout(rolloutName); - if (cb) { - cb(); - } - }, - }, - Resume: { - label: 'RESUME', - icon: faPlayCircle, - action: (): any => null, - }, - Retry: { - label: 'RETRY', - icon: faRedoAlt, - action: (): any => null, - }, - Abort: { - label: 'ABORT', - icon: faExclamationCircle, - action: (): any => null, - }, - PromoteFull: { - label: 'PROMOTE-FULL', - icon: faArrowCircleUp, - action: (): any => null, - }, +export enum RolloutAction { + Restart = 'Restart', + Resume = 'Resume', + Retry = 'Retry', + Abort = 'Abort', + PromoteFull = 'PromoteFull', +} + +interface ActionProps { + label: string; + icon: IconDefinition; + action: Function; +} + +export const RolloutActionButton = (props: {action: RolloutAction; name: string; callback?: Function; indicateLoading: boolean}) => { + const api = React.useContext(RolloutAPIContext); + + const actionMap = new Map([ + [ + RolloutAction.Restart, + { + label: 'RESTART', + icon: faSync, + action: api.restartRollout, + }, + ], + [RolloutAction.Resume, {label: 'RESUME', icon: faPlayCircle, action: (): any => null}], + [ + RolloutAction.Retry, + { + label: 'RETRY', + icon: faRedoAlt, + action: (): any => null, + }, + ], + [ + RolloutAction.Abort, + { + label: 'ABORT', + icon: faExclamationCircle, + action: (): any => null, + }, + ], + [ + RolloutAction.PromoteFull, + { + label: 'PROMOTE-FULL', + icon: faArrowCircleUp, + action: api.promoteRollout, + }, + ], + ]); + + const ap = actionMap.get(props.action); + + return ( + { + ap.action(props.name); + if (props.callback) { + props.callback(); + } + }} + indicateLoading={props.indicateLoading} + /> + ); }; -export const RolloutActions = () => ( +export const RolloutActions = (props: {name: string}) => (
- {Object.values(Actions).map((action) => ( - + {Object.values(RolloutAction).map((action) => ( + ))}
); diff --git a/ui/src/app/components/rollout/rollout.scss b/ui/src/app/components/rollout/rollout.scss index 7006a8a0eb..1c40039614 100644 --- a/ui/src/app/components/rollout/rollout.scss +++ b/ui/src/app/components/rollout/rollout.scss @@ -5,8 +5,16 @@ width: 450px; border: 1px solid $argo-color-gray-4; border-radius: 3px; - padding: 10px; + padding: 17px; background-color: white; + margin-right: 10px; + height: max-content; + + &__title { + font-size: 18px; + font-weight: 600; + margin-bottom: 0.5em; + } &--dark { background-color: $space; @@ -16,8 +24,10 @@ &__header { color: $argo-color-gray-8; + width: 100%; font-size: 22px; margin-bottom: 1em; + flex-shrink: 0; &--dark { color: $shine; } @@ -42,6 +52,8 @@ &__body { padding: 0 20px; color: $argo-color-gray-8; + display: flex; + flex-wrap: wrap; h3 { margin-bottom: 0px; diff --git a/ui/src/app/components/rollout/rollout.tsx b/ui/src/app/components/rollout/rollout.tsx index fe39c8985e..1a9401885d 100644 --- a/ui/src/app/components/rollout/rollout.tsx +++ b/ui/src/app/components/rollout/rollout.tsx @@ -9,20 +9,15 @@ import {ThemeDiv} from '../theme-div/theme-div'; import {useWatchRollout} from '../../shared/services/rollout'; import {InfoItemRow} from '../info-item/info-item'; import {RolloutInfo} from '../../../models/rollout/rollout'; -import {faBalanceScale, faBalanceScaleRight, faDove, faPalette, faRunning, faSearch, faShoePrints, faThumbsUp} from '@fortawesome/free-solid-svg-icons'; +import {faBalanceScale, faBalanceScaleRight, faDove, faPalette, faShoePrints} from '@fortawesome/free-solid-svg-icons'; +import {ReplicaSet} from '../pods/pods'; +import {IconForTag, ImageTag} from '../../shared/utils/utils'; interface ImageInfo { image: string; tags: ImageTag[]; } -enum ImageTag { - Canary = 'canary', - Stable = 'stable', - Active = 'active', - Preview = 'preview', -} - enum Strategy { Canary = 'Canary', BlueGreen = 'BlueGreen', @@ -69,13 +64,15 @@ export const Rollout = () => { {name} / Argo Rollouts - + {name} +
Summary
+ {rollout.strategy === Strategy.Canary && ( @@ -89,6 +86,14 @@ export const Rollout = () => {

IMAGES

+ {rollout.replicaSets && rollout.replicaSets.length > 0 && ( + +
Replica Sets
+ {(rollout.replicaSets || []).map((rs) => ( +
{(rs.pods || []).length > 0 && }
+ ))} +
+ )}
); @@ -103,27 +108,14 @@ const iconForStrategy = (s: Strategy) => { } }; -const iconForTag = (t: ImageTag) => { - switch (t) { - case ImageTag.Canary: - return faDove; - case ImageTag.Stable: - return faThumbsUp; - case ImageTag.Preview: - return faSearch; - case ImageTag.Active: - return faRunning; - } -}; - const ImageItems = (props: {images: ImageInfo[]}) => { return (
{props.images.map((img) => { const imageItems = img.tags.map((t) => { - return {content: t, icon: iconForTag(t)}; + return {content: t, icon: IconForTag(t)}; }); - return ; + return ; })}
); diff --git a/ui/src/app/components/rollouts-list/rollouts-list.scss b/ui/src/app/components/rollouts-list/rollouts-list.scss index d44156a230..a726f72556 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.scss +++ b/ui/src/app/components/rollouts-list/rollouts-list.scss @@ -1,34 +1,21 @@ @import '../../shared/styles/colors.scss'; -.pods { - margin-top: 10px; - border: 1px solid $argo-color-gray-5; - display: flex; - align-items: center; - border-radius: 3px; - background-color: $argo-color-gray-3; - padding: 7px; - .pod-icon { - margin: 3px; - } - &--dark { - border-color: $silver-lining; - background-color: $space; - } -} +$WIDGET_WIDTH: 400px; .rollouts-list { display: flex; padding: 20px; &__widget { border-radius: 5px; - padding: 10px; + padding: 17px; border: 1px solid $argo-color-gray-4; font-size: 14px; margin-right: 20px; box-shadow: 1px 2px 2px rgba(0, 0, 0, 0.05); color: $argo-color-gray-7; background-color: white; + width: $WIDGET_WIDTH; + height: max-content; &--dark { border-color: $silver-lining; @@ -53,6 +40,15 @@ } } + &__body { + margin-bottom: 1em; + padding-bottom: 0.75em; + border-bottom: 1px solid $argo-color-gray-4; + &--dark { + border-bottom: 1px solid $silver-lining; + } + } + header { color: $argo-color-gray-8; display: flex; @@ -60,23 +56,18 @@ font-weight: 500; font-size: 18px; border-bottom: 1px solid $argo-color-gray-4; - padding-bottom: 0.5em; - margin-bottom: 0.5em; + padding-bottom: 1em; + margin-bottom: 1em; } &--dark header { color: $shine; border-bottom: 1px solid $silver-lining; } - - &__body { - width: 300px; - } - &__actions { display: flex; align-items: center; - margin-top: 1em; + margin-top: 1.5em; } } } diff --git a/ui/src/app/components/rollouts-list/rollouts-list.tsx b/ui/src/app/components/rollouts-list/rollouts-list.tsx index 9176d4a044..b2ffa05ff2 100644 --- a/ui/src/app/components/rollouts-list/rollouts-list.tsx +++ b/ui/src/app/components/rollouts-list/rollouts-list.tsx @@ -1,20 +1,18 @@ -import {faCircleNotch, faClock, faDove, faHistory, faPalette, faPlayCircle, faRedoAlt} from '@fortawesome/free-solid-svg-icons'; +import {faCircleNotch, faClock, faDove, faHistory, faPalette, faRedoAlt} from '@fortawesome/free-solid-svg-icons'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; import * as React from 'react'; import {Link} from 'react-router-dom'; -import {RolloutServiceApi} from '../../../models/rollout/generated'; -import {Pod, RolloutInfo} from '../../../models/rollout/rollout'; +import {RolloutInfo} from '../../../models/rollout/rollout'; import {useWatchRollout, useWatchRollouts} from '../../shared/services/rollout'; import {formatTimestamp} from '../../shared/utils/utils'; -import {ActionButton} from '../action-button/action-button'; import {InfoItemRow} from '../info-item/info-item'; -import {PodIcon, RolloutStatus, StatusIcon} from '../status-icon/status-icon'; -import {Tooltip} from '../tooltip/tooltip'; +import {RolloutStatus, StatusIcon} from '../status-icon/status-icon'; import {WaitFor} from '../wait-for/wait-for'; import {Key, useKeyListener, useNav} from '@rbreeze/react-keypress'; import './rollouts-list.scss'; import {ThemeDiv} from '../theme-div/theme-div'; -import {Actions} from '../rollout-actions/rollout-actions'; +import {RolloutAction, RolloutActionButton} from '../rollout-actions/rollout-actions'; +import {ReplicaSet} from '../pods/pods'; export const RolloutsList = () => { const [rollouts, loading] = useWatchRollouts(); @@ -32,7 +30,7 @@ export const RolloutsList = () => { return (
- {(rollouts || []).map((rollout, i) => ( + {(rollouts.sort((a, b) => (a.objectMeta.name < b.objectMeta.name ? -1 : 1)) || []).map((rollout, i) => ( ))} @@ -41,7 +39,6 @@ export const RolloutsList = () => { }; export const RolloutWidget = (props: {rollout: RolloutInfo; selected?: boolean}) => { - const api = new RolloutServiceApi(); const [watching, subscribe] = React.useState(false); let rollout = props.rollout; const ACTION_WATCH_TIMEOUT = 20000; @@ -51,54 +48,34 @@ export const RolloutWidget = (props: {rollout: RolloutInfo; selected?: boolean}) }, ACTION_WATCH_TIMEOUT); }, [watching]); useWatchRollout(props.rollout?.objectMeta?.name, watching, ACTION_WATCH_TIMEOUT, (r: RolloutInfo) => (rollout = r)); + return ( subscribe(true)} /> -
+ - + -
+
{rollout.replicaSets?.map( (rsInfo) => rsInfo.pods && rsInfo.pods.length > 0 && (
- +
) )}
- Actions.Restart.action(api, rollout.objectMeta?.name || '', () => subscribe(true))} - icon={Actions.Restart.icon} - /> - null} icon={faPlayCircle} /> + subscribe(true)} indicateLoading /> + subscribe(true)} indicateLoading />
); }; -const Pods = (props: {pods: Pod[]}) => { - return ( - - {props.pods.map((pod, i) => ( - - ))} - - ); -}; - -const PodWidget = (props: {pod: Pod}) => ( - - - -); - const WidgetHeader = (props: {rollout: RolloutInfo; refresh: () => void}) => { const {rollout} = props; const [loading, setLoading] = React.useState(false); diff --git a/ui/src/app/components/status-icon/status-icon.scss b/ui/src/app/components/status-icon/status-icon.scss index 9eb2658a59..c37c1c1f7c 100644 --- a/ui/src/app/components/status-icon/status-icon.scss +++ b/ui/src/app/components/status-icon/status-icon.scss @@ -11,7 +11,7 @@ &--degraded { color: $coral; } - &--degraded { + &--paused { color: $peach; } } diff --git a/ui/src/app/components/status-icon/status-icon.tsx b/ui/src/app/components/status-icon/status-icon.tsx index f1c4ab08bb..2ba1b9b25c 100644 --- a/ui/src/app/components/status-icon/status-icon.tsx +++ b/ui/src/app/components/status-icon/status-icon.tsx @@ -1,12 +1,10 @@ import * as React from 'react'; import {FontAwesomeIcon} from '@fortawesome/react-fontawesome'; -import {faCheck, faCircleNotch, faExclamationTriangle, faTimes} from '@fortawesome/free-solid-svg-icons'; +import {faCircleNotch} from '@fortawesome/free-solid-svg-icons'; import {faCheckCircle, faPauseCircle, faQuestionCircle, faTimesCircle} from '@fortawesome/free-regular-svg-icons'; import './status-icon.scss'; -import './pod-icon.scss'; -import {ThemeDiv} from '../theme-div/theme-div'; export enum RolloutStatus { Progressing = 'Progressing', @@ -48,54 +46,3 @@ export const StatusIcon = (props: {status: RolloutStatus}): JSX.Element => { } return ; }; - -export const PodIcon = (props: {status: string}) => { - const {status} = props; - let icon, className; - let spin = false; - if (status.startsWith('Init:')) { - icon = faCircleNotch; - spin = true; - } - if (status.startsWith('Signal:') || status.startsWith('ExitCode:')) { - icon = faTimes; - } - if (status.endsWith('Error') || status.startsWith('Err')) { - icon = faExclamationTriangle; - } - - switch (status) { - case 'Pending': - case 'Terminating': - case 'ContainerCreating': - icon = faCircleNotch; - className = 'pending'; - spin = true; - break; - case 'Running': - case 'Completed': - icon = faCheck; - className = 'success'; - break; - case 'Failed': - case 'InvalidImageName': - case 'CrashLoopBackOff': - className = 'failure'; - icon = faTimes; - break; - case 'ImagePullBackOff': - case 'RegistryUnavailable': - className = 'warning'; - icon = faExclamationTriangle; - break; - default: - className = 'unknown'; - icon = faQuestionCircle; - } - - return ( - - - - ); -}; diff --git a/ui/src/app/shared/context/api.tsx b/ui/src/app/shared/context/api.tsx new file mode 100644 index 0000000000..ba91b31129 --- /dev/null +++ b/ui/src/app/shared/context/api.tsx @@ -0,0 +1,9 @@ +import * as React from 'react'; +import {RolloutServiceApi} from '../../../models/rollout/generated'; + +export const RolloutAPI = new RolloutServiceApi(); +export const RolloutAPIContext = React.createContext(RolloutAPI); + +export const APIProvider = (props: {children: React.ReactNode}) => { + return {props.children}; +}; diff --git a/ui/src/app/shared/utils/utils.tsx b/ui/src/app/shared/utils/utils.tsx index 44291ab7e6..b6f8342cb1 100644 --- a/ui/src/app/shared/utils/utils.tsx +++ b/ui/src/app/shared/utils/utils.tsx @@ -1,5 +1,7 @@ import * as React from 'react'; import * as moment from 'moment'; +import {faDove, faRunning, faSearch, faThumbsUp} from '@fortawesome/free-solid-svg-icons'; +import {GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo} from '../../../models/rollout/generated'; export function useServerData(getData: () => Promise) { const [data, setData] = React.useState({} as T); @@ -21,3 +23,40 @@ export function formatTimestamp(ts: string): string { } return m.format('MMM D YYYY [at] hh:mm:ss'); } + +export enum ImageTag { + Canary = 'canary', + Stable = 'stable', + Active = 'active', + Preview = 'preview', +} + +export const IconForTag = (t: ImageTag) => { + switch (t) { + case ImageTag.Canary: + return faDove; + case ImageTag.Stable: + return faThumbsUp; + case ImageTag.Preview: + return faSearch; + case ImageTag.Active: + return faRunning; + } +}; + +export const ParseTagsFromReplicaSet = (rs: GithubComArgoprojArgoRolloutsPkgApisRolloutsV1alpha1ReplicaSetInfo): ImageTag[] => { + const tags = [] as ImageTag[]; + if (rs.canary) { + tags.push(ImageTag.Canary); + } + if (rs.stable) { + tags.push(ImageTag.Stable); + } + if (rs.active) { + tags.push(ImageTag.Active); + } + if (rs.preview) { + tags.push(ImageTag.Preview); + } + return tags; +}; diff --git a/ui/src/app/shared/utils/watch.ts b/ui/src/app/shared/utils/watch.ts index 17d14cf934..4c550de889 100644 --- a/ui/src/app/shared/utils/watch.ts +++ b/ui/src/app/shared/utils/watch.ts @@ -1,22 +1,35 @@ import * as React from 'react'; -import {fromEvent, interval, Observable, Observer, Subscription} from 'rxjs'; -import {bufferTime, debounceTime, delay, map, mergeMap, repeat, retryWhen, scan, takeUntil, timeout} from 'rxjs/operators'; - -function fromEventSource(url: string): Observable { - return new Observable((subscriber) => { - let sse = new EventSource(url); - sse.onmessage = (e) => subscriber.next(e); - sse.onerror = (e) => subscriber.error(e); - return () => { - if (sse.readyState === 1) { - sse.close(); - sse = null; +import {fromEvent, Observable, Observer, Subscription} from 'rxjs'; +import {bufferTime, debounceTime, delay, map, mergeMap, repeat, retryWhen, scan, timeout} from 'rxjs/operators'; + +enum ReadyState { + CONNECTING = 0, + OPEN = 1, + CLOSED = 2, + DONE = 4, +} + +function fromEventSource(url: string): Observable { + return Observable.create((observer: Observer) => { + let eventSource = new EventSource(url); + eventSource.onmessage = (msg) => observer.next(msg.data); + eventSource.onerror = (e) => () => { + observer.error(e); + }; + + const interval = setInterval(() => { + if (eventSource && eventSource.readyState === ReadyState.CLOSED) { + observer.error('connection got closed unexpectedly'); } + }, 500); + return () => { + clearInterval(interval); + eventSource.close(); + eventSource = null; }; }); } -const INITIAL_LOAD_TIME = 500; const BUFFER_TIME = 500; export function handlePageVisibility(src: () => Observable): Observable { @@ -68,7 +81,7 @@ export function useWatchList(url: string, findItem: (it const [error, setError] = React.useState(false); const [loading, setLoading] = React.useState(true); React.useEffect(() => { - const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as E)); + const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res).result as E)); let watch = stream.pipe( repeat(), retryWhen((errors) => errors.pipe(delay(500))), @@ -95,42 +108,22 @@ export function useWatchList(url: string, findItem: (it break; } return items; - }, init || []) - ); - - const subscribeList = (list: T[]) => { - setItems([...list]); - }; - - const initialLoad = watch.pipe( - takeUntil(interval(INITIAL_LOAD_TIME)), - bufferTime(INITIAL_LOAD_TIME), - mergeMap((r) => r) + }, init || []), + bufferTime(BUFFER_TIME), + mergeMap((l) => l) ); - initialLoad.subscribe( - subscribeList, - () => { - setLoading(false); - setError(true); - }, - () => { - setLoading(false); - } + const sub = handlePageVisibility(() => watch).subscribe( + (l) => setItems([...l]), + () => setError(true) ); - let liveStream = handlePageVisibility(() => - watch.pipe( - bufferTime(BUFFER_TIME), - mergeMap((r) => r) - ) - ); - const sub = liveStream.subscribe(subscribeList); + const loader = setTimeout(() => setLoading(false), BUFFER_TIME + 10); return () => { - watch = null; - liveStream = null; sub.unsubscribe(); + watch = null; + clearInterval(loader); }; }, [init, url, findItem, getItem]); return [items, loading, error]; @@ -142,7 +135,7 @@ export function useWatch(url: string, subscribe: boolean, timeoutAfter?: numb if (!subscribe) { return; } - const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res.data).result as T)); + const stream = fromEventSource(url).pipe(map((res) => JSON.parse(res).result as T)); let watch = stream.pipe( repeat(), retryWhen((errors) => errors.pipe(delay(500))), diff --git a/ui/src/models/rollout/generated/api.ts b/ui/src/models/rollout/generated/api.ts index 54b082a49b..bdc37291c8 100644 --- a/ui/src/models/rollout/generated/api.ts +++ b/ui/src/models/rollout/generated/api.ts @@ -5121,6 +5121,34 @@ export const RolloutServiceApiFetchParamCreator = function (configuration?: Conf options: localVarRequestOptions, }; }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + promoteRollout(name: string, options: any = {}): FetchArgs { + // verify required parameter 'name' is not null or undefined + if (name === null || name === undefined) { + throw new RequiredError('name','Required parameter name was null or undefined when calling promoteRollout.'); + } + const localVarPath = `/api/v1/rollout/promote/{name}` + .replace(`{${"name"}}`, encodeURIComponent(String(name))); + const localVarUrlObj = url.parse(localVarPath, true); + const localVarRequestOptions = Object.assign({ method: 'GET' }, options); + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + localVarUrlObj.query = Object.assign({}, localVarUrlObj.query, localVarQueryParameter, options.query); + // fix override query string Detail: https://stackoverflow.com/a/7517673/1077943 + delete localVarUrlObj.search; + localVarRequestOptions.headers = Object.assign({}, localVarHeaderParameter, options.headers); + + return { + url: url.format(localVarUrlObj), + options: localVarRequestOptions, + }; + }, /** * * @param {string} name @@ -5261,6 +5289,24 @@ export const RolloutServiceApiFp = function(configuration?: Configuration) { }); }; }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + promoteRollout(name: string, options?: any): (fetch?: FetchAPI, basePath?: string) => Promise { + const localVarFetchArgs = RolloutServiceApiFetchParamCreator(configuration).promoteRollout(name, options); + return (fetch: FetchAPI = portableFetch, basePath: string = BASE_PATH) => { + return fetch(basePath + localVarFetchArgs.url, localVarFetchArgs.options).then((response) => { + if (response.status >= 200 && response.status < 300) { + return response.json(); + } else { + throw response; + } + }); + }; + }, /** * * @param {string} name @@ -5349,6 +5395,15 @@ export const RolloutServiceApiFactory = function (configuration?: Configuration, listRollouts(options?: any) { return RolloutServiceApiFp(configuration).listRollouts(options)(fetch, basePath); }, + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + promoteRollout(name: string, options?: any) { + return RolloutServiceApiFp(configuration).promoteRollout(name, options)(fetch, basePath); + }, /** * * @param {string} name @@ -5417,6 +5472,17 @@ export class RolloutServiceApi extends BaseAPI { return RolloutServiceApiFp(this.configuration).listRollouts(options)(this.fetch, this.basePath); } + /** + * + * @param {string} name + * @param {*} [options] Override http request option. + * @throws {RequiredError} + * @memberof RolloutServiceApi + */ + public promoteRollout(name: string, options?: any) { + return RolloutServiceApiFp(this.configuration).promoteRollout(name, options)(this.fetch, this.basePath); + } + /** * * @param {string} name diff --git a/ui/src/models/rollout/generated/api_test.spec.ts b/ui/src/models/rollout/generated/api_test.spec.ts index 8856efb9bc..1f257cc06a 100644 --- a/ui/src/models/rollout/generated/api_test.spec.ts +++ b/ui/src/models/rollout/generated/api_test.spec.ts @@ -31,6 +31,10 @@ describe("RolloutServiceApi", () => { test("listRollouts", () => { return expect(instance.listRollouts({})).resolves.toBe(null) }) + test("promoteRollout", () => { + const name: string = "name_example" + return expect(instance.promoteRollout(name, {})).resolves.toBe(null) + }) test("restartRollout", () => { const name: string = "name_example" return expect(instance.restartRollout(name, {})).resolves.toBe(null) From 45950d3fc373b94be477880e9bec41c00ba2f171 Mon Sep 17 00:00:00 2001 From: Remington Breeze Date: Wed, 10 Mar 2021 17:49:59 -0800 Subject: [PATCH 010/112] Add kubectl plugin dashboard command. Add ability to set image in UI. Smaller UI tweaks and additions Signed-off-by: Remington Breeze --- .github/workflows/go.yml | 65 +- Dockerfile | 4 +- Makefile | 2 +- cmd/rollouts-server/main.go | 12 +- go.mod | 2 +- metricproviders/kayenta/kayenta.go | 2 +- pkg/apiclient/rollout/rollout.pb.go | 487 +- pkg/apiclient/rollout/rollout.pb.gw.go | 262 + pkg/apiclient/rollout/rollout.proto | 15 + pkg/apiclient/rollout/rollout.swagger.json | 66 + pkg/kubectl-argo-rollouts/cmd/cmd.go | 2 + .../cmd/dashboard/dashboard.go | 38 + .../info/rollout_info.go | 1 + server/server.go | 56 +- server/static/assets/fonts/fa-brands-400.eot | Bin 0 -> 136822 bytes server/static/assets/fonts/fa-brands-400.svg | 3717 ++++++++++++ server/static/assets/fonts/fa-brands-400.ttf | Bin 0 -> 136516 bytes server/static/assets/fonts/fa-brands-400.woff | Bin 0 -> 92136 bytes .../static/assets/fonts/fa-brands-400.woff2 | Bin 0 -> 78472 bytes server/static/assets/fonts/fa-regular-400.eot | Bin 0 -> 34350 bytes server/static/assets/fonts/fa-regular-400.svg | 801 +++ server/static/assets/fonts/fa-regular-400.ttf | Bin 0 -> 34052 bytes .../static/assets/fonts/fa-regular-400.woff | Bin 0 -> 16776 bytes .../static/assets/fonts/fa-regular-400.woff2 | Bin 0 -> 13588 bytes server/static/assets/fonts/fa-solid-900.eot | Bin 0 -> 204814 bytes server/static/assets/fonts/fa-solid-900.svg | 5028 +++++++++++++++++ server/static/assets/fonts/fa-solid-900.ttf | Bin 0 -> 204528 bytes server/static/assets/fonts/fa-solid-900.woff | Bin 0 -> 104280 bytes server/static/assets/fonts/fa-solid-900.woff2 | Bin 0 -> 80252 bytes .../assets/images/argo-icon-color-square.png | Bin 0 -> 102248 bytes .../assets/images/argo-icon-white-square.svg | 14 + .../static/assets/images/argo-icon-white.svg | 1 + server/static/index.html | 1 + server/static/main.725e5725b4c340fcb136.js | 341 ++ .../static/main.725e5725b4c340fcb136.js.map | 1 + .../action-button/action-button.scss | 21 + .../action-button/action-button.tsx | 7 +- .../app/components/info-item/info-item.scss | 13 + ui/src/app/components/info-item/info-item.tsx | 10 +- ui/src/app/components/input/input.scss | 31 + ui/src/app/components/input/input.tsx | 38 + ui/src/app/components/menu/menu.tsx | 17 +- ui/src/app/components/pods/pods.tsx | 8 +- .../rollout-actions/rollout-actions.tsx | 2 +- ui/src/app/components/rollout/rollout.scss | 16 +- ui/src/app/components/rollout/rollout.tsx | 165 +- .../rollouts-list/rollouts-list.scss | 4 + ui/src/app/components/theme-div/theme-div.tsx | 2 + ui/src/app/shared/services/rollout.ts | 21 +- ui/src/app/shared/utils/utils.tsx | 7 +- ui/src/app/shared/utils/watch.ts | 15 +- ui/src/models/rollout/generated/api.ts | 159 + .../models/rollout/generated/api_test.spec.ts | 11 + 53 files changed, 11329 insertions(+), 136 deletions(-) create mode 100644 pkg/kubectl-argo-rollouts/cmd/dashboard/dashboard.go create mode 100644 server/static/assets/fonts/fa-brands-400.eot create mode 100644 server/static/assets/fonts/fa-brands-400.svg create mode 100644 server/static/assets/fonts/fa-brands-400.ttf create mode 100644 server/static/assets/fonts/fa-brands-400.woff create mode 100644 server/static/assets/fonts/fa-brands-400.woff2 create mode 100644 server/static/assets/fonts/fa-regular-400.eot create mode 100644 server/static/assets/fonts/fa-regular-400.svg create mode 100644 server/static/assets/fonts/fa-regular-400.ttf create mode 100644 server/static/assets/fonts/fa-regular-400.woff create mode 100644 server/static/assets/fonts/fa-regular-400.woff2 create mode 100644 server/static/assets/fonts/fa-solid-900.eot create mode 100644 server/static/assets/fonts/fa-solid-900.svg create mode 100644 server/static/assets/fonts/fa-solid-900.ttf create mode 100644 server/static/assets/fonts/fa-solid-900.woff create mode 100644 server/static/assets/fonts/fa-solid-900.woff2 create mode 100644 server/static/assets/images/argo-icon-color-square.png create mode 100644 server/static/assets/images/argo-icon-white-square.svg create mode 100644 server/static/assets/images/argo-icon-white.svg create mode 100644 server/static/index.html create mode 100644 server/static/main.725e5725b4c340fcb136.js create mode 100644 server/static/main.725e5725b4c340fcb136.js.map create mode 100644 ui/src/app/components/input/input.scss create mode 100644 ui/src/app/components/input/input.tsx diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 7766ef6698..bb8575fdca 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -2,11 +2,11 @@ name: Go on: push: branches: - - 'master' - - 'release-*' + - "master" + - "release-*" pull_request: branches: - - 'master' + - "master" jobs: lint-go: name: Lint Go code @@ -23,42 +23,41 @@ jobs: name: Build runs-on: ubuntu-latest steps: + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.16 + id: go - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.15 - id: go - - - name: Check out code into the Go module directory - uses: actions/checkout@v1 + - name: Check out code into the Go module directory + uses: actions/checkout@v1 - - name: Restore go build cache - uses: actions/cache@v2 - with: - path: ~/.cache/go-build - key: ${{ runner.os }}-go-build-v1-${{ github.run_id }} + - name: Restore go build cache + uses: actions/cache@v2 + with: + path: ~/.cache/go-build + key: ${{ runner.os }}-go-build-v1-${{ github.run_id }} - - name: Download all Go modules - run: | - go mod download + - name: Download all Go modules + run: | + go mod download - - name: Compile all packages - run: make controller plugin + - name: Compile all packages + run: make controller plugin - - name: Test - run: go test -failfast -covermode=count -coverprofile=coverage.out ./... + - name: Test + run: go test -failfast -covermode=count -coverprofile=coverage.out ./... - - name: Generate code coverage artifacts - uses: actions/upload-artifact@v2 - with: - name: code-coverage - path: coverage.out + - name: Generate code coverage artifacts + uses: actions/upload-artifact@v2 + with: + name: code-coverage + path: coverage.out - - name: Upload code coverage information to codecov.io - uses: codecov/codecov-action@v1 - with: - file: coverage.out + - name: Upload code coverage information to codecov.io + uses: codecov/codecov-action@v1 + with: + file: coverage.out codegen: name: Verify Codegen @@ -69,7 +68,7 @@ jobs: - name: Setup Golang uses: actions/setup-go@v1 with: - go-version: 1.15 + go-version: 1.16 - name: Download & vendor dependencies run: | # We need to vendor go modules for codegen yet diff --git a/Dockerfile b/Dockerfile index ec53d9fe23..ac86ac3dc8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ # Initial stage which pulls prepares build dependencies and CLI tooling we need for our final image # Also used as the image in CI jobs so needs all dependencies #################################################################################################### -FROM golang:1.15.8 as builder +FROM golang:1.16.1 as builder RUN apt-get update && apt-get install -y \ wget \ @@ -26,7 +26,7 @@ RUN cd ${GOPATH}/src/dummy && \ #################################################################################################### # Rollout Controller Build stage which performs the actual build of argo-rollouts binaries #################################################################################################### -FROM golang:1.15.8 as argo-rollouts-build +FROM golang:1.16.1 as argo-rollouts-build WORKDIR /go/src/github.com/argoproj/argo-rollouts diff --git a/Makefile b/Makefile index c72788a495..6069bd00ba 100644 --- a/Makefile +++ b/Makefile @@ -256,4 +256,4 @@ release-plugins: ./hack/build-release-plugins.sh .PHONY: release -release: release-precheck precheckin image release-plugins +release: release-precheck precheckin image release-plugins \ No newline at end of file diff --git a/cmd/rollouts-server/main.go b/cmd/rollouts-server/main.go index c9843f1e56..0b1ab8e243 100644 --- a/cmd/rollouts-server/main.go +++ b/cmd/rollouts-server/main.go @@ -6,6 +6,8 @@ import ( "os" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" + "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" @@ -29,7 +31,7 @@ func AddKubectlFlagsToCmd(cmd *cobra.Command) clientcmd.ClientConfig { return clientcmd.NewInteractiveDeferredLoadingClientConfig(loadingRules, &overrides, os.Stdin) } -func newCommand() *cobra.Command { +func NewCommand(o *options.ArgoRolloutsOptions) *cobra.Command { var ( listenPort int clientConfig clientcmd.ClientConfig @@ -56,12 +58,13 @@ func newCommand() *cobra.Command { Namespace: namespace, KubeClientset: kubeclientset, RolloutsClientset: rolloutclientset, + DynamicClientset: o.DynamicClientset(), } for { ctx := context.Background() ctx, cancel := context.WithCancel(ctx) argorollouts := server.NewServer(opts) - argorollouts.Run(ctx, listenPort) + argorollouts.Run(ctx, listenPort, false) cancel() } }, @@ -73,7 +76,10 @@ func newCommand() *cobra.Command { } func main() { - if err := newCommand().Execute(); err != nil { + streams := genericclioptions.IOStreams{In: os.Stdin, Out: os.Stdout, ErrOut: os.Stderr} + o := options.NewArgoRolloutsOptions(streams) + + if err := NewCommand(o).Execute(); err != nil { fmt.Println(err) os.Exit(1) } diff --git a/go.mod b/go.mod index 600a48c40c..451c3f4fa5 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/argoproj/argo-rollouts -go 1.15 +go 1.16 require ( github.com/antonmedv/expr v1.8.9 diff --git a/metricproviders/kayenta/kayenta.go b/metricproviders/kayenta/kayenta.go index 4926d66924..e15da1ed3d 100644 --- a/metricproviders/kayenta/kayenta.go +++ b/metricproviders/kayenta/kayenta.go @@ -209,7 +209,7 @@ func (p *Provider) Resume(run *v1alpha1.AnalysisRun, metric v1alpha1.Metric, mea if ok { score := int(result) measurement.Value = fmt.Sprintf("%v", score) - measurement.Phase = evaluateResult(score, metric.Provider.Kayenta.Threshold.Pass, metric.Provider.Kayenta.Threshold.Marginal) + measurement.Phase = evaluateResult(score, int(metric.Provider.Kayenta.Threshold.Pass), int(metric.Provider.Kayenta.Threshold.Marginal)) } else { if err == nil { err = errors.New("Missing Score") diff --git a/pkg/apiclient/rollout/rollout.pb.go b/pkg/apiclient/rollout/rollout.pb.go index e22faba7dc..bfb32ee9b8 100644 --- a/pkg/apiclient/rollout/rollout.pb.go +++ b/pkg/apiclient/rollout/rollout.pb.go @@ -76,6 +76,77 @@ func (m *RolloutQuery) GetName() string { return "" } +type SetImageQuery struct { + Rollout string `protobuf:"bytes,1,opt,name=rollout,proto3" json:"rollout,omitempty"` + Container string `protobuf:"bytes,2,opt,name=container,proto3" json:"container,omitempty"` + Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` + Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetImageQuery) Reset() { *m = SetImageQuery{} } +func (m *SetImageQuery) String() string { return proto.CompactTextString(m) } +func (*SetImageQuery) ProtoMessage() {} +func (*SetImageQuery) Descriptor() ([]byte, []int) { + return fileDescriptor_99101d942e8912a7, []int{1} +} +func (m *SetImageQuery) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SetImageQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_SetImageQuery.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *SetImageQuery) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetImageQuery.Merge(m, src) +} +func (m *SetImageQuery) XXX_Size() int { + return m.Size() +} +func (m *SetImageQuery) XXX_DiscardUnknown() { + xxx_messageInfo_SetImageQuery.DiscardUnknown(m) +} + +var xxx_messageInfo_SetImageQuery proto.InternalMessageInfo + +func (m *SetImageQuery) GetRollout() string { + if m != nil { + return m.Rollout + } + return "" +} + +func (m *SetImageQuery) GetContainer() string { + if m != nil { + return m.Container + } + return "" +} + +func (m *SetImageQuery) GetImage() string { + if m != nil { + return m.Image + } + return "" +} + +func (m *SetImageQuery) GetTag() string { + if m != nil { + return m.Tag + } + return "" +} + type RolloutWatchEvent struct { Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` RolloutInfo *v1alpha1.RolloutInfo `protobuf:"bytes,2,opt,name=rolloutInfo,proto3" json:"rolloutInfo,omitempty"` @@ -88,7 +159,7 @@ func (m *RolloutWatchEvent) Reset() { *m = RolloutWatchEvent{} } func (m *RolloutWatchEvent) String() string { return proto.CompactTextString(m) } func (*RolloutWatchEvent) ProtoMessage() {} func (*RolloutWatchEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_99101d942e8912a7, []int{1} + return fileDescriptor_99101d942e8912a7, []int{2} } func (m *RolloutWatchEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -142,7 +213,7 @@ func (m *NamespaceInfo) Reset() { *m = NamespaceInfo{} } func (m *NamespaceInfo) String() string { return proto.CompactTextString(m) } func (*NamespaceInfo) ProtoMessage() {} func (*NamespaceInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_99101d942e8912a7, []int{2} + return fileDescriptor_99101d942e8912a7, []int{3} } func (m *NamespaceInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -180,6 +251,7 @@ func (m *NamespaceInfo) GetNamespace() string { func init() { proto.RegisterType((*RolloutQuery)(nil), "rollout.RolloutQuery") + proto.RegisterType((*SetImageQuery)(nil), "rollout.SetImageQuery") proto.RegisterType((*RolloutWatchEvent)(nil), "rollout.RolloutWatchEvent") proto.RegisterType((*NamespaceInfo)(nil), "rollout.NamespaceInfo") } @@ -189,39 +261,47 @@ func init() { } var fileDescriptor_99101d942e8912a7 = []byte{ - // 509 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x41, 0x6b, 0x13, 0x41, - 0x14, 0x66, 0x8a, 0x54, 0x3a, 0x4d, 0x83, 0x7d, 0x62, 0x88, 0x31, 0x2c, 0x61, 0x15, 0xe9, 0xa5, - 0xb3, 0x4d, 0x3d, 0x78, 0x17, 0x42, 0x29, 0x14, 0xd1, 0x78, 0x10, 0xbd, 0xc8, 0x64, 0x7d, 0xdd, - 0xac, 0xd9, 0xdd, 0x19, 0x66, 0x27, 0x91, 0x20, 0x5e, 0xbc, 0x0a, 0x5e, 0xf4, 0xe0, 0x4f, 0xf2, - 0x28, 0x78, 0x17, 0x09, 0xfe, 0x10, 0x99, 0xd9, 0x99, 0x4d, 0x1a, 0x08, 0x7a, 0x08, 0x9e, 0xf6, - 0xcd, 0xdb, 0x37, 0xdf, 0xf7, 0xbd, 0xf7, 0x3e, 0x86, 0xde, 0x95, 0x93, 0x24, 0xe2, 0x32, 0x8d, - 0xb3, 0x14, 0x0b, 0x1d, 0x29, 0x91, 0x65, 0x62, 0x5a, 0x7f, 0x99, 0x54, 0x42, 0x0b, 0xb8, 0xee, - 0x8e, 0x9d, 0x6e, 0x22, 0x44, 0x92, 0xa1, 0xb9, 0x10, 0xf1, 0xa2, 0x10, 0x9a, 0xeb, 0x54, 0x14, - 0x65, 0x55, 0xd6, 0xb9, 0x48, 0x52, 0x3d, 0x9e, 0x8e, 0x58, 0x2c, 0xf2, 0x88, 0xab, 0x44, 0x48, - 0x25, 0xde, 0xd8, 0xe0, 0xd8, 0xdd, 0x2f, 0x23, 0xc7, 0x56, 0x46, 0x75, 0x66, 0xd6, 0xe7, 0x99, - 0x1c, 0xf3, 0x7e, 0x94, 0x60, 0x81, 0x8a, 0x6b, 0x7c, 0xed, 0xd0, 0xee, 0x38, 0x2e, 0x7b, 0x1a, - 0x4d, 0x2f, 0x23, 0xcc, 0xa5, 0x9e, 0x57, 0x3f, 0xc3, 0x90, 0x36, 0x86, 0x15, 0xc2, 0xd3, 0x29, - 0xaa, 0x39, 0x00, 0xbd, 0x56, 0xf0, 0x1c, 0xdb, 0xa4, 0x47, 0x8e, 0xf6, 0x86, 0x36, 0x0e, 0xbf, - 0x10, 0x7a, 0xe8, 0x8a, 0x9e, 0x73, 0x1d, 0x8f, 0x07, 0x33, 0x2c, 0xb4, 0xa9, 0xd4, 0x73, 0x59, - 0x57, 0x9a, 0x18, 0x26, 0x74, 0xdf, 0xe9, 0x39, 0x2f, 0x2e, 0x45, 0x7b, 0xa7, 0x47, 0x8e, 0xf6, - 0x4f, 0xcf, 0xd9, 0xb2, 0x1d, 0xe6, 0xdb, 0xb1, 0xc1, 0x2b, 0x2f, 0x9e, 0xc9, 0x49, 0xc2, 0x4c, - 0x3b, 0xac, 0xce, 0xf8, 0x76, 0xd8, 0x70, 0x09, 0x38, 0x5c, 0x45, 0x0f, 0x8f, 0xe9, 0xc1, 0x63, - 0x9e, 0x63, 0x29, 0x79, 0x8c, 0x26, 0x01, 0x5d, 0xba, 0x57, 0xf8, 0x84, 0x93, 0xb5, 0x4c, 0x9c, - 0xfe, 0xdc, 0xa5, 0x4d, 0x87, 0xf5, 0x0c, 0xd5, 0x2c, 0x8d, 0x11, 0x3e, 0x11, 0x4a, 0xcf, 0x50, - 0xbb, 0x2c, 0xdc, 0xf2, 0xec, 0x6c, 0x75, 0x24, 0x9d, 0xed, 0xe9, 0x0f, 0x83, 0x0f, 0x3f, 0x7e, - 0x7f, 0xde, 0x69, 0x43, 0xcb, 0x2e, 0x7e, 0xd6, 0xaf, 0x6d, 0xf2, 0xce, 0xe8, 0x7c, 0x0f, 0x5f, - 0x09, 0x6d, 0xd8, 0x11, 0xff, 0x3f, 0x49, 0xf7, 0xac, 0xa4, 0x00, 0xba, 0xeb, 0x92, 0xde, 0x1a, - 0x1d, 0x4e, 0xd8, 0x09, 0x81, 0x8f, 0x84, 0x36, 0x2e, 0xd2, 0xd2, 0x0f, 0xab, 0x84, 0x16, 0xab, - 0x7c, 0xc5, 0xbc, 0xaf, 0xd8, 0xc0, 0xf8, 0x6a, 0x4b, 0xda, 0x0c, 0x55, 0xd8, 0xb6, 0xda, 0x00, - 0x6e, 0xac, 0x69, 0x2b, 0x01, 0xe9, 0xc1, 0xea, 0x9c, 0x36, 0xab, 0xe9, 0xac, 0x0f, 0x70, 0xe9, - 0xe0, 0x8d, 0xdb, 0x28, 0xab, 0xde, 0x4f, 0x08, 0xbc, 0xa0, 0x8d, 0x33, 0xd4, 0xb5, 0xcb, 0x36, - 0xb2, 0xb4, 0x6a, 0x96, 0x2b, 0x8e, 0x0c, 0x6f, 0x5b, 0x86, 0x9b, 0x70, 0xe8, 0x19, 0x6a, 0x3b, - 0x42, 0x42, 0x9b, 0x43, 0x2c, 0x35, 0x57, 0x7f, 0xb3, 0xdf, 0x06, 0xce, 0xf0, 0xbe, 0xc5, 0xee, - 0x41, 0xb0, 0xbe, 0x38, 0x55, 0xc1, 0x7a, 0x4f, 0x25, 0xb4, 0xf9, 0x44, 0x89, 0x5c, 0x68, 0xdc, - 0x36, 0x91, 0xac, 0x60, 0x1d, 0xd1, 0xa3, 0xc1, 0xb7, 0x45, 0x40, 0xbe, 0x2f, 0x02, 0xf2, 0x6b, - 0x11, 0x90, 0x97, 0x0f, 0xff, 0xf9, 0x0d, 0xbb, 0xfa, 0x62, 0x8e, 0x76, 0x2d, 0xfd, 0x83, 0x3f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0xe9, 0xd3, 0x9b, 0x24, 0x51, 0x05, 0x00, 0x00, + // 628 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4f, 0x6b, 0x13, 0x41, + 0x1c, 0x65, 0xda, 0xfa, 0xa7, 0xd3, 0xb4, 0xb6, 0xa3, 0x86, 0x35, 0x86, 0xa5, 0xac, 0x22, 0x52, + 0xe8, 0x4c, 0x53, 0x0f, 0x82, 0xe8, 0xc1, 0x42, 0x28, 0x81, 0x22, 0x9a, 0x1c, 0x44, 0x2f, 0x32, + 0x59, 0xa7, 0x93, 0x35, 0xd9, 0x9d, 0x65, 0x77, 0x12, 0x09, 0x21, 0x17, 0xc1, 0x93, 0xe0, 0x45, + 0x0f, 0x7e, 0x24, 0xc1, 0x8b, 0xe0, 0x17, 0x90, 0xe0, 0x07, 0x91, 0x99, 0x9d, 0xd9, 0x4d, 0x02, + 0x8b, 0x22, 0xc1, 0x53, 0x7e, 0xbf, 0xdf, 0xce, 0xbe, 0xf7, 0xe6, 0xcd, 0xcb, 0x2c, 0xbc, 0x15, + 0xf7, 0x39, 0xa1, 0x71, 0xe0, 0x0f, 0x02, 0x16, 0x49, 0x92, 0x88, 0xc1, 0x40, 0x0c, 0xf3, 0x5f, + 0x1c, 0x27, 0x42, 0x0a, 0x74, 0xc9, 0xb4, 0xb5, 0x3a, 0x17, 0x82, 0x0f, 0x98, 0x7a, 0x81, 0xd0, + 0x28, 0x12, 0x92, 0xca, 0x40, 0x44, 0x69, 0xb6, 0xac, 0x76, 0xc6, 0x03, 0xd9, 0x1b, 0x76, 0xb1, + 0x2f, 0x42, 0x42, 0x13, 0x2e, 0xe2, 0x44, 0xbc, 0xd1, 0xc5, 0xa1, 0x79, 0x3f, 0x25, 0x86, 0x2d, + 0x25, 0xf9, 0x64, 0xd4, 0xa0, 0x83, 0xb8, 0x47, 0x1b, 0x84, 0xb3, 0x88, 0x25, 0x54, 0xb2, 0xd7, + 0x06, 0xed, 0xa6, 0xe1, 0xd2, 0x5d, 0x77, 0x78, 0x4e, 0x58, 0x18, 0xcb, 0x71, 0xf6, 0xd0, 0xf3, + 0x60, 0xa5, 0x9d, 0x21, 0x3c, 0x1b, 0xb2, 0x64, 0x8c, 0x10, 0xdc, 0x88, 0x68, 0xc8, 0x1c, 0xb0, + 0x0f, 0xee, 0x6e, 0xb6, 0x75, 0xed, 0x09, 0xb8, 0xdd, 0x61, 0xb2, 0x15, 0x52, 0xce, 0xb2, 0x45, + 0x0e, 0xb4, 0x1b, 0x31, 0xeb, 0x6c, 0x8b, 0xea, 0x70, 0xd3, 0x17, 0x91, 0xa4, 0x41, 0xc4, 0x12, + 0x67, 0x4d, 0x3f, 0x2b, 0x06, 0xe8, 0x1a, 0xbc, 0x10, 0x28, 0x14, 0x67, 0x5d, 0x3f, 0xc9, 0x1a, + 0xb4, 0x0b, 0xd7, 0x25, 0xe5, 0xce, 0x86, 0x9e, 0xa9, 0xd2, 0xfb, 0x0c, 0xe0, 0x9e, 0x51, 0xf5, + 0x9c, 0x4a, 0xbf, 0xd7, 0x1c, 0xb1, 0x48, 0x2a, 0x69, 0x72, 0x1c, 0xe7, 0xd2, 0x54, 0x8d, 0xfa, + 0x70, 0xcb, 0x50, 0xb7, 0xa2, 0x73, 0xa1, 0x19, 0xb7, 0x8e, 0x5b, 0xb8, 0xf0, 0x0f, 0x5b, 0xff, + 0x74, 0xf1, 0xca, 0xba, 0x85, 0xe3, 0x3e, 0xc7, 0xca, 0x3f, 0x9c, 0x4f, 0xac, 0x7f, 0xb8, 0x5d, + 0x00, 0xb6, 0xe7, 0xd1, 0xbd, 0x43, 0xb8, 0xfd, 0x84, 0x86, 0x2c, 0x8d, 0xa9, 0xcf, 0xd4, 0x40, + 0xed, 0x36, 0xb2, 0x03, 0x23, 0xab, 0x18, 0x1c, 0x7f, 0xbb, 0x0c, 0x77, 0x0c, 0x56, 0x87, 0x25, + 0xa3, 0xc0, 0x67, 0xe8, 0x23, 0x80, 0xf0, 0x94, 0x49, 0x33, 0x45, 0xd7, 0x2d, 0x3b, 0x9e, 0x3f, + 0x83, 0xda, 0xea, 0xf4, 0x7b, 0xee, 0xbb, 0x1f, 0xbf, 0x3e, 0xad, 0x39, 0xa8, 0xaa, 0x93, 0x36, + 0x6a, 0xe4, 0xb9, 0x9c, 0x28, 0x9d, 0x53, 0xf4, 0x05, 0xc0, 0x8a, 0xb6, 0xf8, 0xff, 0x49, 0xba, + 0xad, 0x25, 0xb9, 0xa8, 0xbe, 0x2c, 0xe9, 0xad, 0xd2, 0x61, 0x84, 0x1d, 0x01, 0xf4, 0x01, 0xc0, + 0xca, 0x59, 0x90, 0x5a, 0xb3, 0x52, 0x54, 0xc5, 0x59, 0x90, 0xb1, 0x0d, 0x32, 0x6e, 0xaa, 0x20, + 0xaf, 0x48, 0x9b, 0xa2, 0xf2, 0x1c, 0xad, 0x0d, 0xa1, 0xdd, 0x25, 0x6d, 0x29, 0x62, 0x70, 0x7b, + 0xde, 0xa7, 0x72, 0x35, 0xb5, 0x65, 0x03, 0x8b, 0x04, 0x97, 0x9e, 0x46, 0x9a, 0xed, 0xfd, 0x08, + 0xa0, 0x17, 0xb0, 0x72, 0xca, 0x64, 0x9e, 0xb2, 0x52, 0x96, 0x6a, 0xce, 0xb2, 0x90, 0x48, 0xef, + 0x86, 0x66, 0xb8, 0x8a, 0xf6, 0x2c, 0x43, 0x1e, 0x47, 0xc4, 0xe1, 0x4e, 0x9b, 0xa5, 0x92, 0x26, + 0x7f, 0x8a, 0x5f, 0x09, 0xa7, 0x77, 0x47, 0x63, 0xef, 0x23, 0x77, 0xf9, 0xe0, 0x92, 0x0c, 0xd6, + 0x66, 0x8a, 0xc3, 0x9d, 0xa7, 0x89, 0x08, 0x85, 0x64, 0xab, 0x26, 0x8a, 0x33, 0x58, 0x4b, 0xe4, + 0xc3, 0xca, 0xe3, 0xae, 0xf8, 0xe7, 0xfd, 0x94, 0x06, 0x91, 0x2a, 0x50, 0x4b, 0xf2, 0x1e, 0xc0, + 0x2b, 0x9d, 0xfc, 0x2f, 0xab, 0x2f, 0x41, 0x54, 0xb8, 0xbf, 0x70, 0x2f, 0x96, 0x32, 0x9d, 0x68, + 0xa6, 0x87, 0xe8, 0xc1, 0x32, 0x53, 0xca, 0x24, 0x99, 0x98, 0x66, 0x4a, 0x26, 0xf9, 0x4d, 0x39, + 0x25, 0x13, 0x7d, 0x37, 0x3e, 0x3a, 0x38, 0x98, 0x92, 0x89, 0xa4, 0x7c, 0x7a, 0xd2, 0xfc, 0x3a, + 0x73, 0xc1, 0xf7, 0x99, 0x0b, 0x7e, 0xce, 0x5c, 0xf0, 0xf2, 0xfe, 0x5f, 0x7f, 0x21, 0x16, 0xbf, + 0x47, 0xdd, 0x8b, 0x5a, 0xda, 0xbd, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xda, 0x17, 0x1d, 0x21, + 0xaf, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -244,6 +324,8 @@ type RolloutServiceClient interface { GetNamespace(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*NamespaceInfo, error) RestartRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) PromoteRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) + AbortRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) + SetRolloutImage(ctx context.Context, in *SetImageQuery, opts ...grpc.CallOption) (*empty.Empty, error) } type rolloutServiceClient struct { @@ -363,6 +445,24 @@ func (c *rolloutServiceClient) PromoteRollout(ctx context.Context, in *RolloutQu return out, nil } +func (c *rolloutServiceClient) AbortRollout(ctx context.Context, in *RolloutQuery, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/AbortRollout", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rolloutServiceClient) SetRolloutImage(ctx context.Context, in *SetImageQuery, opts ...grpc.CallOption) (*empty.Empty, error) { + out := new(empty.Empty) + err := c.cc.Invoke(ctx, "/rollout.RolloutService/SetRolloutImage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // RolloutServiceServer is the server API for RolloutService service. type RolloutServiceServer interface { // Get returns a rollout @@ -373,6 +473,8 @@ type RolloutServiceServer interface { GetNamespace(context.Context, *empty.Empty) (*NamespaceInfo, error) RestartRollout(context.Context, *RolloutQuery) (*empty.Empty, error) PromoteRollout(context.Context, *RolloutQuery) (*empty.Empty, error) + AbortRollout(context.Context, *RolloutQuery) (*empty.Empty, error) + SetRolloutImage(context.Context, *SetImageQuery) (*empty.Empty, error) } // UnimplementedRolloutServiceServer can be embedded to have forward compatible implementations. @@ -400,6 +502,12 @@ func (*UnimplementedRolloutServiceServer) RestartRollout(ctx context.Context, re func (*UnimplementedRolloutServiceServer) PromoteRollout(ctx context.Context, req *RolloutQuery) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method PromoteRollout not implemented") } +func (*UnimplementedRolloutServiceServer) AbortRollout(ctx context.Context, req *RolloutQuery) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method AbortRollout not implemented") +} +func (*UnimplementedRolloutServiceServer) SetRolloutImage(ctx context.Context, req *SetImageQuery) (*empty.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetRolloutImage not implemented") +} func RegisterRolloutServiceServer(s *grpc.Server, srv RolloutServiceServer) { s.RegisterService(&_RolloutService_serviceDesc, srv) @@ -537,6 +645,42 @@ func _RolloutService_PromoteRollout_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _RolloutService_AbortRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RolloutQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).AbortRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/AbortRollout", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).AbortRollout(ctx, req.(*RolloutQuery)) + } + return interceptor(ctx, in, info, handler) +} + +func _RolloutService_SetRolloutImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetImageQuery) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RolloutServiceServer).SetRolloutImage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollout.RolloutService/SetRolloutImage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RolloutServiceServer).SetRolloutImage(ctx, req.(*SetImageQuery)) + } + return interceptor(ctx, in, info, handler) +} + var _RolloutService_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollout.RolloutService", HandlerType: (*RolloutServiceServer)(nil), @@ -561,6 +705,14 @@ var _RolloutService_serviceDesc = grpc.ServiceDesc{ MethodName: "PromoteRollout", Handler: _RolloutService_PromoteRollout_Handler, }, + { + MethodName: "AbortRollout", + Handler: _RolloutService_AbortRollout_Handler, + }, + { + MethodName: "SetRolloutImage", + Handler: _RolloutService_SetRolloutImage_Handler, + }, }, Streams: []grpc.StreamDesc{ { @@ -611,6 +763,61 @@ func (m *RolloutQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *SetImageQuery) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SetImageQuery) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SetImageQuery) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.XXX_unrecognized != nil { + i -= len(m.XXX_unrecognized) + copy(dAtA[i:], m.XXX_unrecognized) + } + if len(m.Tag) > 0 { + i -= len(m.Tag) + copy(dAtA[i:], m.Tag) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Tag))) + i-- + dAtA[i] = 0x22 + } + if len(m.Image) > 0 { + i -= len(m.Image) + copy(dAtA[i:], m.Image) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Image))) + i-- + dAtA[i] = 0x1a + } + if len(m.Container) > 0 { + i -= len(m.Container) + copy(dAtA[i:], m.Container) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Container))) + i-- + dAtA[i] = 0x12 + } + if len(m.Rollout) > 0 { + i -= len(m.Rollout) + copy(dAtA[i:], m.Rollout) + i = encodeVarintRollout(dAtA, i, uint64(len(m.Rollout))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *RolloutWatchEvent) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -718,6 +925,34 @@ func (m *RolloutQuery) Size() (n int) { return n } +func (m *SetImageQuery) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Rollout) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + l = len(m.Container) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + l = len(m.Image) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + l = len(m.Tag) + if l > 0 { + n += 1 + l + sovRollout(uint64(l)) + } + if m.XXX_unrecognized != nil { + n += len(m.XXX_unrecognized) + } + return n +} + func (m *RolloutWatchEvent) Size() (n int) { if m == nil { return 0 @@ -846,6 +1081,188 @@ func (m *RolloutQuery) Unmarshal(dAtA []byte) error { } return nil } +func (m *SetImageQuery) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SetImageQuery: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SetImageQuery: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rollout", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rollout = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Container", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Container = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Image = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tag", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRollout + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthRollout + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRollout + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Tag = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRollout(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthRollout + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *RolloutWatchEvent) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/pkg/apiclient/rollout/rollout.pb.gw.go b/pkg/apiclient/rollout/rollout.pb.gw.go index bc9b1539c0..bb175cda4b 100644 --- a/pkg/apiclient/rollout/rollout.pb.gw.go +++ b/pkg/apiclient/rollout/rollout.pb.gw.go @@ -282,6 +282,180 @@ func local_request_RolloutService_PromoteRollout_0(ctx context.Context, marshale } +func request_RolloutService_AbortRollout_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := client.AbortRollout(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_AbortRollout_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq RolloutQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["name"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") + } + + protoReq.Name, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) + } + + msg, err := server.AbortRollout(ctx, &protoReq) + return msg, metadata, err + +} + +func request_RolloutService_SetRolloutImage_0(ctx context.Context, marshaler runtime.Marshaler, client RolloutServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SetImageQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["rollout"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "rollout") + } + + protoReq.Rollout, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "rollout", err) + } + + val, ok = pathParams["container"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "container") + } + + protoReq.Container, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "container", err) + } + + val, ok = pathParams["image"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "image") + } + + protoReq.Image, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "image", err) + } + + val, ok = pathParams["tag"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "tag") + } + + protoReq.Tag, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "tag", err) + } + + msg, err := client.SetRolloutImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_RolloutService_SetRolloutImage_0(ctx context.Context, marshaler runtime.Marshaler, server RolloutServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SetImageQuery + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["rollout"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "rollout") + } + + protoReq.Rollout, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "rollout", err) + } + + val, ok = pathParams["container"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "container") + } + + protoReq.Container, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "container", err) + } + + val, ok = pathParams["image"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "image") + } + + protoReq.Image, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "image", err) + } + + val, ok = pathParams["tag"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "tag") + } + + protoReq.Tag, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "tag", err) + } + + msg, err := server.SetRolloutImage(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterRolloutServiceHandlerServer registers the http handlers for service RolloutService to "mux". // UnaryRPC :call RolloutServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -401,6 +575,46 @@ func RegisterRolloutServiceHandlerServer(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_AbortRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_AbortRollout_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_AbortRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_RolloutService_SetRolloutImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_RolloutService_SetRolloutImage_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_SetRolloutImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -582,6 +796,46 @@ func RegisterRolloutServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("GET", pattern_RolloutService_AbortRollout_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_AbortRollout_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_AbortRollout_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_RolloutService_SetRolloutImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_RolloutService_SetRolloutImage_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_RolloutService_SetRolloutImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -599,6 +853,10 @@ var ( pattern_RolloutService_RestartRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "restart", "name"}, "", runtime.AssumeColonVerbOpt(true))) pattern_RolloutService_PromoteRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "promote", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_AbortRollout_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"api", "v1", "rollout", "abort", "name"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_RolloutService_SetRolloutImage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 2, 1, 0, 4, 1, 5, 4, 3, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"api", "v1", "rollout", "set", "container", "image", "tag"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -615,4 +873,8 @@ var ( forward_RolloutService_RestartRollout_0 = runtime.ForwardResponseMessage forward_RolloutService_PromoteRollout_0 = runtime.ForwardResponseMessage + + forward_RolloutService_AbortRollout_0 = runtime.ForwardResponseMessage + + forward_RolloutService_SetRolloutImage_0 = runtime.ForwardResponseMessage ) diff --git a/pkg/apiclient/rollout/rollout.proto b/pkg/apiclient/rollout/rollout.proto index c8a9bec61c..e9c1acd331 100644 --- a/pkg/apiclient/rollout/rollout.proto +++ b/pkg/apiclient/rollout/rollout.proto @@ -11,6 +11,13 @@ message RolloutQuery { string name = 1; } +message SetImageQuery { + string rollout = 1; + string container = 2; + string image = 3; + string tag = 4; +} + message RolloutWatchEvent { string type = 1; github.com.argoproj.argo_rollouts.pkg.apis.rollouts.v1alpha1.RolloutInfo rolloutInfo = 2; @@ -49,4 +56,12 @@ service RolloutService { rpc PromoteRollout(RolloutQuery) returns (google.protobuf.Empty) { option (google.api.http).get = "/api/v1/rollout/promote/{name}"; } + + rpc AbortRollout(RolloutQuery) returns (google.protobuf.Empty) { + option (google.api.http).get = "/api/v1/rollout/abort/{name}"; + } + + rpc SetRolloutImage(SetImageQuery) returns (google.protobuf.Empty) { + option (google.api.http).get = "/api/v1/rollout/set/{rollout}/{container}/{image=**}/{tag}"; + } } \ No newline at end of file diff --git a/pkg/apiclient/rollout/rollout.swagger.json b/pkg/apiclient/rollout/rollout.swagger.json index 243414a74e..3f7f8cc0ab 100644 --- a/pkg/apiclient/rollout/rollout.swagger.json +++ b/pkg/apiclient/rollout/rollout.swagger.json @@ -27,6 +27,30 @@ ] } }, + "/api/v1/rollout/abort/{name}": { + "get": { + "operationId": "AbortRollout", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "name", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/rollout/promote/{name}": { "get": { "operationId": "PromoteRollout", @@ -75,6 +99,48 @@ ] } }, + "/api/v1/rollout/set/{rollout}/{container}/{image}/{tag}": { + "get": { + "operationId": "SetRolloutImage", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "properties": {} + } + } + }, + "parameters": [ + { + "name": "rollout", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "container", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "image", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "tag", + "in": "path", + "required": true, + "type": "string" + } + ], + "tags": [ + "RolloutService" + ] + } + }, "/api/v1/rollout/watch/{name}": { "get": { "operationId": "WatchRollout", diff --git a/pkg/kubectl-argo-rollouts/cmd/cmd.go b/pkg/kubectl-argo-rollouts/cmd/cmd.go index 7426b3c1b2..0ede06de39 100644 --- a/pkg/kubectl-argo-rollouts/cmd/cmd.go +++ b/pkg/kubectl-argo-rollouts/cmd/cmd.go @@ -5,6 +5,7 @@ import ( "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/abort" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/create" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/dashboard" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/lint" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/list" @@ -64,5 +65,6 @@ func NewCmdArgoRollouts(o *options.ArgoRolloutsOptions) *cobra.Command { cmd.AddCommand(terminate.NewCmdTerminate(o)) cmd.AddCommand(set.NewCmdSet(o)) cmd.AddCommand(undo.NewCmdUndo(o)) + cmd.AddCommand(dashboard.NewCmdDashboard(o)) return cmd } diff --git a/pkg/kubectl-argo-rollouts/cmd/dashboard/dashboard.go b/pkg/kubectl-argo-rollouts/cmd/dashboard/dashboard.go new file mode 100644 index 0000000000..f2bcbf3a13 --- /dev/null +++ b/pkg/kubectl-argo-rollouts/cmd/dashboard/dashboard.go @@ -0,0 +1,38 @@ +package dashboard + +import ( + "context" + + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/options" + "github.com/argoproj/argo-rollouts/server" + "github.com/spf13/cobra" +) + +func NewCmdDashboard(o *options.ArgoRolloutsOptions) *cobra.Command { + var cmd = &cobra.Command{ + Use: "dashboard", + Short: "Start UI dashboard", + RunE: func(c *cobra.Command, args []string) error { + namespace := o.Namespace() + kubeclientset := o.KubeClientset() + rolloutclientset := o.RolloutsClientset() + + opts := server.ServerOptions{ + Namespace: namespace, + KubeClientset: kubeclientset, + RolloutsClientset: rolloutclientset, + DynamicClientset: o.DynamicClientset(), + } + + for { + ctx := context.Background() + ctx, cancel := context.WithCancel(ctx) + argorollouts := server.NewServer(opts) + argorollouts.Run(ctx, 3100, true) + cancel() + } + }, + } + + return cmd +} \ No newline at end of file diff --git a/pkg/kubectl-argo-rollouts/info/rollout_info.go b/pkg/kubectl-argo-rollouts/info/rollout_info.go index ea8f8a335e..6143024d76 100644 --- a/pkg/kubectl-argo-rollouts/info/rollout_info.go +++ b/pkg/kubectl-argo-rollouts/info/rollout_info.go @@ -31,6 +31,7 @@ func NewRolloutInfo( Namespace: ro.Namespace, UID: ro.UID, CreationTimestamp: ro.CreationTimestamp, + ResourceVersion: ro.ObjectMeta.ResourceVersion, }, } diff --git a/server/server.go b/server/server.go index ee21aa4f00..0c16140a10 100644 --- a/server/server.go +++ b/server/server.go @@ -2,18 +2,23 @@ package server import ( "context" + "embed" "fmt" + "io/fs" "net" "net/http" + "os" "time" "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" rolloutspkg "github.com/argoproj/argo-rollouts/pkg/apiclient/rollout" "github.com/argoproj/argo-rollouts/pkg/apis/rollouts/v1alpha1" rolloutclientset "github.com/argoproj/argo-rollouts/pkg/client/clientset/versioned" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/abort" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/get" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/promote" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/restart" + "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/cmd/set" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/info" "github.com/argoproj/argo-rollouts/pkg/kubectl-argo-rollouts/viewcontroller" "github.com/argoproj/argo-rollouts/utils/json" @@ -25,9 +30,13 @@ import ( "google.golang.org/grpc" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" ) +//go:embed static/* +var static embed.FS + var ( watchAPIBufferSize = 1000 ) @@ -41,6 +50,7 @@ var backoff = wait.Backoff{ type ServerOptions struct { KubeClientset kubernetes.Interface RolloutsClientset rolloutclientset.Interface + DynamicClientset dynamic.Interface Namespace string } @@ -60,6 +70,18 @@ func NewServer(o ServerOptions) *ArgoRolloutsServer { return &ArgoRolloutsServer{Options: o}; } +type spaFileSystem struct { + root http.FileSystem +} + +func (fs *spaFileSystem) Open(name string) (http.File, error) { + f, err := fs.root.Open(name) + if os.IsNotExist(err) { + return fs.root.Open("index.html") + } + return f, err +} + func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http.Server { mux := http.NewServeMux() endpoint := fmt.Sprintf("0.0.0.0:%d", port) @@ -86,7 +108,15 @@ func (s* ArgoRolloutsServer) newHTTPServer(ctx context.Context, port int) *http. } var handler http.Handler = gwmux - mux.Handle("/api/", handler) + + ui, err := fs.Sub(static, "static") + if err != nil { + log.Error("Could not load UI static files") + panic(err) + } + + mux.Handle("/api/", handler) + mux.Handle("/", http.FileServer(&spaFileSystem{http.FS(ui)})) return &httpS } @@ -111,7 +141,7 @@ func (s *ArgoRolloutsServer) checkServeErr(name string, err error) { } // Run starts the server -func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { +func (s *ArgoRolloutsServer) Run(ctx context.Context, port int, dashboard bool) { httpServer := s.newHTTPServer(ctx, port) grpcServer := s.newGRPCServer() @@ -128,7 +158,12 @@ func (s *ArgoRolloutsServer) Run(ctx context.Context, port int) { }) errors.CheckError(realErr) - log.Infof("Argo Rollouts api-server serving on port %d (namespace: %s)", port, s.Options.Namespace) + startupMessage := fmt.Sprintf("Argo Rollouts api-server serving on port %d (namespace: %s)", port, s.Options.Namespace) + if (dashboard == true) { + startupMessage = fmt.Sprintf("Argo Rollouts Dashboard is now available at localhost %d", port) + } + + log.Info(startupMessage) tcpm := cmux.New(conn) @@ -288,4 +323,19 @@ func (s* ArgoRolloutsServer) PromoteRollout(ctx context.Context, q *rollout.Roll return nil, err } return &empty.Empty{}, nil +} + +func (s* ArgoRolloutsServer) AbortRollout(ctx context.Context, q *rollout.RolloutQuery) (*empty.Empty, error) { + rolloutIf := s.Options.RolloutsClientset.ArgoprojV1alpha1().Rollouts(s.Options.Namespace) + _, err := abort.AbortRollout(rolloutIf, q.GetName()) + if (err != nil) { + return nil, err + } + return &empty.Empty{}, nil +} + +func (s* ArgoRolloutsServer) SetRolloutImage(ctx context.Context, q *rollout.SetImageQuery) (*empty.Empty, error) { + imageString := fmt.Sprintf("%s:%s", q.GetImage(), q.GetTag()) + set.SetImage(s.Options.DynamicClientset, s.Options.Namespace, q.GetRollout(), q.GetContainer(), imageString) + return &empty.Empty{}, nil } \ No newline at end of file diff --git a/server/static/assets/fonts/fa-brands-400.eot b/server/static/assets/fonts/fa-brands-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..cdef69f09be0ba253b6a8fcf74a683b2849424fd GIT binary patch literal 136822 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 &=&^OXx>DnU;mPNd2~DZS<1txA+=Q&CwkkVL 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 b)_CDZ?P2@cUmg6udjF%sU(l=3dY|||3h!_* literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-brands-400.svg b/server/static/assets/fonts/fa-brands-400.svg new file mode 100644 index 0000000000..54da424a7c --- /dev/null +++ b/server/static/assets/fonts/fa-brands-400.svg @@ -0,0 +1,3717 @@ + + + + +Created by FontForge 20200314 at Wed Jan 13 11:57:55 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/static/assets/fonts/fa-brands-400.ttf b/server/static/assets/fonts/fa-brands-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8ecb67b04090d546a75fff5b110a75887a5dfd79 GIT binary patch literal 136516 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

P=Dl^Rj^C)5i_MLUN1jaQkTwY#yUE~OY%Uf% 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 literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-brands-400.woff b/server/static/assets/fonts/fa-brands-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..9bd812abc35c6ce879a42e0a38ad38412ea27bf2 GIT binary patch literal 92136 zcmZUZV{|1=*RbPEG)X45Z9AFRII(Tpm~dj7ckC0}#))m)Hr{!@zhAF)t?GUC-c?;c zx>r@N_E40N00RdD0|U1>0Ym!NLSTr2%ZBFvJNy3*2?gA{Gn`mf1-Z=Frx`*(O(3I?w22?mDr?>;eXv?Z;zJhM#<4Gm4f zf^=%W^k8Q_RCC8gtSG?rwP1_>P48cCi2uO+2gJV!5*+le{oni`{sH#CS|i^9?!ds5 zz`)tREHQzBeFQQAX7Q$$MuvvQhGyoy@DOvlD%iM$wcnn7o;%;*FapDDh$O#_B;xT4 zG4_>-i+g*2fcY`~l=aNMoY%2cRYQl_VH3@FnaXH_u^qy57m2>jT=_NRNi%57tRzMw z5)8j9UzeW`*iTtYCHb?asf}KOBrc8zEz+b;QMV*zKe~RT< zZ>N$nv(k57`0LU98Kt+E{K3b!tiT-^{h>wO5vF^}SQotOBZaL2xUY-=BSpfLQnRLo zQEe@znlW>$RJ*%a*U{rSvaY+B2hbn{J))P6)S*%nBet{LEjiWPI@# zM^S9qynpxhNz2>%=kv$UZG*feP8CD&(%ZzThfTKTCv*O<6 z{=zkjc&=SrW&3ZUp9xoUaGzaUHA!zu&D=VPc9YF!@Abi}rcW!c_o;3PE2P&r4tnkG zs`R;p_-GxVZ~+O7#>m{Fp z`c{Mb2e`3LXgz(`ckds8sON_yg50!Et^9OMW4L5bk+#XLwka(|^1LxC`qEN)sCewg z(mb?OG3gG2L9`n3${N^pHs9p#nlUd^+vxA^a#b_o0z#Ba|8bqWlRd4buhgP;aPZw5 z*PX0Vi^oaEiFXv{iSZTINM?~TBn(UWnd+Geo4Ow;qw|Lbr}x&>Vm}tMci?@&WSxFu?oWE6ZH03gg6qeqFcaM~hoCv~!w8GQ zOYBgq_Bw0A$nK(QLLAm&WA=$q2SeWwPyF>#f_K>!Oh73|F@!-MAYdl254KW* z3Ux#{7!dmrjA#F2In-uA4d|?Lh01mMb#Ud;~aqc!EG5a^QP(#E!$VVc(z(2(M{LD-DECi;ZzKA~@7;Gl?w41f z@G1079tgKYWE=ROR$q_cOB(VU@*SV*5>ed0M-%+ty9dHEJERjXom|q5F_VgvjqJJD zxzZ1`=3N71DDALl_wn|YU`v#kv&FS4nq`b3N68|O2PYvxi3<4*i5-k8ft__&H%8BC zh)145MGxXFD^ZEJ)iHB!m@Z5=}wb;PgcwFX^iw~nF|X5TVMx-wGHc`KJ8IrLBWA9K{Fsp}P`-Ip$hZUPXvIOW0&pBrdF4F#(z(rmSPKv4sq zU{Hz$2{0~?_hL$%^xA|Zc?ZvE|N9L(9_&WMpNqgci$sc)qTphCBTyoWqc#&-tt|Id z&}v{F0?n0#Ob$-eD9!OVH@z;yj|}}2(Bl#@?o;q!UZ7DA*5jdTn@m{nlBXhn^eQvq z)5x|V^cu@K)u(%n9Hc?44da8v=@{cf;R~=_*{Y&U->bKQ{u(*;#Dz;cvsyOaV)KQk zi*QqgDXntMrhdqpg)YTGuggetk?=LNnke|TAnmJPKqwIOhewI}R>c2i5G^1(XZxcU z)^uPo_#(mMs*91GjG_Ii{d~hg?PytY$mc59q9rz`{qt$P|$R-TH1b?_?Ia2}pvaFZ$HrlzP?6vT?-8EvjoEGg!5oAyD z1ODzOq)idZu2wat%S$%naLsiVaq~GO$lAOzf9{Gk;(kN;FrMA^&iw9AS#j%N`+EG6 zCCj&@^{W{T=bKJM)OoKo9~hm4 zI{6XaobY~lwKzvcNCrk2ZvsEsIK{_^s)X0DY+Ij=MD*>%?E_Di4Qdj6DTA=ii*_WI zD&f3VB3Zo(^pKzZR8>z#SXaXycj&4l+|LnSl3uyhP9$HuHE!C|lt#WeeSe;JlT5(L z_S^Mu27wW}c=5GJMs;F)>D%&`bTBjveG9+9Vv4vVZcs%TPRT+; zhBq~@7sZ?^4@qjVcj5`kDi@|VI{(E@MV?tCOxf|hdYg3bPl$6E*?9<V|BMqnr7SpdGuoPnJrDAs9m*hjCmrE5?Tnz^(+T2C z^2wkw7PwK}fl0oSSCWJ!G2|w2he0<_o+oPe<~+<0_;F{vcRK5HccE}dU7455yywFa z>kn@K-DjeMyl?NPzKvk75Btw)*p@F;kB`|vNTTgHp%$WaU;Dg|XfrC0Bf1-p75|_a zksNa9CRQ8@OTY6K@UUtz^Uqm+tC1Bk-Nf4Gqg@*vgRsT@Z?w8Z&{C zbMqdE9Ocyr;xbklEsh_y8oEJgq++!Vfo3Vr;E@rhIDtCINCOQ5;qO*0lk zEy~Owt(Z;{)fCI}PZ+Fi>q{VlB>7SzUl42kYoNma4r|=8j&Mc6==%F^h)uHn_KCND zRI(tQ~s3K_mM~TH9#ZhyX+P;=W!JgB4qe@UG0%RU(J7tH78Y=*`Xu1`7Kw zFa{$`s4pux#9vg(iij6&?EAy?8~j%wH3>gCxD+kv?>$m$3ivulq*>UqUr?TcQpsYc zujH^lSYAZLCd+2Cqs=TR_JpOZJg>~57(4N19_&NDh^{FU^8#A<=L54l7Aq?&oQwCA z`ZX6qd1SVWsnv*i0h#kENTJwDO6gS<^`nD5gG@W^<@%7e>1h$XQRfvCTkXmdQZ{)A z<*+Dp@wZ%j(166Di?az0-=2*n^q8Qk&w6XxNW{DAQETm^w1BPqNED|c##{rTi=Z{Q z!KlojoNW|R*f%WIpQPR2CMww;Z2z53PSyMuwJu_T#r6Kw72dju;$W1S3K+t^W5Gd{ zH}lSRGU>`)${7^XkLx@VEVT;VfaEN$&}3I#RN@1c2>x!MHLEY-RV{9uKcVFTOyD4t z7%-Y)40)7^eId}zsR~7F?1+F3YE6?)d8ZaeQ@Y;~4{3B3LYatz9`7tqo<4_IrVwr} z1jb@&dTxj134~I#dI*y(YDm^>+g=qf745ge|L#ELFu=M6G(%7cFT;d;Oc@_qQ1MGx zmZ$@JqUaocV&=W{!hT%{eeL(b_I&IFpSD>_>LYQ%A@rjHuM6TUtF$YLn$kV0H{rt-1V!*FpTBi7KS_#$T(aV8Mz&|H)^UR33`u7N>(IvruWkaz%Evh(6 zJWZ9b6#r?0#b?!mVc}se+%ozn-yzV2H`RTi&J0}l4v3(pz1&o#vg)XsRlCQCmcQ{2 zd4z4JHVcA7JH+E*0PR4;-UwrhDDsm}tZX;T6BCFMlijIV)iJSEmo;SoKa2e{t{>TS zKP2NYnz#x`WF@D<5)!Zn0%+PClN^9}sR zkz;VLM|ZH$cNFpL{&pjyGc^%WhyfO+6WI-wJ1rdco~v!W9&vGa!003_YZu8Hw*8>Y z%)twh;K^5eLB%-8|1K6c<<#VEX*r#Otjr~VVLy8lF4)!LF)G)+ko?LI6uV#M2`sp{ zRW#<~HF#*kQ?tAO=u+K%!Uo_At}6oEM?4k66DegiJD9{9KY@Z18_#p|2Jao!d0S3r z-Dm5m-A@C1Lha8EpQpo2uL_zTD@Ll{F{#RrgrAXG69+~0s65T(;qAavcrw){yOCew z=qxE`uI>7#HM(d@A-IMI`X175nnor0nk_-s)T_UK8N2C0t)YS+H~jd4yh0SIHX5lO>RzguggZWPSmAy0K%+o+?h8mWFNYb%eU^oLy0?v;x_NG zrg5^zZV=6G>09YffOOfDIaE0qwGXuc(#CO%7{UH!tl z>5j^+Xmw|z{rmlVC^ZEe#Y)x*WTcIsXn%rOd4@IRVwFV4(NGU99OD!E@fAWPe;6mB z?q;In*l-(F@0#iyIi&MW!mM=N(srZG@-#ot3iHRJr{?{Bfdf>GDd&6u{=8FT(7;ig za*_gcb=`%)gA-dSEj#V0q?GK_*ku?~z?>oqP;Qko@8##Y=r)o}woWoiEH)3ckaUEc(e>{(yW}rZdTbna28)S+qR(eG+ zLeiu0)FfmqJ7u7aotuN1d({bYyvj4}LVFby?+M5|7dBE(GcdM(LHxdUj2ep(flPf$Pp{7k2Lf7s==Er; zJ-V&%6f_bS(d^{H{}xXtx**AL`Vl$G;zzWC;OtsGZ7J8zaewzEa&vF7m}WoWjv`*WjiV6*mg&-Yi{ zhR3$70WV%!SN*)^>iQLwewLR$jmmG{?*u+xg@vn)1h~64&~wWE=1A7@x@}eqr0#-8 zF>0dp*P$kfbun>!C^l*I0Vf2k!k%)G0Df=Mv6m7iKjJ&8~x}wQb}Ksm#SFP{G%$SL2-OD zPkO=*`#1)ZxCOEHSBskBo05a>(z845kcbs+NAuJ0Lu`^ykIT1+O&a=CYSQO5zR+Lh zy7G0my~0hxFWWB94N&`Kcz;VCm99daK*DZmuBB6USrEhAr( zt*S|F_ecaHEXU{kIu-bry}-w%!?&zzM8Wt{&t_hAn(a2N-}{xW*1g^S)PjcZ)hZAZ zh-Qy*^-G_;Q_eHq=RDwu#%mxNK#@aL za4~m=DApXB*faHr#9Np4U}8FDjDTUR$LuN^V8S!o8)_K#ILfWbuSi^2Bev&lwtgYf zemB)18vFg9p9tiZ=SI(-^A&>f$9ZuK_i-E(Ew zkIp|4Vk96DGsi z{Ru0I5H1B$3S<>VJaMs{QOHY*jXK;dbj8uD-F*8)P9~QB%c1gTa~4#Z?N-b2fm!5P z*lL&s&P(Z{d|`bDy;)|3otSz_E`nSIw3_^rlCz&V0PxU2V)7qt+V;&LJu>pH#t;*H zoF)~%MFgob!-td~YB8i3w0vE7O&{FWz&X{)`JxE;Nm z49BIdro_&PMuym9tp$}P?sdJ*eyY&2@JVy8IR?-#DqhYoRDl&7K9E(%+>5N3XFa5~ znoz0lypy?^M#L0GkEA_20sQ)Kp83(KL>@-Jo|$&+uiaR>;>XD2|Asg7HEh+Dq{EVJ z<8jUFJ85ktUC0`N(kJ$qu_@coBwQXpiwj*;X)VB1AdYz(qxjnP+FuFec6;OZ^T&Qy zs+gd_Si3b_AMd14Mf_@QIyr!wIjVeYlM2nC;a5ef z&hC1gZD|+o%Z%NQ<@;1-UaWTViGBVM>@K8yKyA9^PU=A#_x^PTPLmtv#qwx*=fD(A zxdl4~Ei!Dzf+P{cha%qJDWi=x`sT%C(mD}kL{o@aQX$=}*(kZ%W(&A2#h}xlkY|!> zagK7+v8wSn8@8Q6GN14sp;Kt7-*omM3DCLls{7Wg+_iA4Apx>?1{EqV2(>4<@Qz*C zb7H078>skopdS{zrVZ(3D7WDqYX{P>1{|G9RL)u!b4th0JamcNwAN7JG@1Vy){owH zj~TJwIp;zy+o!+k^g0}!%JP`%^Q(+0q4|v3xBG+)`S6+F*Z{&&`eGldp+g8e+9WrT zL=<+%jPnA22O#Zn^5gd$3+%`Uu?kWnOYQ~v(rwrZkoC{&JR`xBEp4@1YgK~~LJf4Y zAMUS9@0h?aQy;V%VVXj|`<|D3p0fiq+pgWVmP+xt%N+dXhD35Z&noar%`F@R`T3(0 zMW*=?YQ!@#u-xyLY{D%0u*Z!B6ao?n71^c2?t9N}ndMN-;yjCr=}G0_ym!k+CTBXS z8}wUgOKn)9f3m(N#tdb*mFX7(jxu3p%E)I6DYuW+WV_++xO(RyKy2~trW-*q@XW07 z1Ui)SkTplDyXP4L16ocl)4B4dGLd(sKZC)0Q#5+}=-}8`p)Fod)ao0RiEr*rT^u*HpOttzK7-{>5SJC}D*Ozv{0WZO!<6XN!jBDQFb zXA%msJ1BCxVn0)MxHUWofB&0F5C57Atx2(QzKyWmqd4mh`nAd@Yv$Dw%lR;NUPkV4 za^YQek!QRXM*lfahot8HdYEXf`)NQlxQ(1NEBcP~NSdQ5|0yg~h=xXJ(yKF$@!Mw8 z!P)7kZj*X&os68<08hV0N>4c@*^3-8MLf49e|H)p>53RHvHlN?&pv6+i{B%*e0+Lr zY}8##0%ky@;2#|(zRH>iwp$Zp0|?CgnPxPuh*lN&05X_y8>X+`!;x6Rq3=Q+2O;;1 zlQhRrhud_VJ`cY|t?gfN7?_@NJzX%-X<@P-w@Rsn(zYnZkIyN22iqw=ZTDGMg-n&* zwl|AJ?#)|^UM4;j0tQ}guc9%9lPv-{e%|Le;zYZ9q&4PQ-I342mxBN-Z8eDtpEE=zs7RRw}dq&^2vW8e~ zpG`)G%O(9?2eS8jw{wu?K@{z3kM?$h52YF+l+xaNW0b-`x;~^x4_R&Hg9-G27Qx0D zSbMNu)tz}b{R!=p=dL;*JItY$EJdv@U&AegCs1yOThKJ?+UV0XuvQq_+pBJVzF+(5 z_4w^FgJQUC?_@hdKqlaeeee?Ov@EH*Qv){Q`?&@E6E^C z$O;dwpkNQkw#l4UO*N9LOV-rNrOtE4lU-x!x~HjiK2w$-vct-CJ%wxNvJ!NnLQU${ zde9k&XEl!PUCqd9{LLu~G(G=`^QnRUPKAE`weurs9pg^>a}FDMp7(iS@kz7~Yd;on zS9t9i=6e^nt8unX2+FQiSlV?f|Cx>%GCW8{qmarU66H#`ijCabvd3Nyzg@?PeB*RA z)6n9-v)XL&DVb);s;9fv<>Qqwj(ZB!BS~_5jcn2GZugs}tG9_K+nk7joR` zh1__q$bHp&LFE5CohwT4K)WlwE83s-JD6rAm=(VTRyWmmFr#WJcod*${x}4@2nAne zqj!sKG2@S{%5-ov@IGTyG@06$>r-zJstW5+1wmOIa-YY?G{B0|?mO5lFqypXcB3jH zR)A*9qA(eD=`olT32@3L-;63g<{n6@Qh5oQhFR0C1*cNuoh5W1W5PZboZ!i?F5|9_#o{?mNZf_7)(sr_gHn%(@6h+8XBStRq-N>nvH3tb`NB8?5O+W1NJsD!}t6yv+ z1pHYf!M1n%WD|~CLz7FKXo&-M|Imm7@iE~?X=5l&n$5!}Kx)avbnA(Op1e_}+N381 zWvgt0;%nB+&VWT#lrZc}0GnRYyLx<<02M0qx0%*(l&ZCjOu5Y%3_SJd4|b(|Y?A3P zF?%{2uS8S|oknpGv#ssg&sz>rm2ep|6)YN$)NuA?=K8L2W$>Crd|WIFY5T}TWt5E5 z@_KSJXUYaRK{HNBT8|5<=SnJD5_k-6Nh8>pa`D`xn1kWgQzbE^4Ea3D{aOEWhfA0q*M4Nc>IS=1G9?))`JQhB18qsDzKm8>| zGD@rO;KfHFZX|})ClP5iDn?q-^hn}I&8cKkK3J3(!fI@0s+b@y-JFt3=M$*R4$*dk zo$An`pKUg5oT_SlFCgEa6=Zfl!@B6=)kCaKyXgNTrs~)fk=fU z`GM3<-2AsxQ3uQ*=~kj8F2J*r6)@i#3z$*(^f}vinjK$2wTKJJIj$8=>VPE69gh0J z7p)Gb_ywPYdG913oZ)c)K&V^iY1lB-?@>&Nn48#jsHujm3zOF9a6Zj`7V(~TXfNNr z`!rlbab+2hWHlYoxBL43X70A!6yP(Xy{;29U9wagbTD=&I@$K%n9Y{@gw0T6GRe63 zU+ufwUyoFe37ZVLl$q~JD{PW)lH?{_P`=!2=?*CaH!F~Pt4%c%mu(7jdZ3h&PyA^tleweY zO;t5kYlTWFppki(-0TB8sQcjZaOp#WT+op|dB+(|Lf+#*cTp+^oBBVk^8ueP@;P8F2&&=WPz^$rj;M(8Q3+Hn80#0IFw6xcnHbd_Ym{t`Ss`I|oG zxE~)|)`e*&5PZB?5XZj~VXZ^7K1U$A-CsCGx0S7bXWlKCkW!=In-%IZ$4JuR(9-IY z7}Wv&!&@Ql@YPEdLNv}gY?d|J+cY2E`&P^lSy};ww%t0zP^$u{M)m|;xcqaiO99y` z%^i-n!TthByI1z*B78ZXywK6Tbc=|Z-QO=C^Ok*BbJC7|;cN=WLxYy#Id{vdFRG?xPJxiNmgT3EkYHX9 zP#=rPM73t9JhBYyHen9X({SN%S(dNx+PG7bM>k{XoSuZ@^P46Z>HAZ5L(+$?Eux`` z!6+`_FK~4*jLvW#?sAV=tw_(o<>i}~jVnYMH%BXO#&RcN$#$sD+8tZclr!8Hs3C}Z zuVzV6U1t1C(HOMX!O-Vx3Pf>u>rWNdiR*nmL^cIzSE0tUMp!a^AzZ-E@5S zNouFl&4?irWjXw@>uCN3B=e(mxFhn+;0!1@$Jx56RoFB?O`P)CNctdSRbrxxy1^M%AT0l>-9U{7VNC!Z#VL?wj0^V z1lCMaATLT>-ejhUxW3GuZJ~8styS8+9`5D8zKRarakvLu?kxCRi~xlK<^OzMAnzKz z$X_Xn=fq%#1;2rNY-{ls+F_vd-#or`E)Y76oLX`#O2QRT;l*zvsSoL!0&*XkWkfw! zt{A4Y)DMp+22KcRy(UAoIuhCG7#naB1el1#ae~=loQP#q8)cdgh8R@A6D`+PeJ_N) zyvOU)r6<+ty!tpu)$2Ruo1sffcGdlUM&*8cVjb)r7b^&{1n)AX*kMCc;`nAa_j?6D zb|lKhN+s&-0hq;3J<`CB69{i-j7vMyOI+xlc(=jPq?}$x7Cw}^>xvcOuDy+`M+C2N zzNJ6<`4#ypIgHzY3DhBu`+5sJr@GXJH_5ut`IU(m9E_^KMCM?{b`o7m{NuWeWOLx} zL1CdYAP_={ApL(y#9gD`~4J&3}ehU;938MWVw z>ymhm9ccQwYQL-h@+s9*Y?d+LPgICSh-%Sn#^bN1Q07@|HR2K5Cxe8>m^?iA_*4pS z+DCdGUiJ-wEYFGVO4X0gu67c8NOqiwD=H4!xjyyUS@>2^R~5QCKWK=<;JZRiUsLz4 zU2($%pCEnzq}{%7HouZIKPS=1pk>m#8Qym~5K=jzaaobU;DrGorjBmkuXz$L1X?>^ z@oKD6`F!5%RMdW6V-wDqFA&5mu?815RsYSSe#PM|ROP>lk<@x~I=h#V%=YxlEYZkI ztJr(g`uI#z+?eTpFCmC?JFh^)UVWpx=J%p{Xc2VZD|Ik>tU~3s?n0P-4v~(2sJwx+ zEj7kX;>XiS|0}HtK5N1+_VE@hndfo#aH_&}y{XdmWa#{Fi%ZMsw?{NIz5NMO6|~tw z=Y47D@cf8+w^S)=`*``JQF~oucus^C0^kjT4s~50__e52nIpEI(LL(+?-MUe2tNc) z>@MM%*v04u=ORzv0W+t(BJOjH&`)}VN-jB_`Nl?x>CHes`c3l=^1Vmgic8OWc_20h zCZ6Db5d4&pi3j>uq(H1mfxxMnv>2}SO!M_G6RW5%4+cpfvn%My4g~RPoj6~Q5lWLY zIK{!=xSVp~rx|(Do_&|@Xy;uw?CQ=58};mk*5-ybyC7dK85Z8$T zrG@XwGae@P0g!EB19usnJxn1RH0mQLNFFnEN;H#>N>a|gG#2sz*6zJGLf|)`Xs_p+ z?C<~kV?n?`1>Md2c*-hE)p00yhTKH2F_A1EpL%-~(;EMU@FrStW zJqj}=qfq@rnP3NRhc7Urv1WT$o2(KzCPZlfB&YCq#dj?T_KBSHD;nxSEzv5QhG);`H@a`gV&(%WSLE zb)Jq+p3REM=51Fp7DuRmW*u`X%$3G&uM0gI0A8@r4jCR<;O_4^tft8gbia;Ps#^*Q zt;&{Qee@3^tBz5~Ww1kwJR{ogemaWbb(AuZAA7PHToipOo|*`+u~IEtPZJHa1J^6D zBode?WU}G$x+K4K)CZ2UMHmLrO2SY%Rg-ES{yGJn+j4JN!oFOV_RYRHe$NhItbCso z{zWDN`VwHJj58tMKz<#5zeX(Q@V~YbDPoi=oEyNFKbVu4v zECeM}QDDbL*_T4)cez5R5e!hi!sFCzpXW4o#xN0nlv+iV=2a;V`bf`=aF`*@A(}!l zS@F8j8TG}Jh6(4gDw^Q5`D-x~1E#`{#y2@6)k6(5mNv_jfvsjt^ob8%-$ zuN87iqOr@+D+d8G>KE`O>HDMl#kUJ?;{Y;<0Pi4HHS-z8biwgC$b`gM*2w97Q}_;Y zb-7@x0tqCU-gE(R4Amrb#MIXwBXJN}TC_!z+OF5->yi>n>`GKE$@vwg7-nFUG zFxX@r!HZ}JM8JQ%VF6ch5Kt2$2Qz3DkPSJBGi(vYvA{PzfzcOBB?AP@U{u2+xefbaDNt&zB+6@J^`mO*(GfDR&x#QpXVxWi0A&?%0|d z4b>Y_z}CHP-^wy~xj1z@zv1Ls@y@Wx;MiYCKx>*@sRYJK+|OyT=+S}-59HSsY z!2j#m&&GXe?jh2>`e)1Gp0c6bw6^E1T|-y+kz~!YR+fgrB`pk`sIjXv8)j z^QauizwHJSL`i!zYH_=gOZn-d8S>cH_+j|`wJRy~vM1E(Y*fZ@%?*3>WCo0|6Q`=wu=SLsjJ&?EFmr{>ha$+YAi8R1jMA3Z=;xx#H|sixcYc)YJN zQd$f9_(;LEHM(q6R?_e(^fMc}xNv_x$>_f82VC#;f5eS6w!M-Wr33JiV}p?4ybKX- z^>|OPc{LN0X3ZR820omi4!?Np+zayux((e6)7YPMj9tf%rNneZMB=x&r2yy@n}Z5+y=x`6N!9}SQRqjJq-U_ z1n0KZSe?4t^P5|lJdqpSDO3ItD=(mO{g+>sm4Pgqcb+>3QDZBP#(@xo>l{X{XE-Y*>E3Z;ur*QLsx*#SKTHRv4IfCO?+0xNCeficgqQ#ma9@`^vG_yCvALMA;UFS)lU2kudM zfj&NWZO%nw|Dj!NOAWtudu?^CA8)eow|s}z(?@=Qf&m{YsciwWiCc_!(JDnuUJ%jX zdqzA|Y!a`DyOOEj7yw|wT?iy;B7UZU40Rkc2~5de7jI8?8dOci+3AIeNF_F^BF?svslOQ7}(WKl7!>A2x6?O?fIFEmB0ylDHyc z_XCCoqkgC%*oPKHOgc+E+%d^=#oVTsYmFX<^@U6R9d_X5?}J9i?M|NW!%mEWlzzZ| z-*(4dB%Qr1*MGElia2*Fk#`GE|05$}z{oS^QgpAvRq6L5eQF zJ;UP=Aj726K$LL^rKeS8c^CHesIo|T(@p{@nHDobzGL}B|D%w*kCe@8YJaX9#5 zLy6%3x@YjjbHGSw0spDRVOXc~SJuAT^ju6-g9SNA^6hb@w z^kfAu3VXa9j54dJmNNTlvffCOt4y7>sNP@QwtdJ>qY=KV4KEG)qqoACpprsfqY&#h z>htx2qW1#T;!GfEQ(2iz&)=TRB3i^gCRK3*Kz2rVWjQfxM&id+u{ek{o`&9jYU7^L zh}GQGwg&NnOvN(p`9~U@WQb14NL{@)OTETmx7`pSeaZmZ*BV3RB*lB@8Pk#YDQgwSLh4h;Y2xUcLCaeHIeN&yV ziX^S>whK#bbL-`8)+2QISW?N%CyB9!GzS`<$b<~-S@u%jd*|TDZ?=jh00w8m)Ni+A{ilxapOGEUYl^6f z!+Pa5Wz*REU4i7Q1l9&&M)rD%bOdv@x#=rjWRP`u%XvS0^MdrQaBS;Hl}UEq1mLmE zizWF{g;?L>mcPi><0GeNo@_&EJf2f}0eBsh-rz&1m!dVJxTbz4U~s^QDM%qU@h)1k zO@|t*Xm4RYRk3KCd%lZJsp};O_I3V4Xt!XqEF{6c`Y%T5ni^oq27`mwTn4hy!xFpt zvxN<0G-Dl4U#ACH>KqM#v*@l5v(@)E3(p&w3LaZF&d-9nTMZ(#470>h+iW2VHa;f* z;fB;2Cgt&(%`*>*hknzRieQYYr8`d7-bsk>l{m4R=6E0@?bV6LLJZ02H>v_GjO#NK zo+d~7Y02Phl1maxw>d)BE}d2L5v#zbYUcyEGLRX z)aFO?N}>F8gbw09ah70_`6{w{AMzGv!{|tNSOYflcaphYGBe6gt}3h~V5rQ&4){;q z*RS@zW59uf5$*hvmW(*4!HHe7ef#cGw^0>?Ebq2pog+21!W#8vgnUf*Hqxvk7iz-FP<_lw}GBK!r`jMC1HVZlQoQQo<*%)K(qY0&)dC$xCkdH{XeX8;ig3FJ~cT z^mmyWYCEUZkKg!RKKA+4via-PJ?E;p%Ri=k!4*h;x}gZcmsz&O*v2%lA2eUYq*VjZ zV`1AhslhgOyJVgU!78PVRq2fEieEapF1ije{@R*XZ}}}MyEIL)799PjZclWvHrRga zCmZU|P@&f8V|1U|rLl1pDSn2()!?dTa+;`Fw=lJsHUXE^Im*<3eBb;J9!YA?+ zOmYbp4%2Sufv#J;(B8^=-?TSXgmHxh7lAQ;W|t5Pf~;3Ef!V?c1%khpPjoTycEr2N7xO zu=c`=SqA=GM7V9kHgzZBZ}`k(&@r=%qJ4Ml527;mRRB`K5yzP zpF>P!g*W&qV{YoV`c<%BssF_TTisGX11)0v^`&)SDI_%lV!j~K5_A#aCAC}uwnb0B z9m@=4t|KQ3c6K+d`lIN-+y--P!xC-174B!j?yh0&953MPF4uJYWb|7nvi+QY^FF)( zBIOS;y90da8OgUMvNbyLuXS-K)Qg?-=bliBUG|xjYGxI>GUiH)7_;UkS@JJSpmR$4 z66UfmWGm#exnzmw9HUi`eu&yKF<9RfdrLRQ|C-z=e0kFQd3#3vZ~^6%XW?^3E9zBa z=V#Lzbe!e(sPHx^u8whUNZk%#;QNjqSv4AP)Gx~%Kd;JGP1BXO#-g~aq0pt1^*ZO( zWAtOD%2?xKtN6r`Zf>*ZaXFgs*kSP$TAKs4N`@bs-pzRIIX#bsOI~;p!dJG?C*FKa zSXoB|^7Fv)aZkIXy^bTimZ|3Q_+}LK!k@@E1ptjK8m)v>+9bf(Xa1|u$Z@7TZsl*g%Q23pJ0#19!|T)lygH)Hb~!(3AFvjDz4Z@A#VbYD zd+Ih~lz&jBgv+%A2W2_60#g9j{+vUwfl5*)BUM-9u9c)&Uxc9@8@8_F4^CFr01zO;c;#l4DAAV7vO5WH(TmKY%5eVn6ppkg# zHrQx4_bXv2$gUPW;Mht(KM>T5Bd%uvIQ!P@iIDX|=8|^|$-GBcFQ&RHuwhFDtQoT< zicCr3=?Hm0Z|+jS6rg@SUi*76U7tn5AzDvNXtza|7z@QI^E%mlKZl@g+W8vu;9e?03=n8~T?+g;2jFUh;49$~fiHgDF=2J`L6&TMGyQ?@`>c zi);W)C*x6H#(sCp+8c0D!C!`T+e1B$bs$F`%?oGbL*_Fdti{Uo_W0JZ=<`|2nN&YP z!>kb}9HRK{q>>~BC_!MN8t?xBJwU?0Sxw?#d!noaw+7f{`ItivbpjvFNI2@Z%ues$tJ5xwKyL($w5v)P|ay?$!y^)Iy<62K-^C7Dv9 z8Tfl{wTZ0J)n!RnMJiGRk(weAiF>jbLp`PI%r&SR>58qWsE|scA~pksQV&%sW5{w; zMV6|f!q-%(DXDmvi8S&QwSYSw;-ju#dBJIdVjevpMQ^~rOe z_7UNE!u`T82(RYsvpIInUp$qk#Dyg4a{@U}r}^0RvyEqnZLy5FBWfJ3O?yxrNJBp2p*L!V=^Rq{1VphV$yQQN@>p^{?U2yVdsLB4 z$yuH&6^o^pxUtg6ge%Q_zL~$lDSCPa8BeWh-)zX5IjdQQt0-0@&}HTMVPyDbbe#jA z>Ho{i;k2x7O{*%iMbZ9WX6~Km^QXrTBeSBute|B$Y=u_FI(jr&&hwk#(`9YL*NDtV zW@Kz@LDM`n)HF$w8C7&sa~&ocikWi^Pdj}0@TX5#?~2r)u)HFV5LKVS`rnQ9?+JNf zUP!S1cMAto@9Zhz6~e1v5e~r3a1T5HzW`6cd(lb?;4?l!<4!V9CetpmabO3Ply9Yt z!Dl?d=1Ex6PDAfOG-S#6q{)snJTI|vQR8}N=M~kChb(SmIWdb-x%0C6tlyT>5oN)4 zNPsK;FzOHSyUGLB!(N}y;D>~Y9|(HrbUvM%z zhJg4yb$-q?L7u|TB=y!b!HZ|WqA79VfpK2yV1zuch~lyn_>ECzqLi*dod+PI0EH$= zrw-)7Eo6B7#ai-soe!xA5jJtr-mV~CAMH`U+v}r%avw-PK%7AXe+9-BkWLIUt`Q`m z5!MFofW3z95Gsoqr(G!NdVqulJFsk$njdWJK`riOrW%dAb8DIw=An2CBOgQxYRO%p;-f5JwuTTTzZxHB<~dbR`ibCYzeCX!bIo zf&ft_gd906Yl!l@5b14&yiEq$P;Fn7-6~WS)3LI(Pw$*^V7ch^&B* zmkk|GU zPfnuebX1SB%0Q%{!RYm#ss)OP3NlrRMuui-pfOQw8R_)GpWtefq|=KKkY%or0q;l2 zNv0z?R20S(2dhR!)?rezlksVu@~SOMMALn%!}ISoJ+K)X5ls*64!#6fdv5?2`MhD< z_)JXnlZ}nV#l3@pZP#O?*x4)a*~}(-nCG|@g;~@B*9b2WUN8KL@DbrNX|^brI>hm9 zK8Xj)_JAh?`RU5fB);&mcnJJg_^h6T(K1PA2T0+@B$y?0vE~OOJ|$mzb~=zZ=<-D8 z^k6dHJw9(0mdWD9h4|Zrq^AaKd|A6Uanp=GZ)lFGI(PGIBwxXrsb(NlMEWNenEv&8 zM*;^#Pr^2mLcMZqXTtCqBYm4M@e2MVn)<-2yp9t>2)-qAaZank1vy5 zFX!5hmR>cBr#ZL=mpc4WzMz`6YStvpDiA$WAdj49x!+xs?hxfXp;=SW3Z9iQDB}Bd z@s{fm5YTo@6iXFSqVxs)JX$*MJbY|CuO`wv5t%OH4Q$Qea}Q72lcmw_b>S-E1R~E{ zgcoC*rZcj|gH>R?Nty!BUb@J@MuV}(DjH7ac;Kh<*&)-p9?;OTaVre@AWS@oW3m2l z#1pX+JQhu69O1i@VaS^~b<2!rlfR;n@vP7& z6f8H$_)%eRAr2f@q1oHf+*KOdu12Hrf}mLPZG%)B=En+I)3+2S??!lGp8U0ryig>n zt=b+NvM-)*P=AU{TV^V^5BDSDY4RH zwQ9Mps~=E0YG08`4b9D3LCI1}N-&9&3X4R5E3wxIi6w4lG?b=^U`F3l5>-0 zL}is%X{$ZYCi86eMr-g_AZPqIv%0al9yRlk-8#b*PD^-m-n8GUZk~Emb`PlBTeId-fe>(nPf6U zbFZwVLNl+Pn@DsG+GjI9%5qc|FUW%zFQ=%K4bh=qkS~yixLj(^P))|?6-7c?^A4zZ zf~HtjM(@mcaXwR#W!*1&*}TWNW<@ngsAdNjPjT{D4jla`729%&RZ|ZTi@oJ zkj>w)BW?8;5qEUqss-G5|z<$2?wxrn&u z&pZong=Z0WF9uTX$SMR&AuT(OMu^{WN z(M-^$XPhW+`q5Rj`hxC!ab7OfBS#^k%68e3-2L@@AZyOGHDpvT5s6I{&r`gdPCA5W zV&s(<1KD93lc+kc+K%q-ncF==WTKY-Ug@^3x%c{|B`Z`ivGiz3_blZD5|Dm#AzutC z-VO328AmKVAky3SNaTMoO>_?_qJ916i&rfx7Scbd^Z!xy9&nOe)wy`xTRG>d&N)m^ z?CGBFp4my8cW1O&o3+Yel_ex3Bq51K0a*eh5YZ&dWP?q#L5L(hg7N#=ARCNraKJX^ zJwN*yo97_gF#FEA)w2ow|Nq|ZbahpA<+}Hzd(QWf5Hz!7HUp)s%5>h!ZHm-T)j*wS z%e8WA>f?cE$kKV37L?^mVZHx_V>CLc^4&rFgR#RzKeqvIy8P7Tm)xErt!MtnxlxG^ zk8_d(+qFwSyZWS!}1Kj1@b=(cytswF5;_l-fhIjiU_h#;wxp#5D%6*vo z1os*4bKIA>ZzL6vHd&vrG32U*pQI5q*C(K98`CgNYC<}3w~wEMgF}v4y(GcxTR8%W z4}BbYIOMn;!x}`jg)gxu#{-*mn}eo|@tx)XmO*_qG2#<9tMLF%EQf<8D1J5=9}d{a zlZ>$lXntMfEa`*Fug3jlS{=;b@H`U3G!glmHVk7xj2R+eJ=;y9CEf_OrAlTDGBAuj zQD=#WzucJof-uUnl0w%$I6gi>#=E>QLuQ5UIGr3PcU-lx`b8r)_FcU1n0vppwQ|?R zSJ4f`5I#7kUEh84MS^h;NIXJXdlwdJwVT`nRdUJIgn#6Q6O9vB3da53oyRG0t5HN; z;V_x3hJ^nXH4Xl9o*MjdO5xmsD2gfwqhq{5VZC8eQ1zN{C67N!5<21n<*!gBURe91 zT}ro2$?}OAdK`<9ub}VR2_}nBUbrYluG{jV7mWD8(Ss-4+>RgIfAm^GAlDFnVe#I6 zUnDz%KG}cq*rDY+cQrcm-r;Xuew+~g^2+W)(motZ}*n{^>$kvjNb7^ECTJ`PPVAiTkub&~Y(iB$T; z>&VHMeW;uY%OAKsTl1X3%*e!+dnM`6L)BuY@{W_n6Pe73hsE0KuPp!C9e&~V50(A3 zzilsBL0W!b^TbWnM-B`6_3y4^Szm-62`}{&XK{7JsU>l>!9rp_OI7w6niE?A_wNtW zmt&o*uVq0qmeNcfw)NSmi4C(`isS9Y(bhlKDudoqtF_bvi17Bb7cR&lYA~ms6W~iJIxFi_@V?&n|&sNPw=M>GJyL|R-{-OMD$1%V7bW!=%%al+ljG28*H<4=r97^N$+xvFW8IxQyR`*d zH{wPd&hET=Tkx6NaLe0pn@7$}-Umm3DbD_-q-iiwRct4xzXI*%i@%UdV+{0Hmm7dK zUgoxdMn)`Oj2}G!8tpaQYq_VmH*s&{-pTz6_df1J;Lm)V`!x4i?u*c3H?5=))SMRl{e5#yNR6pmJ()n~D zs}dz|8-aVTPOj9~enlT8&;Qk*llQIN_rllK?n~*qeyT!v`1)e`+c15yyuWf+T$!pg zG)ogSQ_F%S8N&Q#%~I2*W-73}WN9Wjsa^1I?ZryvkKqt;MgL)MSFg8g1DNrmV%wf! zxsFA7*)|n$ z*cvhEE3saw=z4;&gZSz{g?^r4*%B98uF%MF*pH#I(hFgI{*qOOFX8k?*^r;J^`8xz zpuT>}rsR~Zul*)g){tGg4Zn|!==R#5HrbEtZ|EBcU@zX!9UIoTO-k4Zm>)C@wzHav zVb3i{ILOM3#l%cbJf~!XB)uMXK(RwlZSCayBdv0)*~^d4nbyMCmU$v$+(7b57msW_ z-r7D|UKk&*H0zV;9JmAZj9M1K-P+Pgjl{5((%4w&){Ij}sstr1qnr^YK$zSYVjYe`D#Z1Q{=RM>b}@8%6vTw2c;{W>{Co&%4Q z^Uu@;Hm!uIi4`=nyFdu-vn6&zpZ-i8+V8I1$zj(JoH|~g-KGK261#YhyTndC|btTu#&R;x}>C?Jh0`F z6LZsdmkJM^IB{avtz@qM_FM9Tzg-@CyGD4KPpg^M^hE5-io&bB3tHcx)Pk-kfGY<^ z?B!dIpLi%+ytBJ-;-R%0ZrQau+rN2NZ$jSc37OZ5R0X7-XdT*h&!(`%=Hk8TFv z?e*N-x%aZz)|a{8;r@{O0rz*@ON5dpnI$Xa5^^iKkGz^ZN!~?1On#GmnN?6m2%>@i zSvqB-kKPJ=W?&}nG1O$1aT#~wPQQyosx!R?%jJw>%1&Vn?Ai^cPR`-hlHlL_Dw z9vBN**ds|`jru(-`;w5|tJ6=MIov2p0FuN>p}D?e*u#EO?f2NgGhFcSG8vo_NQEWB zPZD_vp~NDFmc&dOa2avnrrBr3HVLH|tFKQipd@n^2LS_iMSZ#mc5OEJUk-sgXzKhXvfohG3{8jPh~fk zjfI)DKh_PA8jffN^}k7#M6K?o+r@v@EpTM0q{}w>q*)J4H5LRzmt$f}CWx@CEW|A& z%aKyxNyU;V%e*YRiYVwr;?+QL^@=5E$fHRRWgGsv-VR#;pAD=Og3)nmC`8QJz98zA z9dRAGji^RtS+puO-vvX3@>De_fw$x8y6eM(r4rEvQGll|@$$c^S*@&KqPt>(sA&p{ zAdJvrnRqobtHN=JsFWLu&`iNI9TDA19$A{wIr2VuJ*A0>QgPzr#7nu*Up%=)1zyZg zN)3%@HBlgarv#>~Frtu>BJRzaGou0`2$v;z{iaMo{YoGUos=o-ibg*s2xjC`sR0dM zm58%9n=U$WpCIlQ2y{L^AnS&v3MyhRD^7(F$;+n0fWni+@d84-X}2CVB);Uk0SUdBmkD$KN6=M5ED_$Fypt3RRTHQutMM4|;AK!) zZw+G>e?lK2A7c4cZOl(da;qxC>?*LI1dB(?KkT&9q|_`>@}W#4n{E6XPBLVFbAF_t zNS@J5WxF|}+X&*L`!`&KFk4i{>bjRqi|5n(B;$pSN^;tM>SCgZ$e>|UKXkcUeN zRsbCyZyoRPnNK|Mz$YGfIZ-_|U9V+SSDhQlOk{qn%P--WIZR#>5z|F{y$hRoVPRO& z|I1%`?6EIBM&9xO?yqE3H5-={r4-}b$XsUPM^9o+_>*vqH#{l`kBYreE2?Ty3#~9D zCQDmh`}AXYkn?hC9I#sExjo#~j8AYHEy)VPc1qP==jTRcszHR+w3TL9pq*~qSrTSI znv*294}PCT;H^eQG6RB|CH;|RQt(DT(J)OSS{5A{x&FMtle_0If5FnS1toNBLGZGk zAyM+F^q^a=^m}n?x>A`=Jk+-=#=0)r zIYiW#B*)0QbxEdbIg^EMD&Wb%Ud!-IT0KJW{W%FO*Xw^^d;c`u=6h^*5f} ze8<+c#XFB4y8FKU7vD3qzc_<(ScHD z*3;DofAHXgxRlwmM^6n4-hOn^o^&q*Kc{LB-v8i(XO@zhRTBRhBhl6WkfHUq2>x8m1EQJbejQDJ^VQqM=>)+I!Iy67mnw)ISE*zYky5YdJ*Is=6 z+Q`1SxqWm0v^X_0JJ+3Be8UJVZpeCck|@;q4OGw6FkuPKtG+7l!)7)sNF#yWZy z#W9$E#L6t|>m;e(-Fh%%D+<+*T|X%y{XZkJhAja}h*Uh^&H)a}*j9YN;2&EAB(Q#Ke!fx>Nyx22ki`N`WkuBNO4M+bP|tHEC-Ag)d=cl+sv8mngP=(vl_bES~-;}$B&;Q zr!IzFx3qs<5fo1qMEH^|1q=v-Oquy)SF3FZrf#2$$%ApmF&2F|gXMt%RlL5WDb?QZ<=rI$XOa(^#XY1y8kIhCyM=Sq%ddiH1~rKZTKl>6AF4?leAV{U5g zpW{-~(+$rkXFNY!gc;o(Da9(o{rV?*iaf>b!t7uPUWHt3qOIMSX0`0{0_k-_X7eLp zBSSeovjR)TNENo&K)Yxi!zv$E^ysOkD~&Zeo^?Q8_3Ze{SZjOl^-7X_qbcXhk~pvE z6Hhw6q!!e?FG_*yF0{l(FwbwK_lX6Ayxt%q=GDjVY`tJTStn%hz1gTuz<@JJU|Ii~ zGiMh~?J?W8Okx_rW`8iLnG*g?3$Ik45=h22!5VPSV7nlOa*iQWZs!hg$GMxi2f5dA zZ{|M8eTw@G_YLkvL_`{_qwhAh6ydk(vKLFhN{6 zvlm>>#b-BzFP~k3oSa`F)D~N!1a`Y1!{Hxwoc-tS`s6vcB>yRe%YvgQqK=19>~rqn zyrbOqiI;z32is-%NOn5Tutxi<;LLrF@pV;@>3qNn=Ar8~8y1aOG>)~EI`jMy)B+^` zfPrca9@$;JZm?y;#`5n)t!g$MH{$B_^!8~oUtZX^arO2zpZjL8dvy8uJtIH5d%Rt) zZ`O$(mgiwR*lPOzi$6YD7k;C5wER%Br95E0_QdKEi=WY9TmA^f3WroC%^7fz6EB?M zO(d>8n?z- zA9Qdr03$Gr!U*ieI6$P~801kqY)7E%rs0P+Yy!*h^E5K_h5>nL^PO8xJYf?hrR2?+ zcPHv6{Lw{~R}n|IXn?~bk#y~fESOSu^~yHV$4PmtKq}5evF`hn2qd2sscA@(rkFZC zo2+}@KmObmBK?-AZn<;wUB{?Ix6B1~X?$d^l9heystuvx2ZH%1m! zl3<-+q7%piR_l!Kpy5k6mNkPDu+qtf#Vbb5#^RCQSUeWG35Q5YTc z$BH|Od&#e?-t=JmqQbKH)HNsHxLjDf)8|9yst2!fLf&8f6V`^m1m5s}=gMHkbP$o3 zL~@zg^NcEHShR;BBBW%;I8q>51S`!NgKk3jGl=3LP!aj-hQ9XMspYNyy{T8MZZB1q zdc}-4x3{;=e|-Oyx38^u;KNs2@yfAp6{a$yi=W*xVOwcCOG;Z;YF#H)+PcSfUA|E* z?Ju3&9_>AJlQ@>1YyN$GuIy989Q{&uJk@_wX0=gpQr7x&LvB*6Rq8;kE;leqPp48xXbs{~scESd>j%LV(aAh0%sj)_hvc@~#umc+;TK{d8QOOtugto3t` z2c@T`MmJ%Xy59=?bkMFYW&b{~)*i8f#gm04UGa_XwyF78&&tLi-z_IN4#m?ikoS?# za;xB7zKnZ4j#t9DK?C;IQD0aA5!2zQR&z8Qc0~sERF#me5Isvo$nP#O{7#Eb5`Sii z5hWyGNf^ZPS*bRQVMSqq?>BMOoyns?KSI(;hEkls7n~F+xJjl(=0-*~?CmJ3lCPyk zXMM!}X&x`JG|z@D5y`T&pD4-?Nd4MF^Yyu%TNm11zCJ!N=?juZNmOrdsY>c!OMy83 z>e~*g#J08G%7FuK3OruGtT|6`1kV+9kp_aK@`5N{uc-nr6`afJgSnCEd7IDiY9W(v zkVsN(BO6WmDWlZ5rP*lMs>Tb-=e5G4BYtInZ**JJw5G`@s32Z6(!QW6Zs<~z_tu`1 z0%orC9ttq9rSLg}v&6?erjen^p#Q|4a3?MZEPfbZataDpMklbuWAI+W4i9#n3fj&# zZDDm~sW_QJEi>1U&B@M0K2z`3y@R>DtNoH(J2=(8tn2U~k5bW~v2kv-$xAiW5J1)F zf;4J^*41>ep-_-e1he1a`kG61WBS>CBY5v zxP^4yb=O3E?I77 z!9F%zTNMkTHWC&hb;d|}PKD+u4fA&S(ru)%>5f;d_|=J4+YPfy-Aidi-1Roc?$L=j z^m*xKo}L%O*OD=WdK3Dp9J5h^g^e4Z-MH}t#_nJF?BT=D9=nk5V4PcqH_!HCRC0rv zv;1`(hUt(DJIpL%1<}j^-Q^h8RAvxJx+=#B@WV1`vRrDJ4fwJViqA_j->nuhWiJN` zKYVyxAhY^burMw@>G1pHG_2bn3E%}eSs_y8Qc-3j3|&D}rD9|i(_x*zO(ryx7BEZW zWpzqZnkN4wjgTJX?FETSH%o;7A1N)D(^6%{brp7Rh^zS%@?MbObKDNbUetl}N8vgH z6`12J`+$K|^t%b*T%(6Y$$jyhF*L+h$7WnfkRiZEJclKXJew`3DgKp5=dPUP(`q3b zIdgl9RK3!O-8gog_-Jn5oU`^9DX^q8DRy*E|0BdH32y>-L6)=kW?@arapL%&8`Fkv zEgx%b8#Q&a-E>CyCsZ0maXF5i-~qmA-{8cOZYgf8d)MR6VTgbyxdWP~yD=Uk@mcxP zzs-F9EO@LZhGTC-c$S%Uqa3vs+%exSh;dSS$SUqS%!HZbhtv!8^)b|h1Y)p`nS)!B zzluuPY-u*7N_Kg2*VM&<|JbpWSN>SQ*6b*jwsLPFCyK49#nDW1cfXnX?m@EYHCHsA+EDoJ+J9{L9oW-5{XF>x@)hnFcP;2l zxEEI9!7!T`;be!6wqN+&?P2&akVCvz1{VnZw2H(ka`<2DQD?d1NpyE`&OG^B@w1iD z%4fx_SQ~!oy6S+}tV@w7x>U%5%F%73F64wd+hXlM;S2uWlzcrS{OJ{$d_Hr!hcF1B9Gv>e=VUhM`NH`pz~yS z6G^BUEr2nSa00Uz-HDdO0qCvHI=S7@55O)iBUW{h(1*lhh-4`KgOZ8Nta?m^zihf0 zWUOnYMmj$_nol<*(G?9r1x03sX)llkDeLNirP?Xm%}NC`%BZBTipRdD@jXNXsF@3u zEFMVBj`zpo!sv$4LX4KSV)XYo~S9Br;8yt|!s z+>Z#ut5~wtA=@K+`*!;q%rSJkwR<|-YyVP=R`bk>{kNUnmsVL#_b_L|=LX=-9~v^J zpUHA!LP1UhUz1@74Tb?xd5ChBbdDOsdulL)4Ag*h{v!EsSP5pEYkxkqc`)i8?Qgom z(tS(yZ7K*USCm#~>dST^(v(mS^Y}=qiPQy#Tqr0;q*k($ZWszGc;cTe`GY@_)5OJvX7WW!`_){ z*2!o!rOKh-_hT_IYNKNfkGR&%wn=a_p z0F&V-=}bbwBM+Kkb6w-s#|Rm{Ur!arCkvBX=JNT$)`{`W-OPLTKCqg-^wR7qeH97E z4zKHyYHFxr&qmO-ZC3D${?8-+@vG$jS^EcuAI%gq|77G$1 zAzR#wtIa$eeD$g~^M{K!-&{QW^h~Gog_Cdj`r*>eHv`W=4Y!&B|@buh&JW{j(Dn0sWFx30_o)l2#ZzHk|LTF_tmtJ&E{ z=HQil=;I%k*M4$z?R(Fv*RFluGVzIn<{JP_dWpV8-qoaQ^ zac!${^DQ6z;Df2zsbVIT$`q$&Q;mbG^VRD7>cNQ(Z-^bQl&*L;ZW!YJ{Kc94mjoFL zbLsjlAM%2TEAN7Y#m8E$fJ+8z$S_%LnN-EIvq(}$o=ymog;^J*8 z_|P{>YyY{jvU0G0H}Ssu)vw;Z@$M(CCU>3PG`;o+Y;#ekbCI<6Rk>P2+bB zzt{e?UOzt%B#oHKE{;Hw5Z-hJY<`3piyIR11*4UK`8#Ob3Wp!v*9*a3*q_-hW#e+G z-taTkl$F^UQ%#L(wzp%YK}=Jw_bnrz9wE=<#+MeiO}E7ZJ47D*p}-C&H_hG5Yl0%% zT9^=aY@Rr}DVV6`t^>nR6%<~ibYI4mR8^4N-6LKh zjj1Hd$Z@lF`pe{taQ`B-+3gsIZ!}qS9gB}81a4#AzBDXx!$>?2MsSjt4>#=>m0kmg978iO}DsHN&*z={nu2Q!Oy_j${?1LUX$2z+Qe(pH1nh($x#8JaLpv z0a|$6QUzzyxu72Cec7EEnRkMEmy8{%Rftq(X=x8}EJs-Kx$ zihWy^P2beTVjw8ljB_40(Dmowd-f6Ku$s6jL#R&~-dYpdY`ZdDu^7KOnt}|?0#V~+ zL>vhtHlN^RM*{|=%#yR9aSw4n-^(jz$}%xyj#5`3uBJ!|!ZgZCw&Y2Qn@!7#fP?KI z7x;jHz@=F2WZ1DOk?|ywDN|SW{9G7ieNS%@bb_o+SsI}K^r7C5+7lFo55DhV47^ZgHiyK8-}o{3Cs*U%wW18 zFd#!^0lDl{A*K6)H&Q8#dV#NHcw|bZPAW%K3+`E0krW6dzD4ppjX?l_h*FIDNXAe} zcB*A4ydZ+W(CrKr(*iFM$q#G3C=NW8D7v7Es*$IB!GIawPzaT5m8gW*ZO;Y)Lv&e` zd4U*?stFQJt@xRmEqe8=zmlSe3u;;b54-%4&M7)sx zuq2UuLzbl5Y%N!7bfebP%JmbnHh`88?@tB3o`dAFL6 zuV2~HvCYMUhwp>!vV*lJfBQ1;`jrC-zKsAn?F%5&IaYUYG5C5{V^u*XmJzn_><3zF z6A=v0ek#oY!X2LdAgUrFAD;chE;FK=au^TzI0O&8#$q{mgXXslO^8B2KjE64MNQfW zQhLiqNnh+3-bCJwBSDXJ+@LVwTHQrM#0|D?6ph8M=}i>;FygfzegFI4|L^SI7ryWX zLY}zlswb}c{v+pX<-uW8(^Q8ig5&7YrfuuTG5m=_5JrNj>bejI0Xx%@j%O;K=1!d= z+^Hw-y6f-mzMJg3<@>kZ`n~z9wr{)o>TTN-o$(!L@4pUK_9UW(BXLZUk<|^8p>ae8 zw^VqgJur+0XeKqg@xZP22VHljIfyQKPX2U$Y^-I}`>D~jE&fO_Crs&b)SE)p%5 z@s~P3`mRPlJ1sAgm;0^!H}fsOSO2|KD>d7>VdJ*ONEn)iRHR*TGDY<4j!o0=ethk_ zmPq1B*9%w;_4Aa2cdKzn;jP}qJ;FWBy@&e<_dDDlgS=noqpw!PKw>1^!{WIF11^c( zB?`OIj0P-SJgFFBS;Esy*|Uxr$c#ijS*Rti7bRmnGZ>Z$B-NHuLmpCrFevQaAQ`{G zr^c2Vzj%I_G{k~p>>T~%j}-|ez&Whspg`pQi<$#AjHr-?@49<31hl84swGt^sj8!z za;8|x*mfzX75kQ~dbQYnBLLU6gM5aV2_FuhOC)(X6*}J&R1;BDk;7kOcY8v zArzIFLCbIrUXlgXm=-k=W6H*~?!uSeF)&Tj*zHU$m$x663iXQW;`tR7&+jUwhS6D6pShAXX<8pLy` zVBw(h$X3OQUY?I*TXpo;r_1@x{VGVeh-#T{!F8!6QI?>2mn2n!1?&kWw)*_JuM{S; zH|$KOJ4=&?^RCVQIoUl=jV{+72PGN!tqWr$b@W=!|87!Yq27`w2y(EHBKMSwa zO{ix++1pI-+RnE!PA)ViN`;_YneMKvkW95&gMUL!{?}W3MAODnc{9v8rAfbBTDflJ zMnrS0UZ8Ile}TSXaLm=pa1g84ACg|i!;*iv-hO9Yne@q%L7@<=y&tD!QXwOzBGyy6 z3gyip=bMINBP1GW3Tr=n9jFV0qxDr692v{ezONV-A;JW>4X(w5 zFRp=%{S5TO&0saJa(lP~++prG^vILkZQPwKGe4-Jt2F$I@vGXHMz;^ERoQfkz_ini zaj4rSaR($Sf{G=;&p5m`;4!%@o+3VciUbaW#ientiJM2uM2;CCbc7=ZHX*-7G%}zR zoPaHq<|sJ`x44PggnHSK@Yx2*68@Ex9H$bk)F`PEnj&PLlI`SoueB~Q?hS5yZpGg> zx6#}_wn1CkvsXBDB3mF)ie4^kCP$@>qyxS#})-!qDZTZe`R`K@=oE6M9# z-$w__Aj@*Ombg!0D@>r;p}WS6QXL7|7%5v5bC|K{rXX2J96D$uG&Ji7pgyaWk&z{J zh9zJ0(1UKE`^8YwV^+7*XjX8b3150eo|#5=Guh(tfy8Wt7{d{5(6;?<#Dq179B4#U zOJtSGEc*s4!^ni9Xo{lCVA-mHm{0)}VTyBm9L>&@SqhcF;M>$zSqGMw^-$IWxOw8LTF%UsMTF*|mf^adr&vnQ&~6>g)vM`vIEIqcupMRoV*{)~ z1>D1#Nu}8n26A;$Niz8doh4<^m4diB2`wT?{s&i*oYJI^eob@{Yl`QQQGxP^Or9vDjC14{4blaeD-@uZ846){x6Jpr-)+NMBFF{Rd!uJ0U< zPMh(RR=6&=h1-wF^cU)7Ic8{yRk^{yb{O(u2T4(8ddL`Gt&CxD1EU< z2-X8&2rXuKGgyjzuKSnWRepL*miV!}5gH?+Hfduyk!A2C^$bCj;bMWPMsyc64}ly) zrgrIk$L?#FoH})Cq2-@Cbm+(tYt+>|5aZ^LMKp;5?Y zLQM@dNqCQ!vc;7Z+y5?NUpt|m&O|=6EMA3Us3`8CUpuC2I$oH`2B9EWrsu|CD$smM zu{0grU%VJWaqLjnGbPWXxh=9|mcD$M=bw$MAs?T^4cPcNzQS{xgU3YM^bC%QOL3CW z4J#^b^p+5+mqk${kbo7NG#Fz6=>~0<7mcKBnA|(v!CYf7;;zh$r)QgMYt7l&=I2Kv zP#hpY{LoXiz)VdA@Ki*QKZ2uL9_XRk{jwE-nYX_c)&=|tw)8_I*-#K|oswtLha^%Bg>+2#kTgxW`unU&8_2<-?uP-oIG=6 z>G1YzRngGJBa261PKtjxe^j8Ajm?E40>5V+!#42)W!66v%mI#D*Dvb@76~FB zCN&Df+6cv!&c__>GSZ|#L6^&@YZvOCjOH8iRPK8YxqipvE8FHkIO z9bU?nLLg}GG!(_qRe3q)DJUKCgw1Q74YGqw+nyi_jw^~^*DVDkkR_8_L{O6;vo*}m z9OE?|?D2z!t@5B16+Uo^>7u$l%NMqVVAnK+R9I~W*Nt`$3PtlWIzs3e5elXPk^nlp zCE2RtgMQU?RgqJHqtX`UG1DAqxIiMd3;jt_X`NC~bz%@&g5ra^aC}`D4~3BK19uP< zoQ3& z@ixe$z(DYC*mf%|8y6xcn`27U5q}@#G40)26`v=NY4wHI? zq$UoRJBgi*!%-LdjxKlwWpE2z@C(YFKDihqiCl=x5jWGsq*+TbOh4-zgs-O46%e$I zg>(GJ8x?8o{Wvy7PDly~1^zLCw;Y#@gAA|?Mq$YR2n zDq}Pk$%jo^%oDBUj5Y%$nl3i;&FbW?v94W`&8?3AIz!Yq+-Ug|qlH3f#nz7snPz_b zrhd6R;?UI8^Y8Xe&%ckBYD*K%c%f6xG)v0i^rUGPtwl@Uuat}}5(!>c7%jlg;o2#8 zB(}WfrbchHnVOwMGCThC>C-=^kCHcn7c|Y#w86ERW;9{&nxrI#-YtUvhn=<4Wf>*w zs0EEdA~E5Ps_=(-&(Hbp-J)-Pb+lFCC6eOn5`rYY{2nBq zA)D{z$(R845fRkzuYCdBF>q0+M0T;nYJpTLU`h#nXe!!jq|6ZXT9TSaj@d|vOnE=| zOWb>Y-ad+1u{bMQ8PXjU;C13-XfDu60eO+wkT8lRai%c}Edbgzj>90*f4Kuv-0#iE zqm)I}CJBqHW3Dv(@8ChZon909s@T{Bh|YGSGAZ_0Tpl5_BZ>T#XBghvyr&!PTP*O* z=j|}0{PdQb0%ipftFp*Td_ujUD;pQpNU>x`Qh0Shx&p6~uYaAWJg87XCFHe41smQ1 zpOOSpJep6NLRytdt%(3075I<3$15{xy{g73qvu#;?b{MB^AZRc=s4TJs&0^H;9~Cg zb=@Pcag8r%AdM7RZ$`y3?@6HGK@5TYYgIC~TC~!-tExh#C}y$}7__{cvi~<4_(?_^ z5y^4r9kRc}loi)iJDu{Rk5$0+{(G>WD@En(DBu4AWO-qa)v;XzohsIOzA!V}i!0O`7jo#t3SsT2QC^yZNuex!j zbeU;f^x*2ugtdLT8@+4UPIr}N@VlEBJF)R&6M?z*5 zH;F-s1vv6L5X|$dGc&6*ZwHCo;)QoPS*My>`%J1@O}&cnU_AODfF~5=pd=}j!Xwte z%a9yt^9`%3H>?tM2KR>dU!(jMf&K&Rp6pCkQ`JLuLKJ5!hA|;RQ=q)6C^FK|ifgNQ z0A?#YaF3sad+Z`lV#13kSCWJ>7B%F13v@|9bvtD1U&UfcDa;0{ye^~V?gS-}-HkQ6f2}@T&oJLu_ zOp+}Tr3oiC4_h_CL1cqr@CuhH1~fWLG=_Z#O?e7-fNj~Ij00c=nH>nu!j1(lJy>gS zCJTfpJ66&Rknuce5%MxcqJ(PVmkgTp6knxP_*D3f##AX)G)woGIdkp%zL4X?TBb~C zJ+GJuWGwK_y2x+hYtRJh@V}obsS$q>pVBr6Bg#jzs*BtfgxI!YX6K1v^Rlc7n1uXp z#eNfPQkqK@wQNJm3zAy!U}FVr59nphj4qbUxHu-}MTb^0bv!p(>WXfuElWr@q(8MK z8NCtrcEyw>MXvD6q=+Ocx(-(Q3n}Ffa=gdqX+Sf=%kHFi(|s48x`*E5)fyyUp`?^e zjZj2s7NsKPvsocWJ(}eMKD>+Gc9`bG96iC?)LEh~k-)7neL_6aPz91Byu5kAQ;o*R zZkPI?E3UhqE^nqS!weBnA5&!ozQj|*pktGC&jg(qt65E2Z_*M`LhSC!3`yfW?L?4U~F(bZj=TIFyNMv$%8QJJey?-4na8wiScVQYZw#U zhwz(dgEofDd(oK!!L#AbKH*fswM6mAvTe(s!^r>4=0FrJSJ>{0Sov~LgJb(FW|Ov5$qtSOEv%Kxjv)}`e!SXW`IiifSZu7=OC z{ZA(QzKT1aGd0C^hUlZ`XIl)Q!AeX4f=I*4P4EPplPt6+CrOcI6l!B|!%2B(0X)Ge za&ACiuWzSpxDV$k*|wJs!`(Ros0POpgkVz_1eHQkIGu6E;4am!1wV;GaKUKrGi6^% zDUKp6n%TF=@C^q;L@Bv?M>5)zTUBbYb2O#EN~JvHq2msNeBih;!=T>HUCG_bJ;A-1 z`zXf^7)=jmLdn&Heg?7Qkxwc~9$JSSW;_&fH!0;C8nVr5SRI`6K4F9Z^7kamD&YXl zBm7RXrq^8$GY`Rxk;om+lLW=XYO+$sB#GaZPAa!Yh^@dqGo^6~k4I zH^BI}olu7+ld?etH1{jWAOR-sh6a)07tMrU9Gf5hf<PV2|II)YyTZB6yPFtM)EmQ3N;e-L{C{jv`(jnu@B|M@&sMw%;5Y zx)++p-k)1(o01V#bv;$mDX(Y)p?4`&!50!HLGh(Pv{P_=1a<2$w*1d@6L||a z1-%d>c5$_dlYxYOaRZ;~fXUA&_TwZDE3?A10u8acu_=QYN~JKja@}M)U;d@IR*tT% zY$K!d*X7I8g)yV^rMLOc%7!~`y5r!H<9~KVe|LlYOE$arx^k`j+Q_?ghoKcLOM2Idg^d^F)J z73)25fVJgvHAz5=#dTzc=CCLM^ab=Tk)B$6e(ia(@xlJDZ3S~Ve@U;px#zF_b9G^% zI$4=1zS#;}kM7?6Xlt5GKm8u^rkDEP_(uO5r*?$10v+wdt=#nVbiRF?9xbn|EEmYu zO~FAHr$7ClU@wWRueTGgjJJ@ODj_EF2UBE;pGGoIguk+(drLCHsxtOO^0j zYu{L(kuJylJXxZaC)&PvQuVimp|Qc4X?c;GzLPxD%CG${;=7TVd~59k$}411lSI*T zK+Ji<%f$RO`N%9f?L~8=?%WDC`RSjXJ`H}ztKnTQaMyD0cGCN7gq-a68r6mrW7Hj)p&HXO-8SR=>Bs9|8%TtsGfhl( zhA)v>J~MFwPt}~1FomemPf~=iZUAi{Oqq-e5`)&V5?h~9#C1E8ky@c4=(buA0?`yykq>N7 z@4kKup~v34EK1VTA0ZFkse#^K0Xxy3X^3)^7G(M_nxj*Js?;>{BvZ^)sN@70UZcbp zMAHqjJb$gPE51l<&-5aqe?S1og6OY*Jy`AfQ%~t=nt#|J#CZI1(5Hr==qj&J*$`tH zd2cYoizpd4svz&0pvlZm)m2|15`pI-@#$jq`bKMcgP`ySNn5a-SS7LmmW-(G4tZWU zFE_A?qlv#@q!|rwxynMc-E}-31e~2D2#^3PBJvFS{A;IhN;ZycbT>+5<3?i6xv*fR zCgEv?@np&(&z#u`rfa9Gqa)3W{%5s0vNQH=(XoQSwv!r{^>L|X?f_z$ugCJhR~Rr3 zQkXz9Yj+B?GaZ5b*KJpt7}}ba;{xB686_!9&^+wR77ylk6)n?&C4fUnn=mhtmzeVA z*+m6K4 zj4b5?ACRFLOEQR1F$-d6MJn4OJq)ILR#4J@Bvv}^7|0$$u7~p7YCgn#$)94WJ!79D z)ICah(ZOsH-WA1%t=L5$N0wF1kU#W6+0TfC$OXOh_2-k6*C?MCRNs*tbZ{alyCv|FHhlse5jJ`M0Q2ZxYFrtn?6{XZ10%vRI06BwK_488)A<9 z{zSDhIa#UpTGdJiRt(3sPScl>hd|aH<*w)M;$F?Y0c6QgSkIGWARRSvH5toE$S^Ie zRYHot0%2>X2=uK!W1f%VNrY|y*`Xjt2}t_^`qZkL4&C_W)=yg?R6;G~YI zilJ|-<2`V_?6IPIYr1e1Do(W2A2PT7p=%FNxZJB;2YXtcIxRWuh&)A z)ZPIP!2rvYC`P&@i#cyZ;*GztUEUJ?Im6)v$7l<@9tuKLz|8p#G8P}b1B`1S?bN99 zCvL_NRjT;Bpz{W}wJ-~oYvxTWqM&cKk)TC))G3(Z1;5AhdV~RWu`CmX{!ov7Go@Rq zb-DhKF6nmN_rXTajHH7w)~m5K<5`|>nz|wtC0({EB7e2*KdMx{qEl8xenho5!q-)+ zp&nZ!iX}&u;h8#^!csvx7gJfl7`9vH5@~`cfXrNKapN3 z-!6Pm==b<(>FTS@+rZ0Od-==^S(xIdz`nK3#%ezQbcf}+e1m)(`g(@3qn=X>j2v~t zLhmI)jz*iRm-n#7yLWkYQ)Kq@qf1MpexvZ@fofw6jKQ%+^*~%)I=IA&b0jW0{dqb{ zzQRp%_i`U426-!a7g#in0mB52`w7&8%!u$2zXs3Mf&b{;*rxFNRVhMd5Y!M9BU z#0=}qOtXQbL4^fG+j1LI?x!X6(y+up7<8t)%#;|$)8RA>trycbFf%%CCrKR))d+sU z3zGXW)3ZtK{xn0|#$77aXb`ZtL8IA54Nz$!t`5czuu=pM*+lGN*d83kp+0YS;$i(m zgc&kX2!g93!xA%8oBcXsFyk%^G!8MAnvG;EXRw|>GBlTP&2$3DjAPkgWc9IY%J{VU z_`EeSj5*kvqY1UM7dJMICP8>@&H)%yjl@R7>D7k zCEKb2u3Ao|)Sy(;i@F2uR!KKO*L;V1Sz8BRkJi)KfY6LeDy>Y0rv}Lt!9FKW3rCE= zl9zZ>2GN7`>?UOdrdWv_e~*&!onzI4hb4b1ab+XWO}mBsPuaRg;<$tZJS8MRqtfq} zbXm1iWkOO}k+_*cTPA7(#_M=+5~T6AMTAdMz(paBBKSlS@Tv(_bY53gKLz%iY4hN_ z$OMeF*fGEsGL5y@N>1!*qU=f)363c{yeME|74Iq;U*d`687|xhqOtH^jL@_SC7KGZ zkZefQr=hL|CCLG+NCIPt@VY=s2AKQkgG#nz>uPKmepU=Cn&6iT367Jig5Mzfp`_eT z;EEJ-X~8pmlg*ROfUZjDT z$Y2U9jt_Sgm^fgkl}!!oNhPaG68(^_5zz}B{r|G|CSa0WSD9$sdn4|ReP43Vtjx;H z+AFiNGPAn7x~jT*k=(8BmRfsjYweP?Ses=VZ|xP!*g|+2zyr2qFksALFvD2jMPR|R z84Si?d+@VCn2&8>z%alwi>v3H8(FQE@Vw#8_o^}@B4f+QhrJTD~fL7mo4LM5Tf2A@(!KTM-5hE5O&pV1hCh5^y4^Pr>RjLIQ>i zMNHxheral}%!d17ThN}%u&)aCHr#S1EVw11ZgCRi_?sY1$yxAU5V3Esa#T4Db{A4x z$Q&kFE{jNx&qGpncQ?`(Zj|D&eL=>-Fj(z$Up&t6y46*8(TfXN>@Im*VKs`N-Rf^# zU3HdRC$_T$wr)k0NcRmlB8Q$IMu?nJr&HQFi&L`p%_QKu(J5wKL)ZMhZWKFCYv>Z3FW8`aX8g&>Ij6`|!L-pSom1p_V5+FH9`rfzu?tES{F6%*B|~3J%ai%KgIGrF z$F1>zcN1j&Tw+6+=Y>TAU^R`UA&|r?u)i#>&%iYOt$OBS87`$RW1O8djn$_0oIk6l2S9C^2^DSGVFum1*{%cu|X+SdvWi8mCn9OVB zC+hX*K0LO)*kC3#Td7@Gu7Amg1{eFLSq_S`(?@G*olVA9pauMj^h=tUD~0SO`1oWl z`LMqtT`E}s*#c<@@|X2n!@<=@-?p(qem5y@zjS?YX(g~0YvUW%&y22nbZhPMuikW1 z^XSp<-v4J?k6t%Avwp+4wrB;F%U0H3x?N1d%Xj|hrd^z%yvEp35~YpoIMcf*I#_$N z3t8O`I^FET()QKPGFf6^1Jy_!JP(hI#^49LG^x=6itc4_K>E@f<|11Gu}x+@OV~mc zU|~L-dLCFwGkf>DJ6})g^@LoL)L#;shM5Jfs$p6g5nemQXH?-v3c9-gVIejx}7Kff~^?CI50ayqTocfK`!EQ)kXV=4#lxJV;C zc3D|3oty^y)-qKO#2}-Q2sAS>W30)#AYaZzyxu5}c0mIhMZ5U5Se*8a>)-gs>%Z~V z)5BxOUV6;SP8G?MZ~o73c}~6V4LeW5nq$MM%CXp<_#~euPe`1H82W2#h%xke5`bfb z47o5LlE)wKo%!8QeliTa@TQv{B#n3c)a!ngD(nin^Ru_XIm~naa_$f5*%$b&i%MS^ zDtoXNrHvHM6EuNcwi^xAYgZOmfzqEsCUZo7}j)z5T@YX?T;X9ldyP z_QQ|fzgEsT`B)|KRIm%%S~S07!}ce(?d{*&_kH{Kf8V}+7q7$LZJ-*K$gOv8Po3^s zg}te3mZzB-?~{M9$NBi%bL1)T5^-$kC74w-oRVWCm~MkTw#ITElgY?QjY)E8E(Y+E z#?zB*L4ml8Sd`M0<`;SHiJgyLdokll7BjV17ZK5flLqtydZ(;uyz+PdKs6NSohm}NHeIkCLR%9?Y*md^Gh?`4(4PM<@<$R!w5Uug3(9{|eqH%} z<!Q<`CU`RZEaG+^L*jX2 z6h-1!9OK0}>x%R`#+{r)9gl`4K=zP=O}MF2!*?zIIW6W+2^4|t2cLEf17xE19~{$k z406I6#xJG1JGG^AMs<^^E;9KDX(1VOaq(h8%gpgeg{NSeRec@)h}ZCL3HDgL&@^TC z5v4Q(`+^hd*OO#=Q4p0{Hf07zDYVgCbA}P2QIcwyiR>CSmMZW34RO+{*A;r`h>HwW zr~|H{Z3b2_T)2y%M(^Y^Nh{Sg<6>?nI_LxmHIVh>pdkxo6!KXK1Zn*C& zSMCC%+vJfA){e&E8Y~~Pb)d7E)ONXR=)%%m*AzAqPuO4^6>q3kyizK_U=zL-3$<*c z$7;EP&KP?GFy!OfGp1a}5%vzOE za`-ofe3_S3q<_c690f=4uqv30q4-u5^vF^CeSjH8$Y3pep@z&}zi<;$5| zAXAClO3rSbedfo`o-UPeR@y48tdLK-;N?WJNkHN~_eBH0Z_q-G2 z@;c_Zj0aeHobb9Nqr>tf6kwBTJ+X_92=_83lkLl7JisI1`LJD}q``QQ4YG%B@QxF{ z?_*U%uXTpQx#h#AgYB3Q@0}IPoHFi*8HtgW<$o{k3wX=&7W}~THAyTgBx%My4(s97k3|e0<-kNNdI&Y@k%T88Q!B`Q z0XuNfhi!fM&=a^FbKPNW(&C~wNBJD>^VS^eH=!xZl+j+ZFXwZ#)te)oIjxVd-*W_J zu)fpn4doC=tG9}tjI7XrHN8F#F|5k}VYdlQd71P&NSNGR#fp~ZDlWt74lc;Hj#{<5 z+VA#o4NTTSV+`feYW@)p!*wsNg^}=xy;MRsr)&a@*ZQ~f)-bQ(#o^uNB;Om0eVbS* z^qmip^L%h*C?k9F3%{VMsj9w1PT#jg{$Kti91xZN`)<$Y6T}`mfqP~MtgO-;g8BR& z`984uw)G2unX%gPfBCnBS!39Vg* zNjIw(?BK@rnIv6UNRyd*{JZKZW2Mo^CwcJ77ZdcKwXBfN%g0+*vRS$0KbQm19Cu3M;t`GLoKmUv20a z?Uws=uhLIq@>;HyU-z-s?Y(v1>aqduj2j&HbaKWU*6#BRx7BXf`d23L51K}Q&$X|A z{k8jU-CNW+s}!bIJzdt?KT9tLS$wbZ3gu0^*rG#lq$QxLERR8h2Kr?(8BmZJ@^YQb z_FrNcgcz?3Bz=&}B!H1fB%-RUKb3fda7tK5F;+Mp@$=bZs}pEKw07wzeClD_e)y?S z11Bwb^DUM=yrO@258n6HjT0Nf5+U!G={+)2z-~Her@a20vH$#y?BDiY=QUKl%Qp(Ki&wol zx=W?6(T_fKu(t@t(T5#VfGHg}Rc>geg*7V3c!V4lsjOniDNWD>dNMrI&wp9=WZ zw~}8`ddenhbOeA)b27;xvP^(B!oeW0%vUEr7&Zn}U}XQ!FFaNhpaUZE*x>{H%OZ;f*_BIcTa#xbYcz7dUTL#Iq)myb zC}Ul6`Hz0^M|QqUMwjjU#?<9MblF=-dFM~E$H@;rzVo+_qy9(y#y^+i3I;sm2#)S* zZG+(R)G$uf9g}fJ4u6dlc7BGCopUMqv`gIe0|$0~^K0v0{`yltb51#@SOxM+g|C=1 zW^-$6=ks4*ml#2xC0k%u%qf@2+_W4M3EBYis>-oM39=?JR;h&P;owybWtWy{;VQ_2 z9)4T~H|haOIn}8}nd91lb}}g>wT1Z_QNwU*X6m=-L8dk|H#113LL@RbWluW;L4*i3jB9o=rJhz_3yX7EW24_27Qyq#7LxLw*^%ei2anK2ohPed;JXV|#&yHe zbiLe|^GqScrAnw!xL>b>_R>)nm6OU<%5BQufoKm%i}WOC<B)4+v+lSH_a;v6I2iN33-84rA^SiLXj?CdWEiqR0h_m6j_q znj=$6MuTyU=JmQckT@m+Apy@w3QKvL$E&0MXo!&)X`>*(Gj3>gC+5m%0RC$)mVkJe zbTPDR3`>Iy&C$Tc=i;l(v{f+^FBfKJvgITysHz1PRmw29;W(a85%(d`n3elj%rl9t zhZWl{XJ8#AI$=z0K@$$(%D~Ol)U0gVPG-XHri+H2ty_q(i0Bz;xA>mp2*hzqW|Dv+ z5{B#e8rUngV>lM#DykYnlaZajP&ME7IQYdZNOZ%owZ3ZTHX2wAb}5F0YFEsv@N51j2#5Yw~_yb(5-H-vys&Oxn3r4Cq!buDOI(Fn9gqVi5DauK_f!Oznf z6%(UV_dK42Gr}So+wW>*=!BdbcWh)D=h35)t!3XEI;O#o=tOhZ!9TLZ>^nHvn2zf@ zZXbTHYQjA>R2rJK>btR!vx8U%L)3@`p>-X}C{4-?P7%6TkEwK`%qKF-r|3}OMz8fmxYh^eF1^G;wEOA{9hmt5M! z5JnzW$JD-jNt&oAk0xaed9C(fWipUGj`_rplf|(j!IY@gu86@8$2j-O7hSDg3aSD3 z>UaNG_KTSZa)KZf2)Bjw;&3R9_y~C+Oh$8B9gP;j2^0)joa9&=`Xn01Kp|*WSPdN> zTEB30=0fkZg-#HTLJBo_ysDU=6^=#H`Ng>uI;CdVOp>cgcuM$JHKM7836CCn zkZ)LUerRu@3D5ucA9>^uSUJvqX!mT7dFTiwDN!qXikAu;=exA%5Yr*{+bn2~+!sjW zfdsKC^ikBXTn%X^u(kulfVPFHw7SkLs$oec$WZ9QhUQ6v42t`VINdD9@BJ?={$_46VO{RY$Uq& zfF_k$qN+hM9g%0kddzknXEWt;M{JryQqIeo#kq~?DefDlQM=;e6QnkC z)8f*puyf|9K3;5bwQf}p6#e7tcg_{}_UCLHQ&}f_g8GQFhIe>OKpQIte!;{w9 z@OfAO3Db=HnUgf+&IHPCxcYpkJ|@vd2X=}llM?6>RK66^Mccu8+`NohqBfo0oPGovfbg|*kt zRN<)EJul#r94d#={(rtEc(^K>7*$Dj*~xdEEjgAZOS#Xljq;?$-Mqv>g!Fuqq^uu& z=k2#We*3==gFM7k3CzoDx@GzjJx5%lg6@YEI_S70U7lZGpZ`0YylVB@!Qk4}OCNlY zJaGFvZ@>MW-=qGBNfHDedJ_sz-K;Upk>L*t;)5WFicM(9LQg?LsbqC>7MSeZwtCIo z*Q`GHfd{dTeCym-$s5QAWfT=HV(A@I8HL1W&pz5Kw;OSs)P>_(TgO0~q zMCjwAw_2oZ3y{g{iEe^O)r4|R$M#L4%kO==PLxc^pnd%Xc^3ToTa|~Er?rng42Fab}Jdthk<1o<- z^qM9M^fMWXl_}tu#mb26M1xU^d%_FZa*#M@lqM@9Sx(fIDc{*h=7C`*SzZu~`Vr|P zu<8iUhu|s#OnN>^o=as;xl0o)X+m!T2Y3+_B~8Gs!a{eKcH?I5;A2W%7bF@Ek)>kL z%Tw^>dBJVyj|cE+ybf2>g5%c7P#XQ<8pV^^r)N1lI$aJ#xY`K$t(*@ zQ_B#l1suA;h)LW6(GeZQ{_Kob`j~8pt_e(gy&;IHPlsSqOb~^6 z;!>GIFRQF7G+9F2HTWjDCJjgWHW)aGX~H{M-qa{w^`J&ZAV^G|@0^xWmtpz{GndK~ z3~)h;uB8h(I7(@Q8D?munpJJzSrdWhsu9Hm2OZ3@0L=oi^JkS+Lk&Ts5`??Ps3I5- z>>gK*=RjM7pteNQHv(_OYkr|bf}oWwjzqYiQ6U-*HGGp|m9Z|g%8~j(A90J2Rz49S zW-^sS%|*B}jrSyNdpfAPSI#*Vycv& zi>A6JcrKPfMH$>b)25!MCc$Eg1M+ANZF)vvff=YG4OFIiK`3Tk(@QMsn%s5?MPK4g zdNU!CRnhVos$VQQyU|~@<5cCELA@gmdv3ZItFGXsYFvmb!t1J~%^O!7*9PZN7U~%S zL<@-jskT`NONLR0iv>F?^`lw1@v6|^_q~mRy+nj>WsK=As9BIgAw&5L_8hSr8iGt~ zRF`>cU}6UQMC!(-=MaB6D1n{I5&~kEQ%U1x*ecN-A9_7nr)rcs&;W%r>omc6V)91H zRNW+q&?h*vI*mv*FeQPUwiApT>$7wj&QvyA94tAb?vk=5;p8;aFjmDS(;Hov+mlZLiE=aOTb}-^N z_DC*II^*!4iF>-N0)jyfx`?JfV)`Ocz9?&_xXmBvJJOlj#)Y-=P z=8p_MW(>#2erkE%)8fvN#aRZ{Z)64@52n6hnq=uGn{_R=JR31cR86zM@i6>N^6n9w z_ukK5y|%IQ1K6H)@N~g4wpA-ElF?gTfg^vOG(^qH0qUN1;mJH zXu1|A%|;J-N>!nQe^ZL*Uue@;cBAAksQ&-|e61Il{m=gUula>c3jf~A#~QnHp9Npx z<4QqUQVuEC%bJr%5iuRL8AcC4QLKRKn?w<$j_;*?P+>9JlUUq5>cZMA$NtBl(in4J zHb~me(`vdhO}&eW?PD2d60%k1?HY8X7)az=u$sqP>-`hUU1sQ{zwh9HOfyj}B;{H1 zT{TLU3!bHiMflB&o8Tet{NEN^^7Jkx30Q-4sRUa|P$UmUl}co3n|PuG&oWD$^fSWP zcd>ip%P$t|5xh{k22GGHfh_WV+g|(Deh9Wbg>-d{^jB>fBBA8(#hr?}mM&Bd?hD zS672p5rp_u?*$moD~h6B5FEiK!*ZCIT`=+eBv0;HmPz$EDnOpNAZO}p!u0eg(M;b6 z({*zSd~dx!gY3Q?d!aGeNwx{HWCa#4MgP$VY>}mNmsrHMYUbu%vuZjt+>$w0e@Na4 zc4}Qwq9jLB@^Yj(Xsmhi99*ePAbI!Y>5&vvz_IH*78N$a2WA@6-JqE@X32?*9&M;u zGz{-~I2^?pP2PUV+}v`Tl(Xq{PGU(2uq*!w{1(KEzFv7yd4=*C<&DZ)mG8m$QO*RRHvo@jIL3sM7;aZ@5U2gPir6~C-l*Rj4u-uA(wEyY%pMQo zey@$JR&dHqk_@~3P9IL#gZVn`50^=>NxL4=hOm7MACnwRdJLb*w}^U!`phJ>`zu(% zNNxsobOskL#mO0}!5Tt#UU}JNm+H->spac&^>Xv+m+!mu`YVXO_@<98HJ4{$>ou1( zm&qlB+^@3X-5PxvAuof2k4^&OWBHPQzqNGt?n+AK%3GF}m)*Ghxw!PZ*RM{teWe`l zd`>;sTpITK*OiW4|Mlz2(RJmkmX?;jf9blYjCD)9HI_xC4f67oa*OgxL{GqMjb&L2 zJ4xWE=ahG?3o<#xWVy4O;xS42$Z0&EpXX^G|0cdCvsZE4UQ~!oTmy~cGf z{vt*e=2TVA7`q5x>u@$gVR6qooIL-xaKqKlpQ!gkqZ21a{i8YqI}tPF)yhKHm9ksm zAp2epEptw}Sk`358D=;Q+emwm7rb{cTPi`!J>Jbzcrr|!M(`1gS`OuapR0Bd{$PN) z-zUoULZL|h)Uztfl~SqOEhe?~x%Qe~D(rmq_*|-cf<^D`qM>?0;+DN)gwruOQaAGEAIZJ(a|H2Dkk^6H{G<^AY12@Y31DY*Pm0`L^->2y>f2) zoH8C01!mzSZ)yw9hZ(io$|IO(st!OGNX|HxU`lrC5=_SyO>p&a%ww6%p+L`CP06h+ zCiAf*0vuyVPd1O70W3$t%7cA5X|pTiCy!zZg(^b@Fj2tfaKVU@MH7H}BZ#1?VjmIqw#J}tJ%QNxd;)@6I zOu6rS3x=hcT{9?@E6atsi{`G|DlAvZCC>zz>cW%wJ8~AshoaSGG8|;%K>`Xgcs?zR zwb=P2vF^oU@g4Ww^wutBSav?uRqyp)PxQeP1A~$kLyYvl{%gIhik)u?wXN$NReWvd zuSoo~ZEWcJhGFmK+JBbLgD!WKsxprV0U&{x`@?YNDsRr&+`AzR%cJ!sUJvDwqr|HhQcDZp&pT2ZP z*WuNZQ@KFOzxXy+eBYgSexGo6o}PW{K0n(2z>SsdC|Nd0ZPxBDJ~ZFCvNhLm$o&@{ zmoL1Sb9lmqDyyjBEhh7?eC028U*yTJeB~=4yrq8oTR844SZH8BLci_Eel3y-DgqXQ z;o2d2W?^A&p4Fyn#YTlKEReImSFSGr` z$A#zo7h=WR@Qq4)AhDLZgJCw-TIYxTT0_w#XYNf7oLbm^aO&Q>?%Mg*F$d1>9DC{m zThpW3f$`b9@4mDbA*QhqY)#~IZd)+T-kaZEEN*;!qflB{5F1zBdgUfxSon(3+AGwY2pr6w zXH`*3E0(2BLx0oc2rl_B*oCX$^YTtdJ(?J1{MlNqWInZcq#Xp)7cD+zHZ-1PoG)fX z96l__;mVyAviFJ(>0G%F7C$xP6L9P}xUh^5p&!~w01i6C6*?2IRyD`r;6YDtkDrA$ z^{dK0<)w;}V%jT?MM>1oJfjn{VWG>wn$h|G1AP%Tz{i~BLYh2dTq|`kqCu|=S3#og za*oJBPMI^4Yu5i38ylwXIg~9k_B3T5XZTu43R=dirKr%0qNm{%$4|epw{Q#3z>O`o z#^4?o!*VlTn7N8GR#1srtn|{^rOvw6Mr3&8%b+i%>X#Ty;l;kBlA7+gU*!CY<+@$5 zvM;69Jr=yuFJ;y}pRY|F($qMpBA7l%YqJnn>RXJdkykPe&I^(oLQ%Hp7HKFbQhd-+{$a#D0B_%BUzG3 z1uko?2XT$ag6?6yF(*gP)1*PyAUL8kyJe`=oFWuyUS&Gf^DyYrtxE(rJn#i= z+)wU?Sq1ya2Ehz$97yaYDIV6$;0>o;>0-f57w*qprE*ztj9igYHkFdq(xE=-9WE8; z3Zygq;nMJuQK?%lbxR~|WaaLtLp~UCh8Si#cxII_s&SGLBa1jQKxLVU&MU#JlM($l zOXLV*5^D$_scXE{DC44G9nzYdPtEc+=j}f)6*o)OkCot0ld1W{&oUpbqSQZhs1Fx0 z?37BKAx_JkPN`h-)6|EhTWlmJBZP^7lpMrnwrOOW`8wSv1;=j?i-ZpzIy59z+jVVH zH3c_F(e^x>6b-J=xu)rwr+m}&t-|T=zEN`Ycv9XyL7tYZ!zaLRxKX)7xgR{#*MZ;g zxbh#A_bWf9d=zx-UQ)wSUNy}?@N`!Z~|1P?xKXhXrBK6 zw0<}5WVCV(|JqcxyOH-2By=)lX-NOy9TjuP2AS-tgr1cE7*K16s*SFpSWFkNquFfc4tWKm68v-+Sg|vq$zMME75vyE^_{mhzVr{9wLkOqCCk*E)p4I3cbE5Ge6%-J zt4;ldRV)>~J8O0=;3a-l*|xKaX&SZS!i0b7Il2Zq*Hi||eTXQMvy&l;6P5(Zydnw4 zHblD7j*vl!3CrqAo{#`7o$jL>+F*Bf_5G%^gbu*VF{0_Opk;-At%!Kzhg07Z}}ykcqERk}q; z<(8x#Ao(BsmMpdGo#&j;(6Sn=+v)7(%P-McbR%Kmg8Rv#=Yg-|%&c42?OkmLmJskf zF0MO~okS`*WqCsNG7nQ+BHbW{rbfp?(|{9wHG-yRIF6=%H8gi^pWgs~?HA#Gxs$t< zV=|Cn5K!gbOD?$=-#g0bZ^P0L+;`v38^~YnOfc0$@M(Sqe40>cD#JYgSh!3g&`Dj( z@&w@=aFRxO+Q?{}mo#@rH9{U*KP8gxj9WO;xct>uU4FT{e`EQ+W0&5)yt(!I?ZxRm zB`qnpOXc=wR^vKW^F5;=w|J{JTxlC}4*&8`K( zW&;*>zH#mAPM?0=wZD|aMnf+Y^eKbTIC0=(RZkM5YLGZl?T|!p3d3FUd;U#iZA|9Y zU}d=JzKg*li-4J{6P>}e63rnv>|<%*^7F^2 zj?B^s%1Af?ll3cL4LfBjW9FzBoli2o8s)Go5gW_5V-j{uu1qCzVW@ z0oz|`yUe3Q31H$OeiV(Fe@pMh`-%kG%E0`1}k(I ziU;nwtgDkEUE(jHJ&%F0N!}9pqPuw_DB{V-JH z59?t&t#H@n(}i~cUqGP0-@}9zxr4Q|UQZu_tr}RX$d~!8&814oo$dIZ=XdT%8?)u! z&W;_}9Jc>NSP%Nu;%Ho~I7IwEkO;`sMGyqR<&-SpO_t z5}0StFYhO?jogf+J~_3|3h|A#xcWZRjjJD>%wZLIa(4&h{`s)slWOdm@2kfCWWENg zUc^Or<%L{y2-YejlF(p9Ae5~9n2+v_c0ckwCwtU6zhWYU@hHp%$>$Rg?jKQ&*MO(Z zT-8|j4Mufm=;*A5C0LXcRFid?MyrHbOgAbH;=Ht=Z|e0(P)3V_X-n5}T4%a?z)*w9 z=!pxrz77IO9AO9%#fFBujoD;jvRPFH50A|In##&T)ecjkcP`*6@Ido!L2HvdU)qcD z(el*Kmb4+!#jEEznjIuiA5CBypXXi#Z!eW7#d+;fX95?MFOjWhhR2Q#aqo%2n$S(tY_#f4-}UqviwubCUT>SGL)@3UZcpv~RJ`mna>jz?fQ zrkt%zlE;>bHkK|dGBBW++aRnnB*kB^d}5}gS(?9n=%MX*-EnwtM(REDYd1_6Tej); znu~uBzxCCfpWJiH$Pz)<2UlbJ;e&U)t95DHX_m`oHZ|Ms>8i7J`8_*t+Bkw^2ISn& z(oOO^VBaBD$Z_R1MVa2^^zC42esUgjPu7Q!R$jO^o^X##Bxs&Hc^6Kz36(E9kFk+r zbpZULO@xvqZY4H6=qaaR?i+6WE!Q@6{otnz-nfF?I68XboU+s$ zpKb*0mQi)r3P!oAW_&GSX*EvPE2KDI*UD3~dTTyea$j>%VZ1nB8KnD%mj(y7uO-c; z?t)fn)~abG+t&(P+hHN>SG-EYX+r1d7^$&rdCsi+Lww7;c#k{!vU*1UsdO=2iLSOj zRNXF3#*@E5z5sn+Q)1}*hZH3eLv$y?=38++Sx8|o@8&+TdS=FFJ@ zQs3SC8NR8+_x;6PGMrvAO76b|DurV)iJSxG=$#?;>nIQ+wCa`k`BHdF+

hI~?`i@&~Ju+UXUxI#Ej+uV$+}Fuxz{fp~`JU~RKOa~YdCd^s)-LMo z4e0yb$s&Qp4n`1D#7{>cjT%MV@fwmRWH?6(5%MX`br*fras86&-{>)`qamm};AgzFgy#RsRMLjuWn9Qh(7c8;-kFUo=DSUv8}5@bj?UTZWTpp0nIo zG9#C1uG0&NYYNXcsdqXcj)fd(-m+W)XIie~0a(-^mOag>mNoCR$C$IHak?&_je72D zY>ANh z&U7R^-vx`F6y~M~F}!Bh36Z4Rbg0C*{}lNIc@}y-X00NTm)PD-8yXN~jsaDJ5YQ{3hUIA75Ck6*?4H0K`>{9?|p zht*@wd6)AK!C@a1n(W)>WXwk>4P`~yxBycebehPCy_d-_8)cLFO)l9Yb~zinyZTy6 zg24)T$Mm4p8eDU5`99X4ax1CF_THRTFCyE^^I`F|`l;^}y? z-XJr0*!0Ho!IM)9W>|Eyd%7;YeR;b!{JYgQHT6!%*NH)!zrVQ$mMpzZa`KQKYHgSFb690C$U1X*0&WK^6|{?2 zN2^0J@W-PMuYMOITogX}biNZqxRr!c2-bZSH9_2S63 zB=|_N7^a6{Hz~q5pnzm_g{ug0F5vB0$gZSW4#T=QmFQt4iUzoOOy@)}WWz&$i%XWH zD*9$rGRqLe?xVZ)_v(DR8dp7{`-}uJ6<8Vqz8eC}O7=l?3%RW3=a}-J*XXO7ge3*r zDvF95Ltfbv8wE;h3$|bN9YUSFXkP<+Qy`0)#<0?!ed~lB8VI4SI)YGYfjNn_`kJhN z(Wp@>8V#ShHZi&}FHn8XL=FHm#~{ErvytXjhu<+x+#1757@=FS#*okxj>DAJ>3Ka} z6sG)j%+V3O1HE5HOqrL<7lNvR-_Bu=={eojs)3vOz6BS}Rfp@86sNce#}_RNE{+5T)a8mj5pkn2bSd*Fipmr~RB-?5ceDN9L=;dtcu=!Rn}iE7PNgN*Tss4JV_&m(`cfjmnSfF z5n)Bfdu5hJhM+h(`dTu?1CgosJFJq>Ef~6!VQ`79)*Q~k`_IC;DLj!Y1_X2@xjvY+aHC=xN-DaqQa&-sCu*<2$;?9`(Xn zA_hb4-8VA=C*52Gi0nC2NYqMp&#H}zHBWl^QVBIfE{eIJ%b$j$v%Nx}(w5N#w^X2`DuUsl_z34oHmonLMGm-NiLe+pW>_TGjTi}z`P@`C)i znSbjghqBVXiMVbT0@Sop@_rXA@trs0^gRz;#I+N5ozQL+hXlNCyz_4R z>b2D)M^i8T)A4gLAh1AM|l}WmAiv3 z5*b0$LX=5p!}%05MkeoU^4?w6M&kh&7*50hWOst|$U5CAF4$zPCO>u0?>YI3-t@uci1#rw*3^A3jLC4wr%^Ut{5Ky&Kj)E_EhR1kN7&mns3pGtk7AsPdQRu%q zVz~K~#VMtQ7)LpG9uK0h7BUJ)hQ7-{y!y=;zS2+;F^d{ZhaQ@b$LBSIhVokFEy_EU zA5=c1{2Z}J1uRr-WMDb;V~vZf`)}SY0k=(zzvFwj3f%&3eD)pRpl(*Ou}Htu8x#(j zIT_!Lq)zNLtd7m(7|W1%FIc{CeFkEkw^G^XJ9&XV{sxJd082|`ve<7)4!yII4q|&<|^v(GOP20u%F#y4`HsezEGueiWy| zO5r)AsU^}l@}i(p^quLZtuM~&Y%rkXHOlwy- znq|*hnsMz>-!}HG8GL;&r)z6uaP-c1-F4TyPG0-^Yp;F%YgDYrW#;T;9!=(-2Vrbz zAy@>4N;xrvh87be2G(>KDj^}|4BQyvGuz@6$wn=#bulT{yl$wLt=+>5jxcT8MxZtl z{)i{!fPXQLvnUSg<ofrk|^TmzlZH(}R6SIeLm zlZp$PiX%ogall+64l`{beD3H|w}+|NwsmO>iru*5x1`?Lhdyky!Sa+iiGwjIL_}t* z1am#Gu5XD9EcB7^mU_?_K83fDMG-{1D ztcRDKT9LE!%RagCO0YoVM<0!AF8N6!@#t;v_x>4V=>ROQ+m(lvv&v6TDq2O$MU*I) zH9@d4=+>C&7*C&C8lbqU~O~x ztdi+0GGxhluXfvXYxT-T!OSY6_L2oPSe)&7vtWyx!AzCt>Y@5pjg!DhgV27PL+dKE zjQNzzv{f*?=Wv*3nTx}#obSEFGAnMdnHC}+{bQmf0l3awAhrcoA2~riGBnflDZyt zY)d~W1k+9;gRiQYLDsrM@CMvqx;C|doL{RQ6-7BT`h5qTV;>9>O=|{GAt?qGuDKOc zSe`K5z%(dk&>BUIi`kCh2d1LDxc=b9_LGK{kE8Qi5o?LEU8-sv(k+TJ2hp5Ob9sPx_~LQfb*8Z_oy@2)j)`~s)M zV{dt*=&oLMO38V&l{55>&@2~}E0x!S9%^=$=@P{Tw^CygN^-PGH&n@iL1UNUwJ+1o zciil%t?o)%rzsY*s}hxx%Y!772JAMt+sjlnn;@(~zT=q4J%3H^XvR}0ltKKqHD7?7ZEFa%GG*c!VMik{&Um_b zfKW`KL%5S;j$rH<(Gd()Qy(CzsSDgA{9kT;GT#i_`FGs@!kk%O*;Y=0Po;zsphu4D zgX0H%Q4%ueypOpBCBZIaNLvPdk~r(tgp8|4FRpHqzSw!#>JQ)7ojEa{u4^j}i@&H+ zBB1?2gJnFb7ZaA>jU%KJI zeEU=yP2z5UDDTa(vR8Q{^au~fs&m%i)-sM?qkX?jhMSW5SP~NtKz8Tj*kG^7sADIu z;7a~I2WLonEcZ>sWMBz%cI0U{X_q`xrHNG)Mv{OLA?zsDMa_&ExOTBs(e*g8VYQV+ zLR4|}E4-55T%MXbvpiP2@yHFj-Nc!5(&@J6j^mCt8u4y2^t|?TX3yCfS1qOm1x}`y zHx}A^bw^N*1{#k+fY$Nb4839}tXgG>UDibyV@@G_n{Je?1W^VPc@eQ?Y{M64Q&Y=R zfji@XrR968*$l_8OIHG~)k)o1FYZpe{%YLit4o~nh^rxixufsx%x^5WL?O_at#ai; zu3#ZYoVS#t7i3a{{l<8-GR6VpG|F-suwAzwA*facV=1*VxY<(Q5!FrkOh8FKU zaBqc7&+q)LL+CI6szEOLo1>$!)@TKOf$S?T*1=#Rl>F_xZeoVP{sbmj`4aass zL|NrC^J(g;mDbLaMzr~=6*KNvV?v7c**9L@u%-=9<5R9@FW*$`5pwE1_g%Rd35^*m z7e%vvvr)ATP&Iw^K(G!bVmSc!Cv2X2<&5Ljw$2i>V$`VvR;TS)lUkK$lpXLpY{aV{ zBL}U-4hdSrK*mq^ksrKz>&&q$w@!_#ot0~vYanh0?4Wsc&PC7iugP@2zK2GuxVT5B_-6Rq=sFl~R;7|}8h~ao4 z5ht@|YY2TCy8a*=j0f?E7`5sS#&``ZQ_Phem-k0~&Z938!e} z6*W@`4U5rTzohG=lI{VsL({C5UyUl$+aEq2x8sjwQAed#A$DS`nB1Hdv(N#(7I8y6 zS|G9U_`?ssw-n_V^nXOR$Wzc;J;};;NV!ybsqz{eSH~f;3~ostk$rJtn1+}N*rt)o zN5U@PozAg5CMYrpl!VysgCQnzWHLts#3M2}S0{HAcEV(F48dpktXhebon)z6C>)P7 zZj106AnhAc+CK-yFQru5^M3(?;hzhcrmnI>Hj z?UTBQmH$m$#CIr*;Ny5w7Lmw-T@?De6%oVEZb8KOc@jR1!H%&820JS>B#`{Ddq)n@ zwxJK_-;l@2dHxlXuawo0X+G~nQv^1bVsA5GZmV&x?ctwHW)d{ z_QNOn@>E9KY$*Xx3Sa3LVMhuA3tk(Pw$*%3m|kWRg@-SO6=Ysu!uOg#jS-M(73!eG73M zQlNPCw17v1m@0_FAStCSqQWk;g-1;e4^;5n5K9IobC`+I!tL6T-R+|{BJU^SF>j%c;t8(9K-pP28&`zSm`&R5JqGh3`6iZ3^wy@88aATJYZ}v9O#bE4Xu68~n1Xsve6XWy zU`Fl6U{q788O!6r62gHEJB|-`L1&20!8pOyV*ND&Y?2Pha$P#k#@mH%inI)_g&}mQ zmxTrDCds<RG>0q?9anm1k7G-Ypz z`sG}{Let7ow+qggbb_!o@EzCpJn!A0y=bQwWx5vhDux%A^JJw5#k!u!Ufr+N`ZeNt zi&?e;LI&KBjX7z>HF!3ykyzFaJQHEwN}4XYjOoVGu5G0)csi{STh`H4$>}LgRO(FU zBA@6o{_nO|PBd!1IZbU)%IwNCiX#v|Q5>gH1fnO7l4HKfv@G#1O;e3Ij`<+M1hj~wvd4?c4vhy=1D`zX$y!?hm zN-q6S{L#Jb_(LXndar%`^>2CIFB=DZ|A5gd6**l?Qz-95X%TFu*Oh*u^lwYQh5MOV zQY=IZl^&vSCcz6(^ld8H%~-`o3pvBR<qE9=%KSg21mfvtB}0FR4}jJSBCKnjO0mR|q!@qhq!;s~zK;AF9RJ^??+^(tWCi+rI+%HT z=;+~kOPb8o!SuYGkuw!B`*d>AH(+6m(Mj3GY`(O}yoHeum?E$CuO*~xGN4lw$`WpGKliSjeq7;ntdW+8YNzQgU2IGZK4 zNCud%1LdSP$u~q79}i7ZrO;GvZ-UOyV29yG&8F~Zs{D84J6`+VBG{RjR$KG5=6tWF zk+NySP_pzYA}G9AWtxml%Wy5kgVY75+(sM5_e{)ZXn`4|gCMblsTnq*(lvE%FhAIC zI}k31>GA5(EV_C zWj=xNfjK)B|A$K403r)R5;BJOPEr=B}ve}yB9NdyLl$gr0k-^k;oOXk7->!IqYl?M> zbwPM(HIRS{?WT|RTU2$N$TtkB>GOUy03pnXvs12BbUxpl>*M}KyRsMu)8@Eat}ZR! zgo!q^0D0L&!i`(IRn`r9)jEvtd>Kiups7I|TNauUAiZ5bkeUf?k8PkkH<{dl=P(@2 z@TIpEn8xglC_C@$V(v|i_^rOC+0P$Bx9EOF4?Rc1kg&r6bf=UFgBe>v^iOymvxpci zQL-`Dq(z3=RMtpO=H%YnzWL3kHx7LBqaU3-{4jZZ?{V_@nKSLZZ<6*Gzo^#k{Bz$V zPm_|X=+3TK?bNY_EXR~KLZ`o*e%>Ztuf*SvmVVY#H8J6C!+eJy!;>0705m%a;j zepN*kdIY%?Sw8MTS0V?DqE^IRA%$AS1)^Qj6DlG_C|-R$5iQmnbF|H3!O_1%2X&}K za)!Xyje^+;A;fAIZK6KS(DEOoI21C>@C}_QH^BbH6EXWJz9M1dM6ogbS{9C(~3BP4zK4i9U{# z->ewIz`(4SaLW?ZsQYfrS+ZrPLJLzvNkvD3H%2{#s!?j2wk|b6d?GN&z~_Ml{wEi> zT}6dkODw(O2NW3|!9FDxBjCvyMbaE_TRf@w2H{Pe;JzOCwM;X?-P4ea8XaR9q|(}O zoe-Q{4IEXtsHeZz2h#fkdmn$-$GQ0!(((wmIKoDDdEcaP!9j*VKlm;HK%x zwqsYzrbTSMW;^9_qH+zx#NnVU>=4-uIaip$$Y~QV>4Ff3Vlbi11a~kDUN#Ln$Am>J zUlHi9BKsw?#wjRBMz_{Y+<^oa*_3)~^^mLE3!V#?aY5!YrrB`>Rv>OM3FPg!HzhJi zY9{UnBL}1>Ws4viC-HYGt(YQ|cAp~b0`Kquxd(BD4lP*n8D~159&ZeefQucwZk%=3yBV>( zENeLP*O}Q-DvUF_$m$J3uJI$VbRG-pS+|=t{I&+uPOH~-_JUy+ zzzhC@&^$62+&g^V@V$c{B}cB_yPA9gfB)|93XX`YLC!D2wZ<&2VYhTe=>w&oE`1C+ zB2vT;ihMfPJ^v6Yhv_uQn-sH~VQw;syN59U>1aH{&@!09ay-I?p@BN9&Rh+Hiu2hy zV7ny+7_pxh;piY4lxqnkuW=;_vT34xTQ&r@a*9(hMQScp=sUm}>h~8X5&7A25LEoF zttYn5fYr@(p}CI5Svy1<95t=cPSW%R_zt<*IlJh4qj#xOjgn@~vUn#66T{pJs;*S{ zhQVTbxX<>_{%&I}WHd~_m8N&YfDn!qlCyzrJC1EX`N9`|wDwz%30tMG0OPNPz7c6VRxuH1A0C9_q>Vj%IB4H!-anr4~Cu!>6X@{F$)L^x8%lD;dT|k~zW&G~U;p|oGd*AI1q2Fxw^KS*I#c?Q(o0K^A?KaKaHaz=c!i4m$|hOT zm#BrOi5zS3ezZ|OE;K&!mcFFO8>5vy>m%5@#|3~t7ZWlc53A~$vk?R+|1f=*ht&ae5={LWz8{6 z_a&9NUe))=N=|(Pp`or$^oLi-dcVJGnBez|a{RWX)L4}M{Xcnd&YZhb8ZryL6dKaA zq^T!CR@0ZPWkXhtjvdTZduwZv>v_ZF`Gp00VE&%vz7n*0rXMjnKlzhIepc(;XUU_` z_8n-q7(}poz*)2K3(fL@&c-Dh?FVna{;C^}PuqC>z%5rFx$MeKGVi8txp{Ems%zV? zUF-Q}uiQ8=f7MOZH_pxa_M7C_z^+R$Ut^>+=2W5e)dm@zis_)}3)Km~QePa#w(Os( z&7C=DI9tc&+*iJ(KJSF{4e2_iI&D^n}Z5Wih}0QvM-9&6a};xL%`M!z2losWDCE5CM%CB+Dd5321N*I_f-6y6U#9AbU%Rn#E9()aVHgpGFHB%aKh?(|? z3Hti^K%P0jGpbBOJhV}E2^NJb-lTM_86G}}zOQe|&1`24(e& zyMOcF&mUQ2d@8oNL~jFRNW4E$iUd`d=Cdnfk-!Pa;!uR#s*F*%;;@+}D$ZEVyMnYG zQ#Wm@v72C;x!E*IlR8Z{lJ4d{<^@^y)s>?|iaoU8t;YiLWwIfP666Lho?(ev|NLAp za5Lv=p$5YZnD3kCGrshv=Ych{xCb`EOqguO>2Uwd(W^-qClVZ%y62M*z*u9JVRIL{ z$@6v6y?AHytI+v#rb^tx!2<{T7#yS&jO{pwZ+wlC2IC^ZVa{#IeiY`zyoXkx1e=h$ z5*#XOQrDukCR{Ca4KQIG;Ne^gXmU;a!}xbSEMizh9p16v`det$-+Xd zddYy6F$c%wvUV>?1Xv9;&DyQ?IlS*0`1)qx$H+1R<21AoYYBF;N-(2SPZ09Ab1+41 z@Gq>uGpp314)b*rLwG1=dPcg?AG>Iib%jymOj$$72+mer<(7$bIk*?C9eBDMbQq}K zwkLG{{LqjB40HH`p3y{r;p9*coG6-tz2cfY*cQ@I)q@FY-SA6PE#qvHNN8n0DTh_` zAIxHoa3cOYp*1A$(713b!~uVklZ}dn%lqJ_cok$>Z*b*DFjM9KR0%{q+skmy5uHVK zCN#BI^f_{1X2W8%brgWhP7b_J{rmMh?jYLUYj6L?H_r0{e3pC&EZwx!_yN2CYDat= z4OLh=d0nN~EARapyjE(Tx&B2vM;^W9b9a*u^(uRx#&5_KmEO%yJn_gQdw>1<*FRiv zw4KKT?nnCmK>li^RhrIz$uAg=W9&VMuWwuU(pmgRKC=G_d5_`jedbGFT3EPF{lAFY zfP$nLAhujSYvvb8WMF2g6+=*f7&V5VzhdF>*YCQEXcr^7mUL0IuV^+Nu2%);&v^5< zlgVFPG;DtRU}JWQv*LT(#rd*gulUcvLt$FHCEd?f|Bq~u!T-DKv@T3i&YW0>(TtzbtTspf zPS=b%;-;0%W3ov+d%b-rhR^@wZyN6dh6}T+xwcYBR-w3L6b8iIC zqa2X#?=tqg%!zw%W`=xaC_o)pl)f1zEDZ4Lt;eIdXK`KgyD-=z*U`&vqm_9kUDcQ) znaL{F1G~5FMrRoNRAV_cJ~m$s>cRYQ{(AwIk8`1vfqnh}93d0=Zt1?#D@#wor!!Wy z`9TviW-Bvrhs((}S>sEjC%5R1CZ}k9z}V5cJvf$w$pABpFqg|-k${se@t*9>PeyCn z>>_^tBHk5n8Tq&W_{+cikH5V4A8vm4O*g&!7vFtTws`Q0Q=qt+uGzw4F2(c{xPEZ9 zb4A;A^%%6T9*HV5eth2Gq2U@Bj-l2?!24qJOp_|pAJ<^`nLL^Y+Y-LnFD=$Qup~rL zm=SSPIwBMqGsrEsz2dgpUh#s}leeE-T|K#$t<1F(`~8|B6~*Nhm=Hl)_kPs(C!vPi zIb`MkTva9$IQJm;jL55jXWjKQMOD3f{z6=Xw(n8baa>>^1qYdZ?n~rv$){lUBO^>n zQ-rY>;=TL%MA4FivYIB73k(co%VgaiA@{!h?O%R-Obwnc?RJmcamNude`>3`R$JVv znbd^u-hSV3joIBxH=1|6{tiNZervI|TH87`~&Y?a^id#?YAoY-5KQy=%-@kS4fUX~ydl&mD z#y-L?ekJ(AKk|%M@-9-3|5se^El^r(1@-uEqsCgVx3>4U8DkkceBqTpnsJWD#VdXS z+Teel`wV$f@sj1GL#1oMCw&wo%Da$xRT=)cP`H7RfL&a9V7O8M_Bq-~O*(a{qPW6^ zz#XRKN2Kf)L<1E$l~t~peIUX>W!{X7w6yC*u~U^M2TsP7Mdfb5x3kZnd`yf<(rfR# z1R5w_u*}8A{NkyT&fR{R7(`kd^QknGQ&}SH^s)AQK&63jT+ajBm~(mP-fDc*6e&jZ za;+1`l>}~E%ddFzV6a@RbSy5dCe;>yZ_U-&w=|lJCa!n+u{lb<-0Fimec$O(yzr!B z*k`Vq1IY!d*f5X0DKRt~tO>(*pjb;(ytJBTroT`hH2mq|sN2k%KNmLQ%yAe^+NMdk zZ3p@l1AFg#ybQy#gJ!LTJQ<&v!Re(ut>RL0<9phG9K5S%y znL2r|!K|^nS`iXqEU(AX?;bQO%TXb z1f8=CQ`v%BOCQg=v86LtYLz*s5%=qPv|^9Nvb$9o=G#3g`B*a+pL^uSdS}z8{Y%I9 zO_^Cs%UV4MyJ0q{l7HnjDnUTBBaRuz#uQ|YC(5$T1FdYhnB9+yyLFhT7OsC%>fLt> z^j|gD>~u$IbHTls&)6-+r8crd%_oXXvB>TQj^PM=@9uQAtbq$<*^Kf=?Ol_D^^*-# z+y^al-{qJ09(enE?z!(>Z+retFMI5U(H&cl?%j9x?0v%2v`c!u?g!uTBQJRBo%i4S z?$uXZfBNj;&Vx5Ty3d7F)WIq(Vm^)NqMOOty)@)+#MPN@K5ddI2B&u=rcc6snM`8J zC{Ufsz5ed35;s|APgmBvttjC14w07|i`{PJ5Hi(2|L|RME^c(|?OxqCHdbFF4jv?* zdiw(}ca(ad;grjQe<&L! z@Icj#oh$p;u$}GsuBknKn|+`boAvqCEA(2H@k_09e1Wwk!1;AH8GFGM4NOGt~^I z`HbhXKw{6Aww~EL(O{a-hRblApMREICi_nVqd&_LKtGhj{f>G5gO{B;eCY6Du~mPK zarR?VcKBZX(Hq-aOHJ$g+L489`N(dcd}C z9}QZqXl{6udG{mFsAsuU$4raSKR0Ce!)L$y{e#u`#3w#c-1nJ-^c~B~*DWnwG)`ry zhpZm^cy-K02VP%+SXHdM2^=X!w%#Il2kk6aY1p+YJ z#|BHCQGL+Kys!7bjF+S3@0V5O()JIj zt=wV5^Ndwc=V7Wy4Awv($f3-iRn_0(wYj?68`tdG_ENf>YddU|&RJm9YXcE(ZvLPe zf3&d_%G&aB+Bvx3t<9}1EQ1ZGla+mKdi3sMK(o2pDBn3yds8Zw)d%)CHMct z-7(B@e6!IXt54U7!ZH=KJ)`3CA_@}AdDe4Y52mq(D_n+YgQ2}OjF=CG1H1(Xoq{|P zP`o;T_r%mG*bAdoWL(4@5L1&X$1zer{(uGvGF<`X*S;OBfvb;0 zfj8e}+c)1p;4L|GiD6u=Cv{2n__NUCWm(Kt~r z39*^ajhibJZl)#FIJ_cQR?aUtiQRh~gRDK^xMwP*8NdE6*qoOtcI=a- z=YYRlB174m=Gcr`uRks-t@cjx7#v|_cu?E1G57|9VG+NAiYOmue8%cE9e4M`Ehh8G z?o;HK*r!y>x@hE=Ub8ZS31hM8JF ze_eTD&d@uQchco*{E*k&Xf`)OMo3v&dNrw)?Z8j<#m?MPzpp3NG^we!anF67d|c(3 zy{`1!(o?1PDIP(kp9`u$1(id>&_rya&jWUPfxJUv1H?fhg#p4m3by!xVlEKbq(Ern z772Xc_YmDS%nHr}v~g6FDK=nBMXeM&NXU1mJ}QpkRTe=-=wp-2GfmHW-JGX^GebOZ zPMo#s_7f{*aGIs*NK?zGh51K}q)wRUq;!FE-4~g|+{i1t!ZfDeWV~T3#9Bri`ZJuK z!YnzQMgdd!GDZWp%ZQK66Fq}-ey?V5xU1E$T+4DlJl@*K9ZF2Czv8-tMz##H&Q;s> ziqC};MvYFRJKe~@ts%{1F7)73JJsC^3hA_knLv5@4iu#JJj2xP8p@#m18T$WMgkDV zQU~u0&NFp_8YTpf7_C|S5lz=5+`otmbI*MP`s}AbPTY;`+yzoHM!x024xbJ)6`U%H zjd!|BCWEZWRi{_l2wFh8tSo1(RAFS7|D&&}nC*_~Di&Dweam zI|o8Tw;w(quS+k7u^W{JrOQiKDWpZ#%LV#7v;E~J(ZDSq54Q;JzhZjFw4lOJNxBE= z0Mjku@|ft!WH9ab=;gN@eeptP{(1L3`3q;Sed9HItCt`69V(+B@yxJNHH^??{MaLR z-}buytXG`KFgevU%kb<(C-uy+zH#c3hp#gD&W`=y71uvJy7g#&ssB|R8;!6$A6iN~ zv)=I|N3XeqfKIY>p{p#YkEbkpX5OA{(4h|$YpwGtbMC(FnI}+hkf=%t#4hh8gCPj1 z?wU3_L~wJoiL?T2n{0v-h!N_nWD;skwHAsT9kQF_mL*IrwSFrcH;aO_RiWDko$a&1 zc!a|y4?=1vUNPZiku_JpYzE87^859j@^VtqrlHVj7E-*TF57UK%hED%EG z$YVdi$soSNB5T-iQ^~7-eXjTKEaH3q!hIt$Sh;*Y&Kb8jGFx~JWR(9zvaXI?L7bFSUuxbMW8 zD@~Wbd`*NYW46(4*e{)?^H;1nt>xSzwJfQYO{Q%wYh3D^;mQNVwg_Juaq9e(&i%SW z+e_8?nch3^cX_3()G9sig6|d1wAlB*pBFOE&i{7vDW){K@H?7jAkHuP9bhc`#lNx4 z3s3FGzxdQsUwrDvKl$3%e)6?XJpHOyJ^d>3HsM}*$WNwoS*5NyRfpHA+1w=ccdm5B z$y1b`zUIOSH4Z0e^-4B3P5eVwI`W#+gq+%U>VEzyES>DW7K`8e53j=V^Zj#Oan0#j zVLQP;f45U7@dQ7e^wMf^w~~r4{2a;Eo|C0otrQ_IYa+8`o$S)gBjXlz8L!qC|oevXSX>m)($sSKBDrkPaP^aO^@D+$-fpn0_(GQp5}}?oD4luo}*<9ax(WS1)V3&cXDc!A_lG z1{^r<_kCb{pX%xrS>OA7SeF$Y55q2beMRqv^}RoZQda*uTs^RMK=lu~=1q8mhw)2U zQKv5Nm)r98%jNnrZZulOnqY-qj5RudmAe}6)eS?uHI8ZAOaB(gf)AIfAoH&TALEs! z*Oz{*^h?lBn1Be$jYb#3n7{x5`=r={?)7_ccL z6m>@i?GGXoWlLA(3&#Me@lKI*G~G{PGn+z_*?Wn=kRcQ}EEc5T8Z04!B5)@j(}PX^ z-Zotlp^!zv!AOjBt5rt&x>L7ZW>^VmdneFCn@HzcM26d;9ypdI6U$((U3c_8S+oyz z7W%uM8<|@RolV0o+oIA>7q-mE^>+IUokJOBZY@viQB;psQr}Pgw_!duqWe0jW@#-( zPFAP2B>c87mRgRhQImYQ=AFH+ng+VgRaOCA57O%RwnOI2J9)GS9#RZiS%!{n$j5)UU)r>o9R$3dNL37BFUob{UGHU^E?W1y`4`Vt#}bb9}7W&}?8z z!G=jAlau8ZW-o6o6K+Oyf8F>`$ZwLLD}m~thd#xOX}vXVonV5+HHv1ATO5;OaUPH1 zm9;>i7o?5hA(D)fIGVx?%KCYRy8!sx)P&q&qr3?o;@g;6GpQZ)R*o(4rOQ{lNIhni zbs1;SG$!XZ2@>6Cn2o;g*FrZj&A>8}T4sP+>y~$SEwCGG;6sKmGR0_yCP(Hyx230joWrMEGwRD zEIW2*do`~{oClZ9Z5YOMjjSO}Clh;rur`G=+x$jmEp1-6s`;C%)0pbD*5>fC9&=#K zRy2P!x)O9k?c8U{&w+*UO7b4^H2DJgPo+}UM-0bwo8+Uhifw|Q{S3s!0sn}4g;rR?=v!8VWE``b^rg$IlzACe-NHUC-R~t41MRAAN zH2A+uly}i2O6y}_Q6dt>YLM*1zlwmISrlqf6|BL|dD~%HL^G%-Oj^(|SyEi)QH0RM zo5jYwLjFosIubSE10~3!fS$Tbr~M*UyI@{NXpE|SK`k@NXWxy66S#p;A)p@FV9274 zCO%ksDj5tID+SF3e&Le-f5BZFg;|0brAYEM0#_?!hBRH9s&n82C`%JyDIx@(!%2bA6*?SwYY-uZcxt?f;-ZyOSB$O5 zDXU4afQco+7Nybwj zLHH{ANBs&LrUn!)Wltk&kWN~IrwO;0Ml`NJ|yMGU?Y*ZfFh22@bXOv&_?ro$`PzXq}) z8OSXNwy%ux9SXhN#;C9VmUhH!uz_TsNEIZf1 zKc$8Q`;QXj#>KDzs_EGAGQ-vswg8J7Gokq4ajO0|kXVR&gxd~BQe8#!D=}Fk?vEEd zzzpe_xWx#Iar0YqMZxw<3J{#?WJ4%!M(jOG99|3q)pSVnNL4CG6$gV62?V?xMG(xT zoq{uD9mPPi6KDe~5QdAydVbOuOzKgD)X1yE1qai~ z;A1s-q;K1L+&1{UhNDL?UxTyCP)Q*ST{HVJ> z*z{sCIs4fn!xS!={(v92+vbH^cYDZWHg(TqcC$io6_12aK=_{)2guupVB6WXJw?&C zkGVyXnAw%d49<7~2ApqzV8;iW{U2TQVCPeU$uQ}&lsoB-y5newsFyKGCv#t&**Egv-9pc89j5*&Cr{pqPM?o z+Mqfdgf5$I7%sG0A;ZXLwl8CZU0$xXFhi1s`GdHQsfG|zLM%`jmKQi0_5E?CF*1`( zR5J;)!{)MMf_-ZukEc#u+cWJX3S6D*QZBnnKq1X%Vu$6H1DYiWh=5^DOlH9ELZ=*p z6vedJiVTP_%W&dqzHT`n=d71S6(T8E;R+IDfi|!xt{p-heBYD?{9t_)#Ue;}GcbM~ z^Bg2CgPSPQxzH>Rbc0Z;hC7C^QRsqJ5V{xh`>0ZnsAoAUHPlF~(6)u*LY*fH*c7Jt z!Yn_+l~Af<8zMkTc95&kUf?-6T!NC(;Jpxttzu5l?n-HKKL~1;MnKOV_?8rre|~L8x`w@7k{#dSk{cN)yf5wA4Slp z!tfCc4~=2-dS%c{9YqgA_iZO^Xbc}R?UhR%SJ5D9C&a9YzIS%mAwrW*kS92x0t&88w>KEN&z%3#&13 zba*PT#?T{_apXCe3IO^OTHOS*1{;FeY8e?iLW9a$j=-LC1Cy0A$4UaDjuG2tGtx;~ z(TpH~>7e_TjdM^yF{b8u%R#c?x!ZnnAMoot)=smL7;2eUph3?xp zc9rc1!wDK+g_?uygX}$AvoY7T#wGGisu=^5!byZfioWoRT!K&~j2YL87)HuW7+wiX zB2vLojLbI-#;Fc&EqsG^GZi>BOo3VE;RL;~3&}-;ZZ`7J3)5$I_UxqMOa-_mysxbY z(=nZP)s(Kp%41xGkYJPG^v7-&y2jktlsfVe3*E2<+GeKo%isg^MpLt4*q6iD5-4zp zik5)cq0C4IW))0RH?pArE$K){;dQ?N=Y6_#KW0mfCfOwG7f3hog7#JYKJm+BT!8yi zmAi3Y&pm@(2kn!z2stQJ_Dn+*Y&5tiLNs;d-6w8eT3P5ES>tx2p3Tq6NhbsM*7h_l z$zq%;LDZ`yfv{}D=1c3FomCoS#Oa0}CgQ4YbXs7|;xrPZrBlBtw93NCgKwN}w^PQ3 z1UV~7NM3sh^ec?VA<;naLDvVXoo?HP!RpvHg-LH}7K~jm8FiDjvy9}_Z%{p(@3bnW zC9Kt@2{R<0tArKYmS6MSg}L?ZC?2hz=+*V^{Lac|Yjo!ZTIl98^3HWjONh-5vK-U7 zPbL1Ovd9P_a`hJ7I%M$vzV)HU?Ax5GbDRCxv4h7n4PM}bYPERJ*s+7ZcmMGd_nr92 z@zLn`h6ApTaY#b(8(SxB_|p@chyK!)edFTBQ~k z_Nn4LO)lIAEW2H@e{r!+{NB&M15b{_A(dud1E?m#OEa zHq9~`7>*>aOLY5R7_&op*7FjJq$#z({h2qs;WKX_M{ao67eBc0ve6B99eZ)|!7uIp z%G0mjgfb7mbj5gQ7I=xn%OHY(wOBv?#kb&HKigaX?JumIy8S@;y7Cvlc!v>&MqJiJ znVQ1!KtbE$gP48LW!$w-1%VM~nwG`?>J50qPHT8-@P*(0%Bf3FUAlMUt8Y2EJ&bmL z`wIse?OTo+L1ZOm!OJD9R6qAQ^5^7prJpE$p!8FvpDX?A(#K1`TKbLB=SyEI{l3Z= z1wY9e&qwe(L9kvXpsC?UeFO7uGL`+Q92MwnFgXdXNrJWAqPc95DJCDmBqR#Wg8}gS zClu=!O`7DXgsWnaV1ch~z z*&&>sz!~6HT9&3E?*M3XW_e9eMwOOqhFV>OMpQK_vI+)Hm0M|^1v#Zz7!%M!g6LNmK8G9W6UDscSu#)x)Zx#q(x7Pf0uS8k*mYxZXKbA3Qg| zV_Slh-#qKXzq6a5F68zd`Ev*LLmiz*U0-W>QJWwMi8&u@Mm4N6x2M$;C>!q3*P97j zSa4e9w%=r;k(52!l=cfPA%d0I=1d2n?s_{xZcy)PUbdXoi6y$EOjG@b3EgM+X}Mmu~L_r%nK*l>$%CddMdi>8<^ ziD9OsjX3G`r`_|Ry6Dtt2zbY|Pabk8sN71ut{hLY0{4Jh{%ms=hS49piaY^spt2r; z-?KSPuO?|bO?^gf2TZxZ9s?3O(Btw3=rrnGk9PX6lzs zPBy?Eq-B{k9oL9#BP+Z970X0_@o|!Qx@(Fz`zfBt+B>UrP>h{;U?49HBYF*^@Kq}f z=bFtd@h!$~cdLQL7vVed>V%gYj$`<)=9XjI%tsAM9=pN}O+QV*33-yWch}~OqCB1D z1Co(V%Dq&Wt}O5U&#aXuQl*kYa@qBcuMq7anE%$fKP8_aKV7nwRK^S@cb48! zdVlF@a8edarFrE(t7twLY<;AWFK`r1s*)^-B1kpwgVyeEF zDnB=ND=nCevUFa-S6m96)P>VfCG~eS%w4q!r@&WD7NhGYQ*D6kd6<1PFGw^L^QbJy ziZYR_n8Cq@3a~|Dq{)Saiz2QNvu*WYB%s(wc6)VWqE-X;9l$jr3%0nvfSER!=HnzD z?ojYfN1IT><`{z(!QY6>N;Sb)R&2uUD+b(O9I37E?LQ; zS~Aj+X^~hQTsiRTBJOd`tKqQ&2B8P$Bz2E3SZ3fRV2pz4rzOp7A+o8Fz-)LAkz&qSQ$=NIs!#`=rx-?8ONbd4KvQHt!}v)G#g>< zB{yt>LxyfRLg#9e&ao!9qUTV@wS?&gR`YgHVs8E)D@yrN?V2AZ`JJ%Hat@7DA=*l=hkd*EVv7h^Ituyu09VU)<6?&tL! z=lCNN{K+u$`~K^H>~=cc%Zn7BPafQ^R<{pUtDSDO+U->TTeo|p(;;?Y68z202XEQF zDvGY!zUAP}aeQf~bLs3=$x|2f_`{&bWhqp7=S!2>y~XH!sLxahK%^fEG9-XMPkH{A zneS)*^Zm?|wr=gt9a(QY@a`X3O|EOt9qOHY;WgL%IDF-08JuS6w)}j3{YdZ1`|rP! zT>Gs~Z|^I;LvxdpCm%YA*q;dO&|g$|tzM}#x1Xmk=@lf9<4lf`EWJsJo9EM%bn{8S zKl%9APQUC$*FE&m_UWY)Hy&TgJ8Q?kgrDb!zDCcUzW!0s-`!mhw;ozLu>}7Yk0sTE zrGl@s;2Uot*Di?vjb5QcaFX{h#1}De4E=<-z>5`YX4-g0yi4A5(#CYYdud9ZO9Gsojl*%&_CrbfVdeMosRER0>ZvwI_t|| z@t39UT7GDD9eIeT{MYBseFqA8Yblw<1eFl)q$p;)`4sJ3Jc1g}K2oifVx|mCY(G-q zD2aA@aT&NX#b?;Jxw`n%A8ef3YCPsGy6^WIi{1xi;(o`IAF7{f=w7V5_{o2L)*14z zic_RJJLQ27HnvW|Io|udg@*erkkezpx)M_MixacYlU`{;=8b!Em?+PHIABwVYdHsxlZbp zPOUas3WBA8e9AN*WTq|tC@~*0&4+ks{E-pz+wW`6&E4DM?FPB8+r7aLIwXqvQD>nu z9*4cTxf#b94v5#3*1&I3(Y0}ra1nDABZ;3J&ES<8Zoz}1*&*31z|#Zm(=T2XI)4Ts z94a4|{Ct1YY)HeC)uV?hl|x6XMq)b><;`%uxvCp;HOGvrnb6k`=w@Iw;GLDo1_}^GafWt29Sr3TLLu`a zfu$l!Q-pzJ8FVxvxsZqu{vZMjflj^gHbeeG>T}(y&CxoRr8ZKNQqZ6_xlb=03 z7g|d~E*pByG)|xH1=g|@E0(N+0^SB=JHW*jkkd#&(ThU*U80GgY#-XhO~uU}s~mt5 z`z{TmH#}6yvdTk`8}Cg6TxokBh00O%DAdNIpr>ESJ@b%h?qH^-SH4R4#;$4Z;v4eJ zT+fY*^RO$zTTC=ma07!iGT6_j{$}KUGKmGwn?+27#XHyCcijwK^j6Ix@O?fU<^t|u zip||!H9j-Y0sk-PfB9yY)U zD=-x<_y_}d9%wbN^FWrb6Pa8Hz)pgx3M2Ih*`P!_Dzq22^q~&_p8!uwW9+RH$+V}M z59&JkYhB;_{Wl7OzDeoof1s}=Zzy@CTB-Z&IC(PeNfm~lO+ig73O{-(s@0-@`Z~Un zxkEdLc6N3Sec|?E!9<~ zz>?O>6WI%pgm5|xNH85o!)cF1NDn9@f&^HsMFL4aeAk0FJ$K=uSKj=by`#tf(~YBR z_I`VG-L)s$WODktKYi=*0P-5ZdP?G4A@+xtpRKEIb8y!YX6jLBc_ z9V4IK`z>j-1jJr5j3jm)@;#N%*)(2rvXkU1dNJ2$pM77ld|> zlU{(~-GjECjFIj`s!SF`@WzXL39+0Dfw#D6cl4q!AL8AjH(dsXpw6E|3l1In6U?Dq|^dOSnh)+Sh{bF`ir{5 znvbk3XUIsp?MwP1vhv5(YWWv_Aq?*X=Qd7kqr;>w(OkSVg-S=p=G9p?WOl^tdKgmE zf=9H3miMT;pmNjV(rvp#Eyw2E-2(UE>hcLUv804SN^J8ATNC$y3&4GYYaFVNyAb!1 zi}(x1nBSOSyTZ&xsE}H?!ZD~8sfLKw>Y^`%DH9Z~^!&JGeFf+0b;&Cli{*PNX3Y65 z4?Q$|;R|p7xEWl(wzbOH+Q#b1>Q&E)+R@%u8jFjKjPzE!S50@1l8-Dl{!*Va;#J3K zMZ;m#3YyKzdatp*I@g`R`HKxQYAo)3BkZ(Kl)Q8Q1mpUjU|io*dQa)YWRARu{8#c< z@c>YqELh0Mccnf+#n>B4qY`jJX8Yq@x+!8KKbg8oatTCvj zvWSKo2*tuCSF8IHV>Nmh1UwW4t#z>kh%p)HyOaN-QNh5Gl&`zv_9K^)ST2wTqqboS z%SWgQ@mn39RTT(B*BaDb9Ww_!n7SyZtk>aza7@o2)OI5aW7Mby&uqLX)@}Gqlekyo z(ySd;WAxYwOmUdCwuz+6Qf55R7BJZ_Q*1JOe_>IFnAEaCo4Xb>aZeB2Mq67<*Q+iG zbQYp8tLQY7M54kpz>UVckhbOUi# zRD_cIZp2N^fk{VV#5FakNdgNzW()ji3JRGX*kWe0Hs@v=(g9cIfa7x!fnwIeuu;$Z znU`4}4XiM3Mk@s2FRwKm({|h%Df>a_E;=0ZHn`k&(bBMt^&o6d5(ciay;7D<&WuzO zR#D-oZ8%UJfg4rCw>%@I=82UmlxsGdf!`690iqNaK1gIFlw&@G<^FP=vB>)eX(0g1 z7P^5?+Y0O#B;6N&u$;O z6>gla_7rAK<2((GfD@zNaD|XI{7RXW)76^C9H~=K7%^@ao4DmEG$duhbsiH8{J z8)oTS9L+Lplbeo3m~LC9ug6xPn?ycpXsL%Qb9t@u78We*%EqNN@$`(&lc366gdZ2tdQNHUZPUUUND3nY8Qe4dXa8k0VTtIJl$B9Py}T%v-kS zZwxKnbSggQi7j#0Rr5^3q>D^zFeCRPp^?2`61ZIVuanJhx}G?0#f}R$x_~;`W;I|4m$OVoQ6;aURRu1PRhMN8^g7>he7EL`%GQIvIP}!2Na(#bR`42x;`ZlSMTggw8Z&613 z^a}d-&`DL+VXJHtY+!{5Q_In^x5md9lB9CDq1Favya6tJvav%pp>J?kS#i(g1^P(& zQ3zp@O9b;8ZIPJ<>-PFnMG&_UZ#JpwEhttg+d;CCVtO>Nf$M>5XoXc<}^O2Nvhz>gS7L`5HZNX&BEfJxVl)fyL`hJ1+Fv|u#<*&l+k zG46kWvh>ga7(~qavM`?WoR-dPhqT*7Cu=F8zfOf?8@fv|G!pLTia}mV%xH zTfxw|0FBKejVt8}%01Bx)KpwSoCpaRU6%V>B?_K{fNPFR^5AU1X%w?H5|wldtiiOP z>_e0Wy&wN}ur?ST4kvj9WX(q8xPpyoT_jmXXBwzCi$0&g zP_mfEI8vq?HW)^n-AILiDgTFv=KI_$p^;wwqo5_Xwu#eg*Kt|r&uWZ{M_7DdYJ;%W z{^GzCZgDL%k3k$0I=CjVGgU~fbJSMb-?A1dV#W%L6H6iFtArf80$TIvp})|2*wuOS z^m_@r^a>%aJaXk!wWutrcmi!Q9an@nD@(P8X2y60XZ(tntfd0Rp-j`_xy^b6g-}2wy`0JKA7sj||4u z@P&x7gol+>OC1yMfM0`cDD;+aUxFofbOezhgFZ4<)?@f=3yRTvS6Ow~qI~a*+Wp`* z=m;G{WMhlcmZlN2PswoW)0l|Os^E;MdSy_be2!^-0oF@Re9_b8y)cC(LB0%{`NAwE zV7uH(A1D1%x0IJ|D?MEL(bDTn?=SsX=`TwENHTcNZE_{Kh1^9RByT3~BOfDQ1%F>9 z7mBm~Gza@-m!vVchf{PBkxXHVPVXd^lN=;qo=!muimccpUW3x$(pVvUF-OFy zC;L70gvT2bTnEU&uu~=kU!pyz%n<%#)l@X}4pLxXfS%l9I~-ZK)+n5oB}nrCCn6n& z#O=9)2?y&x>32n%Cz<*lAv8n8f2+hjG?@%VG8MQc3R(rNiezJp?ocST3wmxSaldW< zT6pAfK4Ywz z@rXi`DHx%qrZv|JxU8n>x#d`ff+NDYMq1Sx~|vs_4U2K=ip)mn$FNe zMk%c31!5X47`NP2%7hklwFS~p?Gl4Wjgdi2p(Ht!3+^0@R~WUt3b$WE!H+xE3dV~& z0ejyv!I{uBL%Mcm=$54)aI;Hb$YXr7E_H?>K7uK>S1>8TDJS=CyVpy3!X3@KpY_X* z5O&2+8$vdc$n|=jccomCE2|jpv~)rzvQv>5k0NmE-tu}NTOy4q)ub@Jf1b;fu27jv z*`kZ=VK1OO^rR7?2crU9z*!ZF@lmJp_YqM5P2(eEP~nx4dI1TeLks49SivU+4;!R~ zP#ACxtXKsYMQVtBL61+4j|bBo8^`rPjq6CSQ{Y+kG9T8`O{!m`)2l_Nt=%J;ZYZ=O zH$gaJM2^LZ`g1C|=Af~S-GV%nRHCWPaVwl_g@vIo=1gfu1vP~}X9_$Usv!WzJ4m_* zF+;R1R1J-`*Dx&CFDKaQOjT@~6etLVD)$rPq@H-mwiPBxXeEtCa!non8IfT`M`XV* zZxja46f>^?=Mx+_xHQ*z7uR_tHpR8ZjdBHyALD9+=laqE#J4rg@eMuT*kO1x4q%G3gdLZU=}4DF_RY)JCn;W>Z{F2V3)D`+wKd>zT_IYXI52KWmfLhUES5)>Q--3w_5ws0xf_9LJ}Z^B#Z=&BoN4kW3dd2 z$F^+nE_*y<4+hR*Mi}e?+u|@j7-P?1;pGgB$H#*`17l-TJ@5U6%OkZ_KH!Xc=^Ot4O&bJz_>?ds)O6dzn8(na|7zWwcQ zlb?noM)5v4Aa^69BvVT^)NVHuDnrM&oCN@E1g`!#O-3_(8<_SOz68p~ z3x{-shv?#bJA4J6xCBi5Vm2Uo#c#8_0QWN^IZwzKckLlgajA&0Cx=iKDtGwR-gMUE zu$qfTrWgWPOaP8_QDaO@U8I}ft7CRA&MDxG4NvhkF4nq&KM8LJz(44sr#M9-7&Ur) z6C(_8Gxfmb9a6lVdeA?R#j}U=5t-ac=My~Y4l-b8G73@7ax5e+w1SXFj8r_yr4rK_ zBF1L-znG?BmYAJma5I_VUH~`pXA~`Jy1MsaB-NJaW>=MT|!Pik$2OtoP z=7_>nO=xb3;#Mq024n6ZmUA#5jsZHEd*EPbv=Cz<31zv9jh?V5c>xfT5R|z>%ZR8; zk*gZ=?PBOt2xlQxzR7G3umW6R_vGcBqetQYZUR(#=1N<-et`-&^*Wv2BqF%^A z$U!qo5@_pKlmanbTm?kI(1dbclcoxOBOOqemIpQwGTugtP%i;+h)v)jnxv{J zGG#Q4u0b1sZ(!=W4p<+)i-Wz*1mY4sogcDVPfKJ;PFZtH7G z6~1%9t{K}_P_|Xh!vaoq5F=|8wU_tp8;r2>F6gE*nc{rB_M!NRLYIkUk=PLi%m#_oP3U{=4)&)NvtKf?xeM@)zVE zp`+MzLJwl@piqRwa-PNB8qfV-Z~~Do3zK7V!7)+DJD>1zu33Oi;v`>>_a1wgqtOI= z`Vz?l6f8ix^%yyCmoM|EPn(BwMFbei^PO8SzM)Uj7tey5=ntIb#n&e3p2XU}aORxS zJzng6(3iYV9Fb4*;+)ALf?57(F_3c^Py>bw(DbH`jOJ=FkTKs>BzcNTXWWQ1TS!xe zA%zY~d$Lhp7Y@!nIM$e_N9IDH7t2gAVL?#;q6Hr05IKLPE5HrX)#Ugsf=Ai~_x5>nZAMn>Ki_)`szNLbje-2Ze8MTB45iwzuwRGiLWDaAj$Qb_zN>lL{g0=EayDo8EGmZyB8^$!z z-Z`!ZM*LRTE@FWN1Ae}UA4-+sn+s7L#ju}!VEv}`i61J+PSTESF zQyJBcED8m$-n?znU$c!+=1FliRg{%e6VnNH{~gZh;!wKQPs@suMCDQ(4Q{9wNHW`>{wFLm6tj?RzLf<446py%u<2d1Tjbw^bbmX3p=ypoNRUU~1vlRPZWPURcva zb0ugZLNQtES@PbCf5RE)*tE;XIWrt*#c?b{Rokj69OVGb!2t}5%cy)Dg#{+3;B##= z$I?w*jmz8MFIh6%me;CdS)S(%Ni!U}4~x(MjOw&}2#>qsOxu>#Hj8CS%4K{VWwA|e zRvV7thz+S`W|QSddb_{5IrPr=D<_XL{m@|(ZCp7~l%V7&vf`ZGk$E0pXU-ktZZF_agd|5TyJRJdLyXJLeOr%3|1 zp^6lSM(R?zRKwZIN}1^~w4&mNZhvFLiy}gjSYxFsn8>UQyH(*5Rg17!j0Nw(EoACA zQ$oh3IVRUGzmY@o6`~eI(;O0rOf=9dmlp!OYkKi{0C7Jf^7=jSh#G05+3R4=A@Y8= z02FR-@BU@oAz$>v)!mCX)ZByLy#K_Vl{?Dy6XejKz|pY#~HU6p_-}TYZL`q@io4w#G3}(DN{f;w452H+V3i=xl)GCzObpH?GI$d z^zXb?VRkEmyZ;S$8V;uT*-UvESL~yPOpW>hs&MU5xB;zmCpC+w4;f&rcgl)E?E~Ca zIEwRlFX5TY*#XN^OVlSJm-x|T#N&GD77_KBfj5K6ORbpqW-e*LdOX1j40x&4TTEu1 z84QbYtJjHp;Cw84GNv8R7Bv#L;Bk^JV)T1jGmcMqZ-S*6y%b|PlbAGXmp@S7Xf3uj zOfxVqY;9e*>GJv|TNe!D!tSTe)z5o3kxKn0_omt_H|l48v~l^D&(`2sy?*(yw(gO6adF17_Gk4c&cR#Qt-u{cm1{~EmQ{RXe8-}@2I9ogKo*$g8!?L#f z`TFH2;E1ohqJEQi{yePRRlj>!-}t~{alte%tkti8Q;Yn9i{HEWIjWM+Knop5pM9~T zIhPyhaj$O^(0PK5*#z&BX+6v$1TecG_!B z!-iAvZOysM!Qys15c`Zq`vBQZaG%0tb${H9eWKfUIc=sTr9rVkqC%-4Tk3rXT2(Xj zB1Vj;96Q=28abZtRE*L>365|doK3X~QNa9KmDu_b4ZauZgT9Ymkp5Qmfn3$9FAb%s zv?chbPv+GW6W+lf`UGwwoRvm7I(Vkwb)Jh&aId0+NjY?a$$SJ0>@Aq}DjxB@d;)e8 zfW+c&lkH^pkFR4_{pzu#^~%)=j1C4P$9GnCcF(Z$UsCw%<2S_~cQ$lDxa_&J%J<+6 zA5(5Rb?S`HuKM2o-jA>BPfAcHTSjAeHkyx7NppvcGP0@i%_QDL zjlF*+H<0VDKXQVSIys3nQFjV&@X||3?Z?Q~*O41v_TT~XR)8jiyowYG^n-+)JzGf0 z9h>Aw$e~AaJuIB>sf!jq1b5g~(#v5aNl}w^*2={#Fwp5>p2I>2n~SVe)UOu&W|Mpa z+%?K%K#;`|*Rtq7^pN z!15Yir)6koKDk;d#2z?vMfdWNS19yDa%sI*n`G;iX6+YN2K)A{H?!%uTAfU={gaCq zq5VG#?Qco}^f=7eUWGn4gHh)Q^tdz9)zZ79_edX*J}N!Etd{60vn5L>ij8s#snuCCZtQOJ2p~2oaq| z-DZa(`x~ZLBhw}Zc`<_X!%r4rN+)s-&S$XY@lQWS9(&m@r!_*JlotRN$im&dsA(Ez zCIc?WRHeoFOl3_)9Vv2KW&>I75qUuAR2|6+dCTp~Wcx5vPtxzZw(T~xe#!wy=!QZ1 zJ8Pb8dktA_q$ts6s*XCi;u2lcWlvMfSXu?hM$zYr(o&R71*aniOkR=4b52$Px4>b^ z(~p1Zv3l|=H*%URPbT|1&Ok>eGC?R_oS-U4crke0u!Wqx6S7Yw%T6$HlDj!%rot=97Y zS734cIQ)-Ed{KfYCvY8?`O5L7#@3$3AF}24pkE%5PW><~LE%C)`M>a}V7$A@MFE*3 zpul43mXUX*jYhir>$v=@EW1qnoz60Hlu^bFw)u%MGdQg8f9?QmeR^+SaxQIL^##ZI zf~$Sab-(5&VtwPCuKP~+f5AIcwz|qxJOFu**tn--vG;vS;0gc#-(%X{Bk51a(19^b zyO<9EE5qP1!I2(^AwCglMGF|#bDb_(9L`Hw z)6$O_^~f#-jWc>ZCC!1WZItw4j5IfztjIhdPwyRp-0K(a^KIKVJ=yvClxM_JXT@#+ z2xFyvMaE=Dd$j#BGfli={mwR%Bg2wQPSN!=X{k;4Ecv#m%ZV`~K61$+ipl91rv)^) z=yCGbs(K3G=QEYBs_L1a>;CeWFTecqFR7k-8X)O2)jxtY-1;zVMLa1P^ilFgz(H5x z@h~A!gupSdjs$6OqW0A8VwOKo@F@~5pe`6DXlL>S69X~#2`i|Dl=ZSul1%6uJnA^D zT7giWj`|xTk3=iI-bx&d`s<^Rc&qJ7MK+6-nr8&FS#dS0x=s>;`Jc@K6U_JSUsao( z5-D};EP6|@Z8@4ziF|J}3B6z)Zu;60a4qU&BlLrKNJ(>Bk=HjcEn&R5aUChviXOK3 zbsL*wa4}ZWQm0dLDwvDlT-=3r{0RAN>2B$M>0#-2r9UJ^Fm`KX4p8PYay@wkxd++< z`6bk)_ACPHB|{ptz#%dfiat0sw)~x^NQs8aF%r0qp+QnHhlZKxDHdan(Y)a<<8+Q8 z>iic^k&(DJ&%^O5-coQc$#_3uEFhB?7-Ob#<}1xsbGGR6E+({3k>^aT z;r~pO=w zh?{d!AJ4_-6oqFhQrC5p{0qPtd(-^v8Ci(xV4U0>&r>mVA!cm^=W5=w$o+0ChX9c} zPPtfVlXj(8u{+Elp&Yx+2^^QgFEM3<0mj!YHDs3NVn(w{z{R4bsV0V=aH3nf%!$TS z=4hr8V!i;3y@qTOafGA*_gW{l`osMlwK{046&V~0Z}s4@lI$lQj@A+QC=t9rVmdK3 z4bG~`7S*8_Q|_v|4=#&ARNIgh-C(kzQrV&Hu$dJKRnmTs65;TlR^;NbgR8FW>XbO( z?;A1$uNuYfZ&G_)jZS%wp9vgYbvGdkl~t5n-^tXC>} zEVru_Egp9aHL3eL)0t)HnB!xZngiyIYM8x-Dfot6tJyd;A&T(9A;WBUXi-ClGw6l| zZ?#)>nl>FqJH3~u!@gY@u92Ei%y=Vel}#6!vSg9S2H@VngaM7f6##3jtAuC~W`@XMhKZq} zATgf7r9|U|FoQBxE~?$Ov(otli#p(3o2%`+wKdOoxzY<$`$to|KPcG!zb@&zNrUmpB5+i$mm)86 zl^7vX@5oC96_mug?y6W;eJ{Dh(qcoeX{l98*5;=kQ5O9JuRqM0M5)wP_Z1DDC{{6Cy>WYcr8E%e&GSsI~0VFJidqlYgDVm2%~ zcE8Z;75cXKMeqxXDYrWvHegrv)8UwgC2hbuQAZvR)Bc`x!l9&uN3ov^ZQaquLLOIF z$}cakRL4&LLpC0ylw8`LlHo8~O&upvUPY#DEs33UHQq!&mcjk>F!@=ylX~E{9S5K7 zwct&IbLxnWJpt1?2jdJl8L;3$n>A*r<|%k0b`&u`fT`tiYk|x_I9Cn66L?`UbV46idHJ!`D(|Mzq!KJzwU#T@?ta6 zEz^k17ywe{e@$g>zwx%xN~M+rZdgpJ&9|$n(rZpy+NHN(l2suLQq-1rs*zuH2wV`O z;MXEQbEvPodXi)CvQ(!Xa;q2)g>S6Jq#jWB2dK z?;hK|k-SeKilGpdg;jFpJ5PQ|5Pl;)vk31CQg24JV5S(JT@Ba0?~=mH{1)cPB0J{K z?mqidl=9FEu@)t%yx?Et{r*bnM)26B4o1Q9+85WYcHWrxaaD5$2zoTkkmIF(^ zS=>CAP}fXqU>xcJ9z%7(Xj2s{4Ou0mn!(|YB$kHNb50>LqG3tnO+e>dXLm9`;y95E zfQGAr!iP}HkS%cA8RuTboHeLk&}^&*&`FBrQ99;tmU?Dn!WWJltLy<9@uUABMuXkY z7&Zw3G$za086DP3WpBeV0hwXWovqUtzGxU1nj@={II_=e1K^lq`3@txiPufO_&oWH z$i*9>YEoXaEBKyv1d^9qO=rn}FUp&`g4zoPs>LRz{4Du6a>ZqMg?*!=S*@&)==|5q zk&#`igB7<_Q`4b)0{Xa1cZP7(bwgiWjhZp7WS6{B*MjZQV&A^SXge_P3feW-DF)q@ z%Lbhd&xyiz`yq2&JpFT_m2fO^vQ$qde^TgdD{Qj0zPjx-2S+=nemV^4_}tFUxpDoE zI&B(OFTECX)|R<@zbze-PKYS>Pe?y6{hIV!7)k166pK?3wddT%7{FcZi9VwoH1;2) zxk~d&pPa@y5$*_<=A$VTngFn~x=8ZGK0eRuaD?d{(AIb_Ly$)zOG}MK|L-jiCI~o_ z@s2ve^679uIriu|c5aSY*CJ>zUUXCP**LS*;#+E+UI9~A%GLUmac|o40S@Thgk4`` zPG^fIp5u~&>4iz9Fofn9y_8Mrqdg6)6_L2m?u^()Y{CeYN~B=(mu(x zSdL>_bpX?={dV`a{>-ivV%|~urIV2?v&t}LaB-^|bG=%3d%SJ{s-@il7}NbFo6@Ab zqXft5+-Z;eHOsz>T9#I=_Fq$yWjBbdj}b2j!$A8?eYV=`1)2>mL*%BqlK8$?mgVS* zTc~>aifWBIb?77e_xFR|8K!yepera}g}#9i5=TucL=UnsRV+d$B>eGm&meXXr7viS ziCBpx6>~M^j!<)*Vb4d69ic<#(B|T$5tIgu+|%9+nau}spZNRbIcnO@N!tu{<;pAF zh|}?9mw6%6VL17N_1f-NYwPPZvQ}HacLaW%R|(%14$`vaYC4;}%MDd>rS2KWPFjv` zx|}`!;{NM@zt14v3R6Sd)c|M0_wsU0`frfmgwGvIebiv=2=UA=av0S}&T0gYJ(Se` zf48Tdy{Cd1i9GW=vL^oy=R?NX6R`ROJPtYh{E+RtA9`UkJ{-M`(%TqI2{}sXQ9@Go z4kq7D>FqKm5g!$s&&%?8Lh>cFcMM4Ne~=3z3XHL~z33D+x!;IUM|&c}rq&D>({3w; z{~25a@@!Bn1|R(3?uC9a=$AW(cW&q(T7UNS=WctFTqp*+Uk!?VvUd1zP~3gCQ~u!f zJL`vDd+zmp^6uM~HtTuvcJeX6{|`xzVr61$O$FG(TZ>o)b5&8ot|(i}gT8>+MmRgL zIZ!dJx4UG!oz55g8C+^XYd96zu7HZinJTCg9F72gA?o4AVENumQa!Y6j+H+!@ZSUW z`wFvJwN>!G_1Fl@Y8vXAZCZe6WG%9^+B^z%gMizbI-ag$SpWrhuo%~sBgEyt?r0h@ z7}#dh@qOPlnH;Q~l$l<`a+eiy0B68ohY4p2)3|L#yPvC!ND+?CHOnrCT3A4XsBpvK zRh|M0@sm4d;TNz zzf~A(-z+_WY*ffzNS49#nV>^kGUY6v;PyQ1E;#cOEL&M1K`B@30w|y+(^zdHIVs8H z3AAyth)~pEN1lQqQAM5!xRV0}(Y-k8HAgcJ_ua|*hhKArH>&w@R$Z++fL&7uR7Sc`Q6}{*383 z&Rg!tnCn-ITIe-{Rn1Fm%uwqTZM)b(`)$~PrL6`{FGOu$SvK_HszZtd{?rP}KT7V! zf4=xUy&(Kq7e=dN(w)%m@0b3q^ru845qJ`($!joDw`k4BSjCwWgUrVqAU0S!XnOEN zp*!~kIixzEV4AQ-RRrnObe>TKrDx_?=DInbAm_hOWXO-?l4yiTtI4BLG)j}vCOVC9 zlXfwbg&{C3#UWUii7{_Lx3k64_s=tQX1ys+cEON3+r*kARM5r`h!b3CZ*xAv6ACA3 zdCKXi8S`k8;2{M$<_vBtEXHo(_HDA1YT%pdNSz3}>ILkRijyvrg1UV6;^#rN+&Px; zE@qqQ5N_BeoO=WVAq?d6mMGfAH;tAbdozFf(vLkmKnG-;w*Ik13Qr;z1<}~wsjdsS z?mMqKY;@-}qqVxR($re}YkCDtW46^i*l7+m&v9(i&{^x!t>*Xt!FPy{92i8e2S~q; z`K)eSchDDQfFjkz<#tgfW}6rQ=gAf~9VEu^Y%C1XG_M2qcryuX4dthBlck%!V*q}H z^>f5h2L_N=o)pd>fmIhiX#%xIQ>0`9{nXctK7_mFhZ0@z^`6xql67{W@IT;qgg(@h%=@meV_j`r>M zvz>8$)S^t)bQ3_G(K>X@0=SF}>>T`W)v*AQBN2s0_(4&61Rp|2N>5$EoX;i?#?whB{sA6GE?syrGSLCNKkf20 zKu3IYAPeS$OcC;4Lf}f|-Q)b#9IyjAY&6aN0vyfZW!_ZNNKngBB%PTh;LgL=2%&Os zN10&7H<;0nZIBZ69B5Y%o{yegA5j+!5Yo6B$qbbihDFqPc!qAJ`Q z7W8dU46p3E^27H~Tr7n!kr=@eKyNR<%i3qB#$vw1&qXAiZ zR)`{C^i5>s?#)F89o7Oz0i6J>d=%`J>Rc>&cP?mk5oHQC{$`ha*WB4LYUMa1G$|Aq z$zocnYKJe%>%*MGES;aJ@{y;SUg`W zl|Dc%hsy0@vBl(~tPED_lkXnBFDq_TBNA81S}_^f)u=djH%|3#-Th}hTTKR6?{v;= zn`>F!+lYKUA(dZkI8MX1#c~ypt>%}(e)*PaB`c(pgD$tLRH%opV6*Uo9$ zEul!~b^v2x!2u0#(X?~dAW5yM#T#oC${t7v-Ms<;m&>mtXJA-z$h}^-M@*FHAe<*f zldPl-RXHW1;pR8E3C=e$PpV4eUcywaAh|D=HwHfjgP`j?_xrA+GkN!au62=%%qHc! zL@r(gtd6-4{pBpBfaFt@%T7=-8hyTbw>L}C?e6j({$m0g`J|?OPEYmEYuXcIMR(Do zuNamb49#H_R!d`^MUxf1pnU~)`kbbH9vIJ5PrSR>8UP3^Z*9YR{~N}%xpY)I z3w`J|>0aqUXxjfLA2ou2(BY1Pc&F}UcIq5Y8 zr&*UzM36}YaiMvTPYWAEOk{$0PyVzRK78x_k3W9@tq(`V@ZRh0dei8ZqrG;vQJ8MH zr%rp>dO8~fmC(5I)vsiXx2s{l(D2_^tb(m)KYsq|lV{#^*QK}5>8RaHH)?|^sg(+i!bUcn8et_E$(R4B z*6uXbvfn5iyP1_cu_i}_s{7uG)@o^$2~XQ)rX}slkC&BdtLv!8+FjdBQ`3$U=n)*o zuYH1JxGZ&~nREanmwPq?YaHoJP+nq)1g^i_;XSzSixmDAE$9N-9x);Bjd70n5E-NY zEa*!Y&wT6SAOF_JKX*gbuljK-M&zP&2JbvWy1H90bu_b`+!w!kc5{+e;AK_uZmDrz zD>?)4c66}VsS{h|>Bm0(*khmm3vz(P^&o0RfZJQ$-LHSL)48eDy6F?wJa?7WE5xmc z9DFD%?|TISv=MGf7`x`ut?=C%;OCcNd_Eu@hw)hoF{eu8VZmQ#oXIJ;`ryUQQlSry zDMJ~>cmNej;)3D47f&{!uR!nO^91Lwcq{gYYpWaffR#2X$~tK=yIzb)Sg9Ds=8$sF zG76^kx6BNMkoaIqdEme>asWjYHJQ;MiNQqHA9&!|GiT17dzP9(uT)+E^Y-lfscOV_ zRHC#()M~eEsn0Ui0T<8l1XzVF=q?j)@ zUTTUXd=t~*0*u6@x7z1^t1!G(SnglQT)-2S2C&2Y!02EyZC^>)dc!P~ypR5-FtcC# z@|V8}yJ(hJd~;{5G^l@hnVXT1c?VF3h6shTD9;~gAs0+*nJqb+3QC|C1U9i;Z!+G- zj+5tFqD2rvw&j$)s0!%zM7&MJ)kG#Ha_FE=C(Q_X7Tm|Oow;27f~L5cU3R#lpvR}- z1a)G{%1d84PQk$jm)hChUkVMR#kl;YR?}h)vwE7C{M-~q>TW2xfTpnJ1pjG0HjnJ`Pu^Ey`cXleRrU+Ck zwrD$5T*psAU%gt~e{commY}ws=G6N$xck6E5q{X7=H9YdmvnyfLu59Z4#`qB5M@N6 zD=)D8@gvVYRU90=eC5uk$h)z=3M{1jOcb0$E)B{s49!Y)i{o9!O0IG-*=Nl~o zkjudUmIeTSf(^s~c${NkWME)C@c#e<15?BQcmF>!wK4!jkOAWv0J+=f1n9 zp5m?Uk73U>rY9T^sa*@Z?d6-u`k?oOtOuxJ=0c1THy5AJIa`SvxrQpS5wCCI{R_E^ z{qKwTh8DSwRO6GPzFPIn{pf6*tL^<+r#pAWechW_H;R+KMX|iJn2cwjC3J=TDSQsH zc6tu}k(~RN5S6`nrFBf9uXH`a-bn8n`YvauB`!wUYrEWvE6au0P2z~%XFY`WMJ(^X z$@AzCiN*yUr4dM7hOX~t50@we5rZ zwhNzkjrMa_yt6H2-{B+mBwpG4EW{QJ;~)2hv5WWTv*Vd>W`FDdE2Q5yz{c)TF7@~l z&o7rXC&nK74pus{;gq( zSvcYBqQtp}UqdUNNB(DUtmH}O?lsps_a_wd-zxSWWk%$m1piWesoo*-UMoii#aky> zFO9>}U&?*uI-VC?;679$Hist~Jplh4D~A9800000000000J;G(0f+&@0q_De0<;41 z1C#^O1P}zY2IvPK2Q&w$2iOQM2z&^b2@VNl3Ni|e3iu073xW&K43rGq4G0a+4mJ*| z4)_l+4{8tI5CRY?5K0id5d0A|5rPq_5#ADV5~dQ!67~}^6Mz%K6W|mg75Wxn7S0zc z7j_q@7!Vk$7~UCF8H5?u8d4h08vGk38&Vt499kTx9PAxB9e5qs9`GM8Hx4&uH`F)&I6gRDI`}(6JHR|lJf1xMJt{q7 zJ<2{VKA1k*KS)4iK(0ZGLB>KRLUuzwL(W6uL?A>uM5sk1MXE*aMi54nM+!$WN3ci= zNJ>a-NS;XMNkU1EN*qd@O9)GZOcqS4O+-zGP9jcpPn=KUP&iQVQ9M!LQWR1yQ#Mnm zR3uciRX$aCRlZi}S5#NPSUOo8Sx8yBS{_?UTfST_T@GDnU9?^VUlw0rU-DpVV8UTk zVZ>r8VrXKtV&-G2WPW6-WY%XQXQXHlXijL>X#Qy+X?|(&YG!JPYt(EAY%FYyY`|?Q zZw_x#a0YNXaH??(aVl|Eal&+jb<}nUcDi=>cT{)Gcqn@0dv1Had>(w%eIR{Qeg=M= ze*k|df69OafOLS6fV_bAfg*vrf=YsbgKmUmgxrO6g_4EhhEj*Nh!luuh~SAPiJpoc zie!rPizJJji~@`(j82TujV6tXjp&aOk7AHYkaUo+kkFBMk{Xk+lpd87m1LF`mJrDmm^r#h(C zsO+g6sZOb!skW+Os~)RdtKO`@tt72xt;nu4u86L>uMV$bue`7lu&%L8v81v3vWT-{ zv*xr=wA!_Hwh*>Fw&1tixPZG7zjVMHz-+-d!gRwp#N5Rk#bCvl#puRf#?Hq=$Lh!) z$cD(W$mq!~$^6Px&Fapk(ni$0)fCm1)+pJ|+3?)R-0IyP-Gts6-iF@*-#*{K;N0O3 z;dbHb;u7MHI~{=>cr~+>!|Ev?k?_p?=tVi@ILT_ z@aFN7@&NL3^0@O>^U44Kc${NkWME)C!|cPL&Hw^TK+Fh)3=9rnJ_7(F6ak3qROc@s_d3v&YvPcUzx=Cw#&cq=s9 zvz=5d5aA88gE~GjyLgFj%pM{UFfZYi_`tl3Jx4IF;+->KUW4!aU|z>l_Yw03>Tb-u ziO7A=+@PHA%v-2?+c<Qv>CoVn@T*qIjy=Zti3Gr}dqnTzhVi(@)PRfko%6SVAq$f&HgJ_>u@ zeixF|e{36&6i;l%OjHsp8WWsTjv-e#9w%~|oV2vels2+ZMI|WHSmjbDMp7HnC^b1x z4P{qH*^rc`pVOmp#y*F0K7A{nQMxgOj(WW_ayFbf^JA6$%XZ(sy^A=v_Z_5#_52HR zhywutc${@t1(fT^mHqG8mbtq>%uIe@Cd^7E1IdJ$nHfq_S*o_A(yuDnR)?9HnVFdx zcQ;E}-YhdSQ}&i@cRKt3_UWSnO9ij)yZ6>HKGy#I=!eHnA3Mh%ecwNhF)?+hOFasx zPXij#h{iObDecfM?a^^MK_}@Hok!=>1#~4kO;@I?&{gSbbRk_tSEp;xHR)P(ZMqI! zm##=|*&83h5?vQ@WULMwif~bQxVvH$V0Rx&>W9x1?Lqt?4#&Te=^gen&eSkhlAEFP_N9d#UG5R=tf<8%~qEFLj=(F@W z`aFGszDQr9FVk1(tMoPcI(>t_N#CMx(|72*^ga41`f2(Z`abx|3d#t|3?2#|3Uvr|3&{z|3g1w4*=#4ce%#__j$lW9`Tqb zJmnqU+<#Z`g{Yv zA>W8^%pu=|Z^{?*&G-_&lrQ7U`R05JzJhPbx8hs#ZTPl)JH9>Nf$zw7;yd$Q_^y06 zzB}K8@5%S#dmp=q@5A@y`|k7!Vl$#@x%EM{78NjKbjxIkLAblGgiFMbI!Tok~LR+h7DVGT=RmLyyAur_=)@^elkCWpUO|;r}H!Tnfxq% zHa~}-%g^KI^9%Te{33oazl2}PFXNZW_>KG~elx#?-^y>} zxAQyro%}9-H@}D9%kSg&^9T5Y{2~4@e}q5EALEbnC-{^6DgHEnhCj=n24{ z{xW}szsg_Zuk$zfoBS>QHh+h|%ir6bDI;fk6-Guctu#HANRbZ<6&oGpIz3(~nS_<9 zqzUbrS{T`@OXZqzB2?ZK+9_S`snR-;8c}RtDbz}uzRh%{W=)Vtc_7VLCaDZ_nTog> zrCO)C3@g!eO>JG^)ZFR$pe}8d3!9DNT-V7g$5{QeR(T?mZl)G;pvqEPJ#&M0%3LQq zI(E9MZJ5X^*G(Vmj2b70bs1;EIGLPW3KwUED8oWy;o7J&?Jjjv@3^IM?r>YXGZD*3 z>-nZV$W=L)i7Kb5a#3BO; zsLIi1Hj%ra5UV&TdzmZp%e%3)mv$l-_ZwZiI+EQLHZt~)?aC6Pt4ObQ5SVx#>V-73 zTrY=*hZD?l70*paB;_ztE~?|XMC9ut%FT3LY=>H^G65X=qQsyo>0yEOYLFNeMNuw$ zcHUHSG}Ek_KiBw_?X*Y|LE1XW5%E>|%Qg2aX zbNn`3YLiq5pAB>+OHAH~OzU7BF$|a_%1zhBHo&%By{s!;hOshnF2_f@h6(15m9A|! zQE56og6OK+InwemPfT5jJlNN|$VESrSY|ADHs#?$ofO5SeQqOWE2P4#86|R|MCky% zk=1pXv_S4Iu=jqffl*lw_U%k13BqV(B=bNP6;jZj`(~^Ts^biyz>-S2v{NTBcj>}5 zq(NWOF2|&DsM1D&wr%$h-=00NBD7VoQ4+j8>v- z?6KnC5QSU~QLabuHR}vQ6CfwuteCEg?Ut2ZW!k!-Kgc{+){UaNv8al~?!>w*W$X|R znd@qhAgN=Zb}-Wh2P0)am!hodDDWTHW@0mCoK`5Gt2E+xyVDZiVXe6~(gX;n6S{Z##TQqrKosIY zgBNstaL`|8&|(<*J%dV&20Whc}Am1%?vYOy9@as}qETL1| zXi^yvW9-7LF5Lhm-l8|KF%mz)47GGxyKH<|3nNc|xrj!~Dv~MK89-WA7`L#2EEmd% zUg}ZWZ=Ycr;J^~8r|V)%wYC%$2*K@aD`D!9wR_myg!0F^I!3^N1W*MetI@#a&}Fia z%Hn{Ikn6+;W4pxw6oee?ovF1EJ2NBw0b^CMD5`;zkS4I?AOh+6o-SI8u5`BPsv?Q{ zXvy3(0}t336OL_-g;aV8*kJpIM^#Aa>T2)k#GYApMI3|F6i6xbr!zpiZlw%Z!Vn_g z5wn@fm2k4%N?+uuMia;Fd#6Y<(`=DB1o)Ahm~eVn3zfD#w4@mc+Z2TaQ0IM7Cw|Vp z@Vq2f9kH}v|3XLmNY6fWz~@gFWix6a6iH*6zL)+~n&GAlqrIpGP&Ek4=MRK+ zf&i}7+QuT^Rtt#Oq^oBAW~```n1RETLFQ6%900Rh|ucsX-EU(>kwC91(-9fdE}%-Y^5<19O>n`@-}Q z46j3hay7Jeye`60JK5itPlFL`PfGhYxhG1Fou~-f~s*DMgSd#KHi?9yumPV6VRCiKUkeZqtlUTiQ02c-&Z}2 z**MG9YHWd=I0GnDIe|}JC}gwuGJUJONUlb$dkHfL9n63fb5V`(LbLXETeHv+VLuXMgcDHJ|wJ*!8i0$5?&k9?)g`tFb3>xI3T%B4M;aZ5=Si%nozcz0U zCf+M-8=YC+bp2^|v{mplB6br|!<0kO{57C!A&9+2E%&{j1fGQnJQ+FNlW+p&_)jn; zJb&sn1@l7Sz<&X@Di$JGJCVV<2yM?bmA-VemO{UbY3pCMt%2uIBkLlVYlFFm2x#FU zYj!sNc@vBwOfg(D%n&XZmF-knH9S)zQ({qhw<(fBcK5M>qec<&Jo$e;LKrn?_m%Pa z=jaP%ea`Ov>Kr2^XZKaf1?TAVEOhp;Mj{2z9>R*#=ja0rkOUY0zrVDSdiETx1wHSq zZru5FS4N`ggJB|J<-j{no%l=)LGNCGU{ThIl|uH0K1bTz**zlfYj&;k7{>827_zJc&fbe#t3tHN6{A&V#u~p#%t&nd1Uhc1sCOKgd*82bkZd9tH_L zku}n((;@~|ZA+UL$qISILJ);y8hbK@B8NtUPc{-8MzYam(t#^KHS@O=+aTdon!#{^ zKJ5e^xokq52O@E5sSc19Hq^7wPa1odHFg>JEc9n&$8D}l_ySx8p%oj_9kzDeBIqY$ zQG$^C)mwP7faRYB-Zp4Ef{xDMB5|?lBw0SdTh=eV=fl4W@N63@EyO^reMW%_OgCoe z?!#9i?4YPzHWPzSTi1f@^!Gz#XJA_v_g63z!v{&(wKWVw9f33JPF>k0@g0wyS@P~G^SNlf8m1V8o{|q3#E@i3aW`z01HzU~W9=L$3+_sadW;KHScYK8RCeGwdl(fLV7pY% PTwI$BE<67V$F61&bYTzk literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-brands-400.woff2 b/server/static/assets/fonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2acd92d78fcbf7794e5c03f3b580f60b9305c8dc GIT binary patch literal 78472 zcmV(`K-0f>Pew8T0RR910WydH4FCWD0u@960WvNDONF5T00000000000000000000 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

GeiDTd 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 literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-regular-400.eot b/server/static/assets/fonts/fa-regular-400.eot new file mode 100644 index 0000000000000000000000000000000000000000..21808cc74b4894d5a43e3062729225097d9582ed GIT binary patch literal 34350 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℘?hW)Ts# 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 + + + +Created by FontForge 20200314 at Wed Jan 13 11:57:54 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/static/assets/fonts/fa-regular-400.ttf b/server/static/assets/fonts/fa-regular-400.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2775fa1e16f5acde9c37852ed01f009bf1ca2792 GIT binary patch literal 34052 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 S`M)Di_+IM|C>n~+>HiDY3xA9N literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-regular-400.woff b/server/static/assets/fonts/fa-regular-400.woff new file mode 100644 index 0000000000000000000000000000000000000000..e4acf9193fc37803cd524cb2e6a57bcea8caca11 GIT binary patch literal 16776 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 aueZU3d1dPmCNApWs_bP53vP>X4%m{}NRD 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 + + + +Created by FontForge 20200314 at Wed Jan 13 11:57:55 2021 + By Robert Madole +Copyright (c) Font Awesome + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/server/static/assets/fonts/fa-solid-900.ttf b/server/static/assets/fonts/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..bc640928c36e0d678aa1d199dd128602f4c7f97c GIT binary patch literal 204528 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 N@t^#^6n6Z>e*u;g-iH7H literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-solid-900.woff b/server/static/assets/fonts/fa-solid-900.woff new file mode 100644 index 0000000000000000000000000000000000000000..7a14a11eb7d8746f60f949ee2b159c2460d1c0f2 GIT binary patch literal 104280 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 z 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 literal 0 HcmV?d00001 diff --git a/server/static/assets/fonts/fa-solid-900.woff2 b/server/static/assets/fonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9a4633d9c4eccaa7c60974214eac25a62f6d2289 GIT binary patch literal 80252 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�tM34^MY1QD(;HrI9KuqY&HVUS@jw zFds#R)v|wRQMl2HVtNK$u%87Eu@FGsj6M8bu9LLc>^U(PM7WZaw1RTOsg7SoroM}3d!?}X zawnmG!!8piq3ccA+uKr~eiqAeb35BlX3?Vhn2b|Gggi*I#T9Jer(VMNy)!8@r;7GE z;GnGm4>*qv?_jqllcQFNz5ed+h%ZzkmlAYE<}X&&sfnKc+GG}pdphY6(@8_ zwU^fOhT_$Zp!tdh%X42$xH`(a(iB6O>Jf7!GiFJ#2tTH|6<;`ieT-kv}=OKpvd+H2uU)(dl%^Xv8k>*jMp8_P zW)93QHB&(fhN{TPT%pOl6XqC5hk1G$t8{B=y0)Glv2j=Wh7RTD;Q^x|Vb!G~l{Xwt zhMKhYD8fEvr-or*^2#6eWz9iVcf(N#J*FU`q_FhTy^lmKt$C zrWMlgu=Tr(Z4BcoeVb6N%8Hu`>4RqrM)Mt?gCoJd)Q${{bX)g!pbr*kl7 zPy0UiTC}TnB;eH_Ovt?ZUr=QI{6Y@s-0_eGmH%j;@IWiNh{fkbA0{8Y^)|nPGwIwU z%7l4DIxvOdpS%>Yq;gNx&M;ydw)702Op`&pKYRO5V%w8Jv7D%98DD@W+|xH6ZH_SgYq zL4=YqR3brqr<(-P^=dh$R=9nERJI_ufh{Zook623@FXp`rT5+OYzML>j4Ta5^N(~6coZ}v`-IpWYU2B^J&(A-0+s2C09;bZx(j5B_!yC zS{2@2e_o;-@2Z8W5Ys*;cklCnKDPK9DDN~l2ONh=$R)X^#eU~8UhC7+VlHgPtt!3DT#1cD+SN>%*1?CP@c zQb}$%f9~=w>qJj_41h0Us2SAZumSVa6q_52=tBZdsk|eyC9Hx zrwu)PVCmW3cFNqR_8IkUWRHfbp~f6^41jxNr;=Sb!u4lP&OR?b;bUhf{Bk)*QR$b> z{8RDA%e|>hMC|;jK)+hZ{#bth2MEZRv?20L(&g*(bGmoz<)={>V$w*n&k3_Gsc$-3 z+?C)|3eF#)A}Qg__?b4yJwann$Md*|tu<{Ns7Cw>BL>*^$#> z;(c!0olykrC1c*)%Zd>@fll|})VHWJQ#*m|h`F85ELlJTh(o8k`Ik@qEMY0`6bJTe zlHxu>jWcs1_6*9byt~KgH>?*263x<*^6cH%+HwrGr~_VHTso6F)H2J7Njv27$|B_O zUD$54OjjbdN0;nC`yl4)C%QE3yYi>`FWTqTHzk@-GI^nV zd2HFB+2%zCu1Lj=>J89lq>-R1-scT>#FgT{f2z3M6D31DL(?3{Oy^>(Tf{ASQQRjV z1HC6A8}11Q|Jj#)L_bDrgsFjx2HbffWOz;FPxoCN2!n{$3Nf%C;DKS0Z_9@G+Kn?A zFfhNh>3b`Rb5FJzyKFcqT5a;&kAk4vKF`draMB?bpKr*U)5b2vP;dW;2Q0Y`9W>0I zu;yU=LgmGikMj9$d9^i0ekBg^s(v69L52-!>s zhyoH@u?U#B(WPn>;UWsSitK_%)?!tRcN=T~qBw@2r}h3Jf+BPA(g7vQgs z<{yuv>)MagE*r)gPVV~`Y7dBl;8V>s;x^b;bH$k#_sLA0thIx2jDrbO_^;MXy-h-= zEZZ6I5q+E!hPv3O)AcnHZEC2_bxLMRH@6+h(#FjBN~r6Fbm@D=hwpDOX;ab0M4GBF zu{eK3PX(sUp4hW{;WmoB$B5#PCM}JPdRlf_Df9E-e9KrN*fVW)W5A&zz;q=>F1*G@ zz+Z(RIR$ZjJ%dI{d-Rh-=$g)utiAK~nF{?fIk`#c@&%GZ+4?-Y%%ZhmBAo4Rzsg*) zSVcHS3BhVn`>k6R`moYSQDI@FLd&YckB5Su!o)U;ND#1w;Cf6P;t9^iNKYu5bOm87 zqpYMIntB>@WAU*W?eZ921${FmBVJvoHEOy!1vUgaMOT{?~*yRh_iPfaHkg(`U`d>x0X6&+`uXcowU`3KoGeq1v3(>UZtil&o+9w zI0I`H57t=Zm21oskt$PFxrpp}g-z(BG4IBmiwMUx^ldFEU>41SmJdXiN)^iwFq(im zC%lNV!HYmGvZ&J0@ikLydwVUZM4E;Q%uE&W!nz|78HpNIOXSrqEM-1p>N?ssA4y#< z3jLIFD*@gFgWM&KMgk>j-L--vxuXqBZG%js#R=xpQEdUbN4eaxgaNR7_%PjLE64<<#F`(7skXt}4$dJyD!cyO@5yI1FNzdbCMMWrWrE2{j83H#0MZ)C{#U6uYN>Fsk~3?vUztGYUnhAq_>l@A zn64i1)TdQ-qA8N2D8NiX->c@!P%K&6EJgn=%vFM9kboyuiPX%l#h{&uN|K%L0x+Tk<&RgXpGCn zJEFxvlK0hUZ*UW|GIt3Gkxiq12hk}_t%BRx0p0V&85|NoYdW9RfKKTW!1wMOgjWGB z?sD`?>MP2uT1|?k1_jO^JLd-`<20kQVqDazxSu{JT(yyO9}?#Zbc2Cii!9M%)MiMl z8JQ3gwK+y{-CszmBDrRu^AUG<9~Ff)Eu`Fawf`v57cNmIlAsDsRp59jL0z&SS{)im zyouNUVa209@#Bj}@FZO)A`G!Y7KRchQk2w0^Q=mW(PDZtbf4RYLER%AX^HUwF zQ51{rFQnbOgwLNy7X$op!$1qq;|PM|ju}@o<`eI01d(sAGu1=MM?(uVTtcOioRe!D zmWBypob2CdQ@Fei$tj#LBy}I+n#&78Fa9E1taZ}>{FKU%3$#Cw*_Iz;X}cr~xb|5> zj=_~e+u| zyaWHO^(A#j-23F-bHskwpPP@+Yn@{DyXB|s90pJluO9&fTyaBi#$NUwDfJe0^fKcg z3?wmbDADa~c5r3*W8c^l@R>}b48k>)s_+nRgqN5UccDd-4>%MJ`pR9=#;s|RQL^S( zJ3KziVHX2OF6FzmuaaW4yYLmc7= zPPO*|%!Q_b@w%NNt2+`b;qsg%x9&cvfU1Jk)+Lrt=vQASPd8*}iEkZY;ht!^c@w<9 zVTfn=8d|u8=7N1rknY0>!_kEn=zsUfwtGw62$+$BLX>s z{V{5L=v_(5O%Ck2iZ286v2EW<4lGrBm(hJX2e)AD@oQX)#i;A8YStIs6W&79!_9RP z*{Uj*G~43C6sL#r25ljz$6^2VWCl2`U-Ro**C=X=^6}Cn|Ig?;F+0D0h%b?qEs%b$ zs0F_$-qmv<=aEGd5t=kTWZf)pn?*>3T{Mm}o{5i?hkJ0r(=kpkq}*B@`DfzO8)-^6 z!`jx4q|JkO`DYixoZ`1PWTJ%caa`RUH#`dFO-|b^f1&>637g8b zlI6pL|WI$)(NxqtNCR*9C~|c*~2B!-HYpL-TyRk06{~xbYY4S(AkOoCcHVcAB*8<|SyZ1qs&FWcoE9 zB18o8vq}FMv3ZtPvqO%BN&Je(iR`ncSuU?vH5MB!?^?#$^$=izk;A{iTA3#deHPpD z`(aYjTR2h;EnT`L6d$!~`$60m?{zn61gAei^L9eWkPj#AVF40Lnfat%?L zbBF!gT41?1 zrMTPWENR?)lJ%<__$4mJTlDtamK}^cP#Y0dI(vT&ak9!c`>$dye?;CaTNmB$$KCeL z`arw{+FUg-x?}R63njeTIeYBYu!#TS+md*;Olu~(rL`$6_rqS|X%)*f!0Lzi7w6Z2 zAo4e!&E^MN1V@`a5MYrQ5Fzx3^aIZtabZ51fattUm;?(Fg|jk2>yMLz8l{rn3bA!x z5?u|a;RdEHhk9~nfwC2|y?5bX%SES7P?kQvm3Z!7`aW*2!TT1^H*%P1clv~Z5=6>n zEL_23M$WB3L^2cyLR1wc*d?aiH7AgUsN|L@zfD!yZC4NvSm-aB@yVg!0{g$|cla43 zQL%!D_Mk>;6bW&8dTXy(ilzM8meB~MXyzxHsPa8PZ zwR*myd>#r|F=R}lS593!v~S|k2SA~Wx5h_SoP}Dh#a_G#Vhl-U9EoZ!$!#UeY}4T6fkrELk<}>aP$C45GhfxbQykcPXAx1{%7TzM2}MOvW2Tx@SI7r zhOOH(Laf|0U5(u}UXGsp{~P+NCcfkK5n|PN6q5ggoDUEZ*UURC8T$`(luLsJHu= z)4MRP@#RqhpCcKg_|H`X4QI%YhAl74uuDt1YR$p_qnK5ssrOfPt5KIfdZDvw!!L_~ z0SqRXIG%z9BI^J4hK4O{;sEv!QJo0Zu-s83!JEqet|XmSEpuznrLE1|!^`u7fFcxy zM3k9k1h#;L`agUA_x0Yuk1c&T^6KEv0g(SUvMAf?i~lmqYG7cKo}*8Tz#+w4d*tPb9SkmB*sIalL8KsyyxSlx%_9h>q(0jQ z&Gmk23N^0zxD2$RHd1oV+I+BpVU|62Z@mI4Cs?%V6QVQ|pA0~#s_iqG6ccZ<8eWLW zCk;4%MUO;N3{o1ULL^q-^&cSk6po;MV~P~;p)XP|l+v@f|4{uV3mX*lf^J=a7crnD zi)lx2gB{I~eb6MGlfd$^h#idiI z7i~qRZ0nG^S_%wKh}DiMJ!woD!?#Rja=@0$Jw!teYLqZ=vdX$4Ka^2synA0AkF8=2 z-(lC~mCAjNULWZ}y((G97?pILr0h+5h+Mi42yQrB5^p%Cc;kAf9|sAh&pi^$=QwK| z>QM4c_}#hQ*;#YURncC`t0?u%Dp%BL6kWB)#jt?E5s->GpYr_c$4XYR)6)A6JPN^J z@G2$)J-BV^^eI7>OpnkJi}k5|HhoEcQZOAnouby+;)n8`Mv!02*@z}!^P!xo2S1#J zX-cLS#yp@&An*Y{m+V35$k?uZxN`g>R%yv*sKCv5bk&kU(wE7h^d&cfRZ<~aEBscw zY_WMGFwyJIk0RZ-N!w(TvAn~oU2hw1zmk!1Ydsr6q(f+C$3nXjM#>DP`uW-nIEh3h z@6k<2X{&?fRZqzrvOYd;C{e4SH2^SEpZUn1Kp*afBgzD|sLf11f5w8CBgrJ;F%2So zlHn$v=2G3l4iL+#mcNKu4+w!l@PkJ?`F4rc)~?`QuGDQvUWC6^75e?FK@Er}cgPqp zCuc=YDK*rVmTLFVn0eE5*qz~7O_ik3)hQ)X8t3Q6raNfwbGz5OzMH&KB^hwB%s&yf z?N)U4xqqEI`fg~EN-t9ptyXK^`~wt}hPW#GX)6>kGa z;$LF$*m^~F74zB(aoj3==)}^C*fgcI!m!9?hOFQAdGmf4RBTGD-<0EtyDU+p^G9fJ z3>BnpP{DQB77kXo*9Z?>s%hmz)o6;u%>>J!R-F9U`M0&flVKo!0ql+0zlmx5eJ_Ou zv5I`*Crmb*X9TD9yVI3B6{F#JhEhYETm6xTL-Q6nrEuSVBK?2#t3n(d-dvgC)QQ@s z7t#~NL+t)2C~mA+p@>zmB{kn#V1>kCIB#E&pQ@?i!o(G?lgF@AY}mZk-2lF84c?!>+1v&rHEo4gKJmS8tpwzSML)_)0=axf*70IDD=9JbQU}`O_utt|=hazwjqL4_k73rHoI0}) zgz6@czos&|iE1%P8JMmMD>HoICGYe{FDLwO53z!ib>;dh0rU90jY6JP8WFq5Gc|8_ zS={Gi5Z>4L*BQApG43}-qI71)B0$*uU=-YFB(o#tRCZeaCop4*I32r8mHKW zW6Hr!pPb#SNaR~6--2#DcZ`>dAVSb7t%jBMl?^Wa6C*}wm=furL8^=`2M3+(G)?n} zC9HsjTluzw+TtsvRtOd}Ae~I)DKsl412at!Mty76dW&^kUK zqak(bEq);&{7mpc_FDbBkP)Eud(q>ZRW)COOtL7>6@mgSJ}Zlj>b5-Kz9L&u-a&CrQk9i>b5ybk~ zU&M;)FH{XDW=6`FEP@~JUpV9R<(7k6YiLg-?i;+KuP0Hh>hsS}(ABBg%A672{i-|b z%|EL9Zhf|?AvA<9@!b3fwS)@;bE=XJwQ0S)2&&LD^b58{hExy%YU!~X7(|Lx=Pna! zlNIZz))?=>8E&-VJQ&g%n=EtDVdgvoBwjhVeciauUu^@+2Oy<7u9 zm6&KM^Jv^M$D!|yRs_~U#^CiMR1uvambEe8kk+=??xzhajlT_yK8QeV6DC2-6CTHC z>hlhJ+myiRlqv7{xaepmAN9Ga(^ByhZEX{SwOi$*I==7~ZE#1RKs5>i#K!TZV)bej z_pQg;k2pR6AMqABeUQ5C8Nsh=R^0bQ{|AR@Wm6)u|axF>HR6b+Y$#} zQY0TLSfH2-_qAey3%m7oUbw47jY5DM)Xt0#s`QCf^Bx05g*46_Q(u)u#RoSV(@S}O zDG#=Zb-x~VCu_Gi9}E*=Cn3X@7E$8%dR=>KFm(_cn|O9hqUL{sV7*QmpXMT40+}Qk zgUWG&P4;#g!h4u3eRuY#Kc2^fm?M410qyknoV>D)OM+vDntaHQ_8>?0GQ`fGxJ6M* z#fH;kjsw9#_~E_hRgiVYwz*!v^x^OGXk>|9v4S#&N2&8B9oCEl#PoGYNTWX?4KApt zW(Vb&BYSHvoJS6U{z@gbgAgsJ3g|N-tT~J<_t$eo@tp~LP!2~D7d94yXCUveV(cF3 zXYg8wgZ=7LSbV*l^kXixG(|u*Ve`+1q|v@$6g7*<7%umS!haNn>q7F)l<72GvHxUA z_*^WxShl{IA!npN_BtG&odWFGTR4rx(2d4!+@2*WIgXu~sa2()sJ&4NC>E_6XQtN# z|FR&Q3aL8bQm5Wp?E#jJ_Z?rAF@N)dZ;_(sxHPF3cQ1M5afsXbiGR!Mr&$`c<6utt<;OQxQ!z|>3uig#=BJkbiwIaL-;n#K22;v3AVZ`y z`XveHRP$_8=2q3ry;A$(#vAga)TN~KHwvzIGuf2cB0Een0kAEo8G0unv_hLSs_aw7i@3!9jHu^XZMb8m<g0*DBW+LbeCz9aj+}Z|uE&SyC6f+2U^~tIDHn z^VOS3^K^K3BAXiP3ogXk$DD45Sbf{?e2+TdBWfap9d<^pwm~nBv)knkAn64Li{{`r zsIwYC-oHl^peF_~5^ZDxv&QvSc*k+HSYGmyu5ScuUV6Zmzps<7?@$hA1+Qx-ZBb%B z?JPlc=&nP_P;IkgOycO4;j3zXg*|E89q8_xM(B*VJxY5bmnt?(byKBO1Q2RlolI^c zbyFk?uoF@NAr?*s=gGDa(wv}SAORv>x>VjWqTHL_6tL#qekHnYG(R%`vc1rW@^bG5 zZ&I@~y%!+9C?;$LuWB&br`W>6v{kC!K$hfwYZ( zm1&Lv-~Wy*DNoFmB2`Qfw~n70D1g&Cnx&H>>k0vjX=rNTu`OmPh~^0J;-9jD;{UbA zhj=O|J?Q#SFDqi4@i)R^dFS@v$W^ds(&A z3mO7F+_j)E10iA`8i!(YTsikt!M6F*wTZ9BboO9sEf*EZRJz$FgwqzWWiA7E#d|y| zgG6V0>6rG6=9j>69{uy4sEU?fJbs<$IOvkR>x^_PEH^>m;u1Zxs0m*9W_Bn%=BNs0 zOg=3P%H+v2Ex{mr^c6#!mky-N5~VH)FzkylBaLE~G~@4DthkFgFAGMjd>deV>njJ^ z54m<4dsPzQ_Ir&WdUjgMVuhOS?P@fI{D*^f8!-Tt>#4iJAmOSK$&Mf}!qY|)YSpM3 z@_gVi@T?h@mTRdxg6x5nBl3a-SClAM-O8P1xrOm-ZLDX;0%xPl32DKj}`>6zD@VV6VKpO zG+&}SR(}+=UK+e~liVPaR`t~@8EQZfsi50gV^VTQgv##Z?)MdZj4gZ>`9i;~sMsv# z)gqM91rqg1nj(Hr(U4~u4QDUDTi!K>`X*}6BciOr=hK=*go318!t&$-x;2t3BEsWw z`}Kj!X0S0kTr`^WgAvtBsyybywH&G$to<&^hI<~#W!U45kNDO<%47Gq8dgeGXQTG( zN7A2ngx4^ZelbYN22rc@QJgGj8OOJ(Ii*mNxg`qjHB)XX6)0qXi(st36wUOGPhnjs zf{}T84LCNFHySdwvXO!hupxv6T{LQBZ?5iSKO`>+dL7huoFtUp#3lt$gmK|$(x#?* z$KNDeFaMF+g&m9Hpa{TH%2!ZsyrEc)t9ttDg5n`?@uaw&1Fw#$rr8M8ocR3-+w=1C zLGEhT#Gu}0o!tR})OJ%Kr_H1)xZWc&oqM(u!zqJWi0Y;Cuv~Xj)FnJ!z01Xgg8=c$ z*i=(3flzZ$)>kdo06VD{iOcM&w-SeH(_V8bi*ryn>a?(<%Fgk%I^IAE%CXKB9BrU#gVhF6j*wTbV&DiIPy%KIX05CX%|w zOUn+4BC3U~cF!$ftJV;R;$IWw=rYaNkU&>;Y=Me}854d)>0r4TcG9-pE!_sga zx^Pq-&}`7|Z`{`+fkX!Xw~B>d3xG;r{}*)Mx|{o>fIz#bFH zcsmcCjL^N@LE~U_T~Q-S3b{zIwiUi6(RG1nK}0Es({YAI%f<&e)V>DY9n{IXP7+gC zTL-46c%J>%J-hw0%~)MZgs*k|+s>M*PE={^0zPaC<7w;c7cc>A2yU_dwTpvqSb>RE z#EW*Alc{x9SIc~C{$p>r>hX4s1%(}tBNCZFiUcht(M7kisMMs%zwg_)CLi?DktSu# z{JCo0J8&H%nL$9kM<>6uO5THr%=A# zlV~Rgx~G~M?9&(`G?!6>ofJ3g7+8;lSSo8qV1^Kps)S$Ig9YXv&x>DBv)IYb4Hj7%|Q{=oau72S$N&{`49LM;1o; z-?a+t*57;JI5>e8IEcUZXoIiNB@6W5e_zjK!v2S1Cj8&s2*=EG|6NN%&!u0k!2@6L z?4`AwaB$e@pnov;+rn9Dkyr8k24V&R(J0lY|cN=@?DI8&UL2zkf;%ta^ zx3RW$5_G>ydwPc;xQ0Gvr$wLM;%s%7R#V{tTFlPT1kJ<7&Bj41f{#X{g&iN83aW@p z{(T&LcbC@O+1Xx@o!!mNjm?dV&Cbz`ol`(SfSuzG`<*+i;0{(N4_jwLcUD^`x-%mG z=!ly*89Q3oJ6qV~+6*Y}X!zU%>dH&qoonMmsu}biI-d*85cKbdxU!SH}PG)EyTt z5r!vm-SS_@KD9VA%qOO|(up~wg%wGcki?X@+e@3xsWA+z4YL-e#;}NdN5dL0bHm}b z-;WzEB*X7JXW#JLtRER~%=N`_-mV{c@BQ`Wlb?-^ft(kS7#ujt2M2-1f&IVB|10>g z^BmK5nd>d_e`2#HuF^hUtK#%Hlyyxl>DHASfolZ*l_)wKfpQ#NartraOuRwSO~Y#+ z3pcxL62q6h`x3hyjKjR|QnDHob|`e}^j+Us50v2i*`^q)ljmad%UCP6+G1QkC9)*x zcli6;Ly_-qH23|dEe4D*ztlAG1M0s!!ImH@rJ93A9kWb$30FR7#l~moY-UKL^4rR< zCkl6yr#Cqn^}7;DYw8bK@X4?5j&*Jj_zvvIIo|xIeIh7K$LCmQ6saXkTDKXCBerPAXVTgP7Fq#666d167Om?QlK0^q>RfV)$ z$q~|Yk{MBNnDWEht8U@xeofv8K#D{zO72LuJ-!h;LdsyYp_!c(UYGbw`wIWvUIL^1zQOn71Hvg4Pbm159zJTg*79Q%akl>^ z5{L*tKG#1Yf&)C-uT6EN7*#R{o$%b>tA;NOBnvzC$i8|(^pepjRAv5*(DDsj)uED}QAtwe!GQpeF(Dd8$p=`*`Sui?U(!r)%QCJyHFH%EZB$71nA+ z0&M!?V;djB@@ddny{y%o^)FYow4dQR1X{t*l%rG#=*m>}&aJc4X0pR4Bq&Mk7X0Hs zHhV?Sqmkdma2)b)$Wom<-PtOwPgE@1vof7iX_8}`Oo`?uHOdu)ctWI8h}<2S5dn0i zOj|+rPZa3f6(5?GT;jWIcK=Lpzv+FV=JUUnQk<^LLNclxbP&fPr9j!$opc@EOpH=q z7OO6_ArNZgeltMqr5Tfod%EWTseB`N){&LbeEx$!Qm!zq_iN$6N03jcD~9eATa}Bx zzmOb!CMOt>8Xm?>=5(LZ>6rY`xDZ~I$LbB*?J@8134nftB1&EtWc$a-w7-*1Dm;^y zAk2?yJqXZ*grbYi{HP#_p!ArHrQj=8H5!T|a5X%KKu3|o{L)(b%Q#M17AA^AV|L|9 zD#7Vqdx`ti3SWH65UX++ks!YS`+`JoR4oy0U?Ek;>H$G*g!tp0Eyf3*u$)Y#Rqy26 zHe^Sn(%b8uym*QUr)Knet_-cOqJTrgIJ{-H2YvJVrhV>{?bHz7D~vxTA~i3=E+biF zEthx-bN69-Z-sZrZi<3kBU5oi6=w)dJ)uWLY5NPE=un>ZQ8#wk6=QZR3$c#bN* z+)8+NGlBY;%&cOByC;15HBSm_c01>w1g2%)wbtoS$9YqJu{22NuM5IFMMySw1@~!a zoZ2Hcj>x_7Xa)1>vy#kb1)*;Ny(%YqILrlc?T&pH*_XKbf;nr0xr8D;T;G}9V<{G4 z-`Ti%WPQ){{qo%jN6Vgg^ECaCDkoNBiW{jVbx*k}(4+jPd~5-HWF+fmfuHj6n0Qn< z=b-jDz1?9KHOkg)eO0$JH}%sZuifp+d)Fh?4NKnXEof<52v0m-cJRwElcxGb<0PkA zDn3c1Y_^na+-694N)>?tRB;&Jorm(1?Rz#uLWMFD z5-Fd)eNpCV*kXTND`a6X(V7-9Q&yA5WJJvVQQEgDi-kEWqPo%)|3;l&l6R^fQ4!wh zJ`IU59e7>adW+ zf~13NOcIUYcFd<+GcQgb9ycA=Ku^dSPzDM9v&Tn(X}g_zl>g&^t2&l9s5Y2<+drq;}&C8ARG%Szf&&B^q4Pt~_tkp(1_mSm77 z&+r3dZ>RS2fN1H`Vm{2B)W20Nx5$?!%`v%h4vuoiVi=9`W0U=>_TX96m#sqtuMO2X z*L?fdL#_1f_L+Jq0`;=TExQY;molnfWA<9?@Cs#(!Y2I6fa%p+!U!x8o^wlDu6p?N z%PmE|)bV3x<2z2}+}n~t?GOt1NdW@F8Sm&I0?{a-pZvKNs&|sgFY>8I%TsjFCzJ6A zG$dWmjpjWP0(&ZzGw{^bkXjgMC+{PwV&nViWR6ttM1F^OpHfmNqW(BaYZqVwQcG$BA_hXGyy#`2-BLqK2;0sc`&5jnbxUQ`vb@EYU|$a(?ooKfww0)A&r7Q2?h4 zn=FQEELr@y`r!mfO&_r2V2)|S50K$NW8V;5P1$p_d{v`pk^K3y-<6xwYb-oyK|-)! z6boXmT03NJbrRBzV+<1eA+ zKiS-!rj{x~vcW!d5La*zS?K&85s9ciP{bnlYN7lfa-b%difYhl) z8XZ2sH{nk?m}^uws)-M0V(6D?w*2x%M)|c<_#jb&e%1>`S@x%uAkN?iK+`Vs-rx$v z%M+yeG83zAYQQ+3_|$hd1$*!*>N57b#JV}9lT)GTHz&J?c{kd{lGINlD+4|t%v$AH z&QoEMoH+#U-q7HyqT9miY>V9=j#Y9JwfPA3qZ2Q{kmlvRbAzTw@!ns)p1ZN#NywfC z;0gIO!}>A=o3TJDsm=tFP?+Ez-L$y&8}BfibuL_hQU3!O`$!zqCP(hqih0N+eSGW? z<5|6y*{oaUutlGCm&4nvQzfR$@M$_7NT@SZu&t;xC%g-%w9Y!A;_L5D5J z^Gg@W-M78jRc#i{R|N&t7z(7hbA;r2K`BW|f$?-t;!^8Se1cuxhx`p9=*Pt1L@}AY z$&h$zP@`)iF3RbIY+kQai!`mK%{M78KrH7bk;WD{>8(}i391VGzMp*DJq?L)6sWlI zb7m*Vos&mFNdeQUu*)MwPqQY~G!d%ZHjAGIRN$mYY^g+AcX617j31$kGgb8@2jCCV z2l#&+#m5AIQ;mocjpbaIDgkyOWZsEF{!-6}LL(usPW^2I0ciaLJOs-cOD8T_LP0jk zAD-3_uyJ>=@sE2U~$?}tt;S?4#sMr%e_yK)I+Ftzx?vHbIM>1-&sIWDwR2OEE~#z zOTSikTe&cySHsk9l&-xSV%A4GVBhIVV?Wu2Fv_ zat4r$)U>EQTf`%;28p;Qyr!xmws}%EJ5768J(1H>H2)g6dO-O@-O~mt~ zopD~9eo)T8L=dzHDa6J5=%Ocr&NUQs#4}d_ut@->sVrDm0z)2UK*?&Cvz(^E%G=_2Ca#nfD{O#jsxV{mM4b6^#S12F<5Pt7i1*BAo~yn%pUyGV1wfBmX|D6X?eAe2!deK0!x z9`9^_vqptwk~EogkO9^Z0fY;~iBts)a3ea7<%Ogcb`Dgk7T zU3h*2(sygd87InJ#bqXi3?t~&;21{?{j2V|s}D~uA*la64QK@fIRMK7UbYDU9qor` zk5|~`g_yoeB^Z~oCOmy;gSh_|^`>jCZ$zHKAYpzC; zNC9MELeISR$zE0E8j=XPnm`Bb_<**wjTBZE7<5MuaX zW)Ol?CFTCrW-iXt#YrFiq3XanH=+puk8q$1Bn8G}WFX2E!uDv)nf5Zmq}IQ#B!me3 z4fcIP5o8Gzrn3%HEXCZq+;)5^WT4Zj3^UkgG5*!s2c81o^ z-DGYGUmMFIV;n4?3~zYpRVC3Of0oKdlkB|l5@7A3YeXiZK>Pv%rglLiGKk;wGdhf~ zJ~jR2JK%&DnaLpGERAFtXEU%4OX+hI}nXp9T-lm;Z8XA$H|ijR_i z7>|qW`d9PY4iFB5Rncnj>-d8AqJ2BA7G{vFk$!4G&+q}UHy#J>1Ks0=r}&5ITwSDD zUY{xO5yO3D(>pJ9x>xD*us%UOR*F@7kGwnCJU>psDHU2R>^27iSnvxUB^P^?eZc;m z<+DASBg(xaZWMQcb;c{&z0oru{igbQH|Q88%?Zb?;|95Em}wleX{rMzRNu`g%}A~ zjP6hKVfR(+D)(07YnA)lx4I>l4l>aV;+Zsmy#@%O#N`cchg&M>U5 zMha6xq)B+txy(A7xU#AD8kPaclK>-3wLd2bsCyEPzL4B+u8&ao=3zNQFOyLL=_&?I z4^Kx5e$k;_ff5j8@Lf-^+~iHbkjiJJz)n$cksM{38T-OhT?IQq?TGik)T^fc$pr%H zQUZXxdYL;Yfc_U?HwFt(_LEf_rDv6jkBphVy;t|FBy|#n1f}0Qe&$R(kL?FI<+r5# z;~W+Tc@QP(??ck$-v$5-Y^6yE&OFB={OWxp6`Avj?c!9t{|D4gC@8b&pM2CtB9vw< zU1sB+_VO-U^1b@B+rv8-yQsUV)K}s$~7$26W!g;!FAUOM2jF(sQq}Kx{js8!G-RxiF zPkuuYzAbSJGdLF`02L7r0v#F@Ilz=dl5bKgG1lujRytiKTuUn(Q9kVdlw_YbX=pLW(3m6Mpfz7yD5vL9nIcy8s&d@ zJ~e68=-2;JrI{NrQfJ$*dOQ?`^D~*`@184uphq5v`?xWkZ3YLH5PEGWnAwLQjPkXHZg1#@JZBk~k zdAeC7>YuHXpx6+oa1=LIG4OWr%lYvr#k3nC3d?;UUZ^sq`~eo(0>8YKVvo3mc<1{u5=Vplq~8DQ64q_yPi!OU(T61G7d$N`{RiA-uliD{D?c&=e08b=MNqq z)FD)dm?eD|=C;0!N{c-TCBZ?h+{dBG$E8XKQP>5#8KWx^BOe3=xlDoQcy1GreQIdX zGnZiDorgw-JuGZIx)WRj0wo>@PxK59&{W)1A3W4f8njHBAb*bXp|`)`y}w7g4%fc7 z{9{VJeXuyFH@N**5ghgm%4gD6*q<4brZv1>mj${qnoxJ9ZTOo|4P_PcT2n^@yP_eki(Swfk zdpb$=v-b>L!I>}0fufnFV=6B83RIKfXW%1tYAcVZ_Qi5DKNQANpV=U`6j_yMJA9}3 zMp`jd138(6D=0#K2ao3Kt5AX3U^$*{VXuD7jnv?e1GZ{!sBeacbU{^uQ|Z+rxTjfCyB1N>|b;4{f(GYzcIPXyb;Wu=arOAC>0I&9XG1mumbIr4nW zS5vW<{_Y?S)$jaz;^#>BU+&H5fRQ+0@l8wkn5dxNv)Ge8=y_M1Zo5LbI#NS#dJmkfkjHmDZKNBsLz^E2M zm>DW}Nk{JDo$dW(rc}CNOVnd30@!ruktlyfZGG#=^Mb6ch5lu@ zx6%Xt?gEX3GcOcm&SN&IREmA8vPQ+VK^-|~cyB`}9>J?xsLebl&wz*Vr?i}Zx3hDidu(5J5VhNkCCD%z%rkKB(R_*$UMPT(DbJO zf!c`(6Tr5S*10Nr#LZu21`j^%)_H91Bo6$T`y1Pyn&Al&I99Hs_>GRqn3Yr~v)g5S zF%{2;L83DS?-;SPPf+^$@4=pd;_@N_XJKOOxW`O;Fu+XPz2EolNC8T3s@%I0Vto(roO0{pCu}mRd9BvgJ*-4;vsL zMI&4r*RMam5CH^7%s3-zwF`W;5Wdv<9LGn7%q`YsM^lyz9tk4*3)ET5i4~@*4ZP#} z&(r&M&&&c_PNb=8DZQDhp8Zi#MNH$Q)D}O#ASE^qSMw^ok7S1W%bxJTCHNzv{wMs# zd7O*_-Cq?t?Z-nHB}ArOoQNIE-b8UNK6M_@P*8T!prkad9^k;6PH7{E8UAa#Vkr9@ z1p(I1z#Z!R|CO(DqU>K*@ShJiws-z0XO8GS5fxE^nJvHImNj#zr^!-$rzhw--n#wQ zcE2F`Rgj0cX3SjUn$H1W=*5BA(d@7gU;!3AxE$!)mhIjj>C~Qc(t|a6srTn5Vd%Pw z*s?>hA-784e|+3RP%-(*Po+*xHD{xOfDcw=Nz_8X2Z*F=u18doJUfoRb3Q!VsnCh5 zmB@d{W=MS5nXY;MFQ4Avnb%Vlr)2Lt#ZY|ikqHrA7sY5#;(*%x&T}7veJGV1jDKZ) z%Y37qhbt_ed5(&OwAM9~!nD`0S4-P2IX}j>^)KvVGKH}IQZCu68hB))kFMNb{tTL| z;aeKtE`r>U2ZX%^!FO&TSU>^zcjUizxn)2?xiCxsBP!5)gI5*ijK z?Nvo24$XdWI}7ldY!TeUYd@xVvcJYsI7S}T55_&viMY$n9Ro3D-RV)ueiZ zXV)~q8BmT@7tk{trzKP3lB2R5dHQ%}rf<7%g!GunS#3Aw`U|K8wX0XIS)VqEK;Nq% zD%)34rBLHq?BQbar;KN{caBGSct_7+qkx_HEhzjTzJk3yd?+y1FC=3VqV_7MqrGuU z#DZN!tE08iKI66}Yyr2TMk_&y^4co8KZ?*)XsUjCbkt>Ue37MukAi`;ybQ z9}IiHZPW*p9h@IV34;(5A% zrbSUBq|CZ6qL67mt`$c{hOBRGI#U!v(2SB9{$e1*B6;UF zmh$i{qPf>$W#mjN5gtj!eC^mMClDi$!G#;*VaHoUM7d{GaaF~(Zp=q2z|}8V@rnYY zZ{G2*-c-iOAEa4@o95SvjD?Jp7;EzPJcB$porKq^+o{!qc|E@yNaZO8NKuxy%A zXvW|!kpsx#NTlBty!Fodbu{3>rRDlwGQ{h0j+6hG!T9R6Y3U##Os#y<$R>ZKTW|PlpP^F?XThEgR-p~is z`90I*^H&WLkm)z;`IlPGlVa(GRH-NRIo?n+dA1T5XVc9%*6!B39u`#Ejud?O2ETb+ zuI`^4VUQioducH9(M-!ZPm&e!U1!Ag;;x}$oiEd64q%pGh63A~8&K`###0&btZ)0C zliZ+7A5;f-KXLE|#hD8rEagJ7M)+gI5iwixpuB-E5avwWKYlH+>tsYsg-EJ3mHTq| zy8*%nM|!pQa&y;JlfAY+PV@Lm)mphUSbeEYWBsC6NOFPPQ1fY{A&JfdG5o_D>l-hYr1$(-LO6lpnOEl zR8_R^hH}&0!RI~gPJAki7NB?;+Y-f>cpj1VNM;Slg4!PDBPKUi43oE~0J|+|N)eD{ZhRfe3TIloC?gy*U zL{qrTNDn7SZ@A)<p;vTz_q!Xy-y11qaH()bH2r_SFa|t9~VasjU|TgGcO%*mruFr zQ~{!E<0zZ?*q^05mhiL!YEqY5c~m@lOV69^5yT}aVxHe-C)>1`K!Gh*rM+zP0HmXA zx*U1?^9LG}x-xb#`u7Au1Hn7Lzom!u(z-u-;WLBp;)mpk^O5ff`1V~tUz+8$IQZFm zJ&-OcT1bV|Wt>Pz#VU|ZtJz_J1sNubQGI&vm*X%?amyb=yvv|p; zGe)U-Iur-)9o;rjWjRO_A*pRvDa~w97F7GzXq*%(O88L${{;57brflR)m2tyDD=qo z?MpKnkUl+qTWU&neb_kvrIF$YcV8ORkpI!Dg@RuP#nRmlt;Dsf*c|cH!cTPr&djz? zj%yyxy(6Px)E-Qu;Ny|mx9rGI1hG{UA$GG+lOcHYWm^PwFG#C55!Xeu?A$8GPc-H4 z4W$d;>}Q#02kFH#ufW9!;?ri)K#_jzGhMq@o4Ic10jjiXp`KbJdqE(2GVdLXaw4@U zZ%|Me%!RV7JBac{4`oDJmiYS0R~`_D83g)_^c*hqh75dZOvE)(>~7NPg^CK^hXhvC zj8Qp3V#>zt?1WO?Vjb5eiI^t~%(Led;C%0%Q+8iNNz=f>2M3M>a}0C)53R=pu}4Re zwYCu@O}IS_uVjk!?5N-WiE^6D z>wQuJk)9G8T|R$SzlmH;CKn>j|8RvTBG#4P%D=zDQX$Lu`f%2|_HY!Nrq#NFm|LNJ ziIXcF#*iry%OfjA=gLhRJuaww6-6HI6C$83#JGh`B;j)yaY_UAt@Z04MV9gC8Rq08 zmM78*Z&_~qW|&LGQbcD*3y4HA5b33tME)p5GpUN`!$t|Qv&e$X?2i$7hPy`sRARlp z7+;B~uaJ#I;(~bYFcXdhK41qCL+n7f#a=F?ddW_}EHA04y!^(Ey*mB^$$4|N-pp*e z>6M=v8!nW%6)&JUq!a}Ad8?w#0l{*<_n(rgo9Q!|G(aYf+2n6YqgfHY_%RR?ZFTrJk_?`3K&3zV&W}n(HFSAF~)swdg&{&S`uvN!qE#qpv=d|=8@kw%fEN+m6W8KE>Q>L}lK6Q-vdLsf_Ftt_(b%%^$N zRpjFZMeU&ywb4&zWo(Ilmr&BF7~;)OL{7wRLKj-(0S8QHSe9>K>BXtWLw~uY9hf^P zPGh^J2aLVw=9(YCr2Nl{QCIOED78zxF;G=OsC6G2d9#jmXtku~)b-TJpmr91+{NPt zJsaZ~ltXz%RVBF@G;`4KxpN?y|IeYpr_T%(r#*%y7kJL2>Mfd$(C25HnA>5ossdtY zKhJLPJQe{SH)r2k$VJsDkB8{$#MBBmJgqS$)0pe2c1yyo1ci5RRDVgVam>e8A0t37 z5i^dYXIMfm??JibU|Y&@ULek!TdTV~LexGuw7oc`{GUDHCHb1sDvQSqZ5Mz|(PU1Q z@Y1>bex(qwhvs00*~ssFN+ZqAQVcUz&T>+uS!$6^%{79WHMeca_OO^q+6ZsapQqu~ zQd@7}I-MG2yQ3DD9y9;@dUcE2C#%hiW}9tkT&U+z0(Mc_=T;gpEq4?G<>YHmmtqfa zHA1YnDQ*D|sF=B@gAG@&4`vWi{yg6GoukQvtL>yp24Gs#Ak;^4W#yrAi!*SZjG0Eg zX8I+`x$%;zIt+Ip!IM$~n;m^n7PXE*Iq3e3%J^ZinUqzYGrXO4g!J!Ty7cRbRhj*p z>CvLDhhE0n$9F%a)zB`P)Ay#es%M{#F#xh}E|bvaSRJXiC207*6!JgTqO3tW`rVY$qtGsUw4p%>8Ziu6LU&6 zwhL^@nZ07q5hI0)o0xGtb7w`ZN2=1bvcKX{TPH+LANN^>%9PO4Le9T_8JEEs-2iE{uP=ftN zTM)S(h#)R(_Q9AVxLakX3&W;mS&3q*JNKY@M!-?%1JeBmu;ppT9%0>Lsk=OTP!9?jg2|s4c2~Z~JwqmP zYdP;JmqVz4qujpX)D^{gXtvGqyY*LNcpbj`hOqpNbfA2_ACAw1noOAUt69CJ$)scl z?rKthl6(hkp=B9S<=f0FVWEktFYKQkd&Iqr=8GH|A+ndmc0m14X1tXQ{k4^x!TtMo z6r7CaKi>%uAS7!^-W#A)ML}VXg3l`T*a4(@O}uMu*4DH+6*N2+ zBw%|0yZswXQp^Wtl-{9*2k{eOKfqCV}ydU#wuDkI7xUr|%Y zrzJK+KUTbv>MXaFW?!xm5hB1Vr8=I$F85ttAs+&z zK`vDzZ2%@PGbXh-pWGmBk5Vs4BEdBu35o-nnZuvdtq!(b@}$kHmfMTD^TnL<*1@!8 z&uCTqDw5wS=EC2~!XG4hteY!Mk4tG!jpNLWRUH9p9)+6{jamAr~uI=@2KZPId6p>wn%Fom8 zF2a>ZO2kt;8X#f|wLT}0fOR2)I^JGPT#aS$35sQTrvLEEt<-ZA$=BaLAm)i=2u}21 zcCnJA7M}@|joO0>p;b`D*-H5_Yect?j}l@oqML|!JH4^%EgHe9MPS-E}5o$xZzI)326HMH>@ZH~*Ucbb=j>CM0 zuHGbsY85CJnB@v$ecXUAAd#fVYHTzL*jNCf-2yb1T0nEDM0-hF>eYRIuL_m*U-pR9 z24x2{RL@sKVftnKQ=X4Kh8y)N(f6#0a^Q?fKL8K=Ix?o*Z<(ba_w$jQl_w?WCF9yM zV?Ra;um(?R0fi3vJoGZ${hpctG&G8-0RqhF`YN)`Ys)EROWNpGb4O^Ii_7{l#F<2I zg~bwRYW=~Tbv~259M#-!_~h0@t-2#rSBTmJwfXB^N8~#0H?2xUEJM7(7%*a0M67Ny z^k`bGa-e6JVJ%b-?>^UaAf9>SoLa8cMFAsqC^yN}?YGm?c|6hbxn=A^bJ>mkX=jy? zYgWqhC`mpVsfoaQ#l<9865rUfIlDwWbGO@@j{cb>T<$N{Q*ewFzZURwJOCj#R*+X= zLbOFD_Px}E)qOQ8h1|hyny{%5>eoJHx_0Enf&V&bVWODU)LkRRtcT6+Q&j%vmusZZ zrkrNVTSbac3Tz*VAj^%$@P?W*%O-^zmDOh3D(6#-g z0FQDNKBXLL0b0dC{I92#c7rSMqYq8Ti^-q0titYGS{7}>|EIhq9dDUD8XXkY9kj;a#~d%P(pCerkH4@u|ql73Um0 z7=@-~B-&sRWP!1A+`PKUBk;^}RN&|?`x4ypIJwo~F4A1ifz>iKV2Q#ly(l^G_5O8k zcl=ZGU=R_uw%pR3q<%z)GJ71M`F$&?bK~%YW&RdYT*@aXbw%?|tO)?i7cfuZ`aBhd z1boxRav6o^LD|v#LHyVCOB10ICz=C3vA)dBTaZDL=vhCZm>MkrUrxI{>`yR#|D(Y+ z$Q#_ZKRR1u2trKcm(Go`M)QNQj<2as^4^+Khvjk4`v?W{ zOGKtsN}zScjnAkcCglJ0=^u;a%I-&}+T0`tr=Y1-$}*|Ab>|#hhNyq8J=v19Jqq3t zUlu<`=}^>4fs*c%8a)`-frIk=)xea*^?oW-X9~L^_s%V`Sjyri+&l9mJxGoWcfIguP%gPSgm}wbSNh5Ch?zD5b zYAqg6q3C?XHCqyCV`lYsx}PtsBx}|G4JtICR&sO(raG@i`kUp42#g2w25{!)qPbJh z0Tr6GivS5#ykS*!$HlrsZq^e)LB=We&U*($?i`J z1a};3QPG1gY3ujEyAe}<)d6`b)KS{}NAaSU+KW0Bw$mh3UVW^q86$--`#WmI`MtJo zG39X*3|ob4Is8!k!tYknzMR8mxXYjnriAMPVv-hRma@ygXF8R&5y?a0m0jG*lgn%) zHW6kO`0Bh&;b6w;KrW#60J(z8Me+^SjH;d{kql*ESyCUnvJYxh7y-!w0@&}{1tjt!G{rlz#Xm0q#KauusN z^Mtds>2xsZyhrg@z88FlEWz-XN23*9#Usf}u|l`s1_^vK{pFc|yUeMCv+4RDpuGp% z%?7Su?+(R}-VE?xbi>=Yz0mU*U+0A-#c+bs7f=S+$_+L-ZEYA}eI%FVTm^`}(e4Uz}>fPb#HxNL$#3HX={a!fN-= z(^9`6u5pHzu~Tw0G+0;8$F$0Kzo%y0w3;<8j=k0%^^@;QiAJN~^>*!|=<9Itg`D;; zire2E_opQ+zWfxMkX*a5X-Az>T7PlxvJ7T@MqY+leSB?pQom3}ig|73qQ{s$#c5X( zA!$&TX!WJBe7@3^Hy2VBBq1y024c z(>71+00l4RFGTDV*JsVGcDaN3FgV#)R;rA{d&4@By_rfxQs#WwDo)Dd_`T* zueaiZQxx8i>XGje1b(P`%6f(qc~K0245&RTK1R%~J;-InS9a^?UXMEUiIJQWLWMePd~Y8JcPzo1E59Bct{rGB#EtuIsFiZ>0jYxmGStdfX6 zr`+xE6D9I*($&YgvBOat{F_$rRga(F_tOtQ5y2s>k$*dF`g=b+h(Dt0w*Z%8%unwJ zDusizbLM=nly0!bO72gpH=VsK0M&}Q`LvgIWv5t%je-+LC(sedm?i)x#)mTx*A{=v zml6B=b>tb*VZ;@!3$)CIPMbD|$7!39V+UF~VOCqWn_1!7xKiu0IWGfV<|$7lr1aIw zS=kD}to}O9>%<*hcUw*zKP;3zy}tSKS1Mn1LxZ8Wo7Gr>ySWF;i2N*nYb2{Gq5G2) z_=OGKhwt-R!&`aRX(Pzk#9AD-nQtvSE#4 zyMVJS)q&Sv$Yv`eq-JrDscUaHR<6`cQ_;hp(LI_YJUYn?RxvIPCHYps$2ZQ}8vGG& ztZM@dW&)?I%kZGnPICG2-~*pNbw-5wLtUFsxwJ}))+QSFc1)o;tj`^*1SGiOvYB9X zXN=52t!}__FNi<;$?cjw^|~bL+vnNm%;g|k7iU&?P9WquWeI3h&_1xTP7EB>#oW_0 z#Gsks+OG^9g>MWy>n%tBl=<@g`F08J4g$mxV8$2br=QJuI`3v$@n}->Prs!$Y4atx z_GkX@y=qU&q~#p=O8APvZXs219*~n>e(8K&n?^G^Dg}tcj9Z%3k0fg+pq|LWN$7pFAySpnd zW;rVXv9~%UZX*P$1gh}~8L&BiQ?Eg-!;YFl`hd+^q!^MoB^8UIJb*%g;|?kT!Wi`0QT zK7@DPRu`__#qUfcMR3iEl}en7uSDSAA-~i1$KbyUeZ6if^QiF}iaZ{pyDhZvu0BWW zQucV)p&_UZ<4rUMZ*IxDoW!tr59YzfU&>B|am6rZ(nh%E;qwqn=>&g$S~qx-RqX!l z3nkg#S-T4~r7CvGfn70#^)zborLIb<(@#A-Vj0SPlC@m|p?W3WPrk+w{_!N)#z0=~Z%bYI zR+}Yi;9f?aDHbAf(`bE+j`|?=S=t0Fz(w8Pk#or|FAmH zhdKnIYpf{~{Eh{WzlTP%V2#+U2+0T}3Gf1VH5P|zghF3SHgf&N7!)!RN3Zzfp2eil z;9NUMso$o*W3&Z7vEkLe11wMKnZ zOUcy^!>u02@w@ydn3{kuOrB~@cyH^g$haRxIsc0{aNw&qGjEV9#uMDkSS;Ie*2jCk z{YYoR3Yvm2c6z|xep9b;Y3WUz{)uDnIRDyQOOB&Z`v}8x(JKzzjE}5l(Q{SKxrTq| zEztt-Bh%l}Ioid=6JA{DlZ0AhWZ0^AxH++;`;OKE17#jWj>1lfa!YN>R~hr_R1-=C zO+roI)pKiHWFt0vTd8>8IKPBD>=Y_N72!Un>~(rkaSB8ALj#Nf3eGvam-DC>t%!G^ z>6hx0X60n%@VPa3HS(o`{G+~NP_$ARxB`DIms6<5cSG*A^tYM%1`*EdX9oV2m@HNFeM0&+iuS$IQinW#j1OyC=6pNKd1G9QX;bx%F^Qp~L0b zHzXvbzxN+@j?`|-lFg*@rpp+3vaFsBc+SM)J$&`EH@N=mdyBFFy6cnrrPT;0H=0Zf zwKC(}%)!Df)-T=pkuPL&*XEqA|CKyzS)xY7(_lSCXxt}P) zf|?QpJVZBV)FPo=Xrr!5q4D(B7bFR!tXp1*2%x(&2SBKorZ6}*+Ws{vV5Dh4o8K*A zM0AwU^Dl&B(1vii3dvgF4^2z!7!h;s`gD3l4W3})`2z`k;x!s9X8N6kv|nKjaa7zZ zt8WXRN^rvt{FuLd734JxIsd(tNSW~I6LSz|J}3;zc7fjZ0dEA};UO}4zozzhL?d8Y zt+K%qU+$+qf1`TTT-?}{{xe?L`8*M)4Sy$hV7JnY*t*FwMNmK0uZx#mCgm6{0gcmE z7B;Q$CGEJ(x2jN){z6$;w%1LA_xQ1Wk4ujQ;0dpPvUQ#t5vS7IsGu_ur#erxhg4|s zsM6*GlQ$)5ochu%xL9)J;{-B=lP%U*9q-9UtbYzllno`NY!`RS+V_7JQN<>-2VDOq zSe<5&QvNrn!;iW0nDkTbHGV#+KPLDCd{y1e{=$^9 zMqQ3WHhAe5%9aCZycN&XuT$E*`z}^DI4sX43mgg(70${pabw?XtEBRh%*W7Y7Pl>m z7LJ$SU!RKtul?+7IR)OFEAS~RRhjTA69#D%zY@Qy2kt}O zhocT+b^&R@Rk05{iZSVCzL7z9Hz|uY;r+Zv)Vuj~N1%ackwv{fM1-xR?u`Vc=xhWx z+U%7sckATVz|)B2a4kIO9hV+PH;si{xkoJ<;Tfrg-H%H7?sC#Ww9kn)vfHj>j2Us0r;|<+_~|koB~GzR$c+M7Agvn3PHLSV%%`MZq{Kx`V24Q4b1ftiqFpQR zvNpfccO4!nxn9)hTtrr)nR=D?*$>UWftB3bdrsci2}V{!)~W|X6)xOi)F%w0@}km)W& zuH`qCHYx3Bx15`HsNtL>U?3~J*ASCQ2~#K@ymDKi;vLUI{Com&yi@PU@9uTzEi%5} zGpVF0OzP`=tsJcBCQv5`evHC?iJd_OCE6{reJBtlrjc zkG<{l?l^tgqUcVi2W=$!RiV1dO^x|Qm69pTNkhbkB(jj8?0x(4g14@xzH%4U|G6Lr z$!kmt8p}^VuPQ6siE&erI*t1(es-$8laXgwA(2+Rl6E)CRnS5!IYi=f#BIfvhzEG+ zCBLEnxVEIubOFhCoTm;FK9L#T#58MYq(0*1wy4CM}pt;LHS<1X(O$N zBX9Av!|%}<{RxZ`PgT0XcG~6#^G!tkK`Gzz|7=Ct4_)&2D}67d>ycqQZ1a5L##drj zdYx+Ow`GB)*=CkMS^UyAFCJb4(}fR;U7plQdwyGqy1+LCvW3J}2G4N81+MVR;Ozw^ z1a8Eo3V^ZpG{RCdmiw>gSz~KyE^EsbJ~@te;Np?ttXgi;`OR>JC@`yyjGZ_yzz5ZT zg^AQoHu;XrAJ+%+;{yWg$(FhL7T2ER2~oT)W7?>*(D*YGIlk{YC>r7=3f@_30q?9e zCq7(XG!IeNTd&okh_U{iT^8Sbl~tjy91pxUA%kiNmD4Zj{TdZI$Es8LcfM&NIo-nz zg_LM{S+Gmk4qkGn1uuvvP+Z;3`~B-rkbz`-KI)QLHrv3{!l2%<)~kIgZ*$rroIBQr zPjvfiH#}t!Y4>cUHdfp~+n0k1cAWqIjX0Q$S@C~1GH9t9a$}-6fsXwdX>j+z<+W=t zFk^z(k(6z_2o(jY>wnD_>^TeRug}%(uJISQ)xts!b{~jSfdFm!lVyu@A|ZU0K65IE zdrh)YG_+>*OZIA5@0fo?UG4wJ(^oh&^}pfD1RV-Uh$!7Doui~vKobJMQ88yZ8PBJ3Hs|dHZ>uS6#f2b^9bXwC-x?9TyAr<|Oc++m6Bcyv`r4GUoPkEGORqDVVME1tU10UYqyatUE^1Y z`%)M5yj|iGJ19QCFysZv(++VnpaPgmV^rs+LiyX9gDGQf zNUUpg30&yrd$W5%B%B7Qy<)leEa8r$j|7$l=x*wtV-;UqvT0{#;OJ$HV7;W5z_YznoYNQkk+_z32m4zZmJyIoyTO z&;01%Jvf^3;Q@OI%(}21U1J?xDf#RzYZfo-W4VYQ2hFehuq1)}|IK{`2XR z&|<~WY@2QxyJ7;|Z|u^VV~~`L4XqR5=qt24y!(Teq03r(xxs~80#A`z2h`8|pp%lsimZOs$aTs^Fxn$Jn+v%%E1SEG^DjI{2^HzUoI=^bEIz zVRH8S47YXWZ4Sy9H(*+6)ebUTXx~dhRZ}x*vYVW5$BG!5x6VE9#u4jqQy?tse(Kl_ z4pRo&+QtJ@xI-| zKxNZq#XT@tj*Az;+U&uDul&LLVIeb1nE7cD0XjSsl zKO5}|)e{vP-4qgo^j`GSE=wbXRPw0rtwk8KD&K&=N@SDy(twl?@Af_xtmp$>H+yAl zP79uv^pAo%@~wQ{3%*lEUPHoV2z%M>ul4j6k{#~=?9Thds04eTVgU)o=-IL@s5XhE_pfeXo#LGl7hgUJ0v(B; zCa^Xt-+lrj>qSy*XkpFLCQdwm@rd=-Ns7{Z(mRpE4ZDwFuhvDx4%HpeYax-eky2!Y4aMSTU#sT{AT!=~A)2JtZ7p4JOh1G6YFY4HYp3SP-Sg7i z>MoY=zSwKgNLqjZfs1uO;NseCimp{lt+bZ65k^(x$0#w3N#e|1C<5|sv7OUPNk!5* z)?NKMOzJBd7c?_ndmvmONsxR6=EJO@wkUxt(S$E{*xnfP4Ie1~3ZfA@7WiFfre0ha z8SoQcpHYs!a!v!x@e}c1E7<7l*YPdc(XrZ+tHCO?^^Fe?Q(jJB$~#+`_L7A}{Wg<; zs>k8})b2KM`-T^C@p+j6%Q3tD^)#EtoD;%0OicVW1v4S6E&G~}2mdKv4}XQRLjpRk zV@}@Iu)a%eHR^f9@KzyQd2jQ_Jf7f7nR?XI0@u(-CUEX@xdq$-CQX34C=7j&cIo7g zMDxWvIIuG|x?at;LoZkVml2<`cK$=;pZr zY>ORpSr%&Su-qR#I@Fsd6K$m87BAq!Waxm!Q!WS`(c2bkM+8ofsGF<6Y#9muuiQ}| z>yh8-SYVt^JJYKe)kFkIsG$xBI=HJHA&2;e=|qjb$^h_g-yPFxNex!LH+oK^*y$i+ zgzJrko?FzO3ykEI^V55%d4S)TJfAEjYB%%3*Px%8z*U9Fx-OesP zfm!b}|Axo|K=;MGGWF_AD_hE<2=I{oOIp0By!2ifY|b9RYf+4hKMr@Xo-Rl26KnlV zlG>E^AkRzw?6N-Y;%yF9dCJh2CGK=x+dj-IUbR+tAP-cjxKg4Ul7DUDr)f~;^vI!0 z(RSGQL62n=bWe3{Uaa$Q$aF^NS)i?5*KUa+@3s9+|KJEabc_b{VfOX_>Hpi6cgzh zuAg~w>xgw$1t(ik;bI2*{xM1|^7np$#(AOl{YAuZx|jUM4t?V$fBWLQ+*lE z>anMIE&(vsIstWv+tdlS$i#%r|2e5UT>0dDFa+&N?-{94yj@0ZRULrsXmhpw)je61 zRl}IYOwLT$f(!^pW(;t6fI&d*Xopq^#2ZP(5K|FtKuUbTJl!iug;6U;Mt58C;O}?W zEDtpq!zUU=2}<1ur+jo`$9K)7IW+yCp0`Dk%rgT7ft2Km2kVK>UHVbS`rxvSr4+>g zEPWh~M%$k<$+60NV8_LwHg&ZjqMS?fz7?P8qM=tdGGnimYm0$T5ye_BqSK!LgG$=s&H$ z|46R_aH+!f_h2t10uShB zC{|yb+r9pfKtcuU?%RWMe>UA4-SDw0wdA4hDGUrp#{Z~v{Qxq}^0&p&zkjOM;_p4G z1|bJE<6H9Pjduu|43|5udQ?V#=>_fZ%Ygk?UN)y>Y@3;!*-QlK$twBMck*B4a6h>p#~%s)mWLn3AZ= zrV~8S1&0xKH64cl3ha0;wwl`;yDJ8B>qFgg4UR^*z&Cy0T~h|MJsH={>38`V7s?zr zR9l&XVmP0*grlufTH)=O&kcG|D9k-uklS>$ig{ zMWSa9iO}ouqz73hR#QJd)Ru_KgnBW5J49YVLq#Fz9faO^X(H40yF}-kg%QMxXy8pe zhV!P8pY^89T3dxgm18bjRubQyj|uU!TmEzlGg#f6i~xS;#&eQ-TKjMORB@iq>};oug}Rsp@_ z-Y0k&CawI4lffxZQn^6`OGh{9oLEKWrg3bOv@G}c1F{L%+2=@;r=Bmr;|`bt$BjHk znfkE={p!)I#No91r&Ufxk4o^soO$ag49Vno@Ciy!ViYOnh1E4chigQU?wR3D?YhzU z7|!C9oFJ(c+R)69A9yp`@vA+odi-ltI8i|j`-g|_g^z#XFlmh6?I ziIhasT}K4oR?7esE*`F);p~GdvhtvjIV7FUL7xDPAxNvlh|D2%!J=N%_xMykcd_{O z7~VmZBq6o3%bi653iJK#nF#l(!+k;vmG&dFF-N{Uv$rO2mShS4t{AQMOWF0GS+|4$ z#k>Jq=nQZOH4HhFFD_8Wgn+O>Wi|gZ3ca6#2YFz~V;biT^mGjP|A7*8b+c9 z+|OC+b>GPJB&AYT5&`-No?HI6WUO81pswRX{Fu>mSlZM86&HiyfruuJ-~;phC=oDp zcBO>(-8JEkMxM=|ez;YPvuV~p35m9g-Sap6#d>A2HW~Y02UMKF?sfi00YJ=!M6J+m zxZ36WIC~ZV1E5;HKyljc$%xskkY4t*%XDr%3Ga!gq0A94=q%HA!kIBMBb=t)EBmu) z7$XRD%((AwOqmky&Rv@3F{oZN%8JzpP?Sy5J;EKE5&1V$CAT~>d;3AuzYo4PIL8j4 zd#>o#W}sTd&-vE~T1@!{y^wz}xpmGIT`GT46+`M8stVLEdDJ_{5`gBq54{*GX;y18 z+q{+H{`dCl@ZoPYiMegROARnz*4h+L4jShL1-ufzTP!on9fRFCqI+pF-SxYh-5?5k9IKBgw&{3r9ALBG^o-0v+lfwo`uz~ zM*OuHL&N-BYZKS<(?mcfJ9-mwGjVNx*4oZHG3~#fatN^Ch%ig}`3K{91!LOe=m%w; zj$}|kU0OFJ?=y|4>r3@e0VXE95xr%PZR<&<{da*5t#}|3Y_P8fMgEbQ@VRoF<-u%) z9WZ|?7QnRZ|9x`m&p|+OZ-W@9euYj=CB{%9$1#^G)pYkcin{)^!MVKsB+ZjCBxZ+O z6I8Ib8>OQr|0yShpCI3d`8=~*$^UFEQb)g9?LzyG@$T+!sjQ1?`DqpEuzGZ642rn(-Lf7Pw^ZHtxm#JLe3B7*;FY zns*f>!;fL(9WdC?90Wgq!tUk2Wqa9;_dX}-_F)GC=m^S6eTS4f*R8Z3K+6TzKlWmG z@9UH_Hcurtf6W=7bvh9RHytqmV1>BxOI5~6w_mjRO5NO*mm^7R&>wKk)X;_2yh=dF zEaOXe+ImMozz=kkX!>doo3~2ZzQVwTX0#UpF`)BG%q~4z;rKyQPEA zmhQ}Zs$CD#ZgTlY4=EgD;Lxw8yOvC>rgjc^vU-WvKXsPHjS~kydmMQbWs#<_he)jf zPu~87DW3D|6#`3tk9YQky>&OdH~SA7$_GqMHIl)k?mlCG;vRZ@^>Z)^hL?eX~guLriD#LGN*CoZDiTxe@=m3?BX4|n~QEk7u@;gVKyr)cKr4g zk&Q@48lH-jfiy|-e04yW2Y}=NwSw64BeDdQx;k#G#~>@J>^diP#!nYwloM>48Czpy z=D9rfW|o_$Yx-6#O4G_~}& z{{6a1?G%?DKj0W#XpkMq{})vF-lrzq^zyfH+M8}q4qc9Gk69KnQ-r#Gzw%gNvg`JB ze8ne9!*M!)J~-KaJ5jTIi3Td7p~R4%FA^&7HeQ_Mg!=xDvu@Sd_}=`jE_a#l`S>4& zT$k4X0P;~rss3TGfe^qa_e?$!X{W_!L z&SZ%NPj>!mNeU2;U!V(~I^sfo4qox;(otp+evVwI)-fYJMUklT7fvPMhb=O&`5tn* zIyWI#QiH*xeaut`ob29?{y!5G-NrX*`%bwp2 zt8F(Z%CWr-GMwLUuf9j!uE?cBwJK)}4 zwP}iU#|gjBkGhP_p5IMbUNJrfmE(>oYo?iZfzvz2bZkPR3+wxXg0VSP7O7CQy8-qC z1AA$S#ml+`VU`H{$!mZ8omJ9aPes^_#=wV9mRlh|yr2P<2y)#hP9i?(0$ANwl0n0%G_q${Xyg;VuHQb?Uut^@!=`cP&& zd_I}5@-=;!g1F(vOp~dWx^Wz$rl-6nY$v^mVnt4NveG2SQ=`$)w7_qtNebwdxL&W| z3kaIBGRtx)?j>SkPSf1}`|5sjTNAk_ce%Ts1M5=n_(&DTNsN}Yy*m2Mn#ai5tpy#J z3be%ny_963l1u4;mn`i!r--_7Y|C7F6Xo;2q`6ypVg7+Bx1{`j@(BS2+Prz|1T^nK zS9hZ(_1!{JYctLE53~s~>vfht-Ww<>mN9`^5{iDhkqnfY0V%8Xdnj^a0iX;LjH-NN zvfix>;uvBA*o}4lIUBipN|eCHP-)_v zfNr9G6e)KoLpE8rZ*df0fh`pfZc)&cjPyI-g6~kDK^>+?z%O3zNwIz@B`Z5){BqMj z(&kWW{u)4d5@cUM$H^<3+t!GS8GiJK&MZnjvyknD_HJpF9BX ze5FpbF&wXvYo&n&Zg?*yjrh+qy=nnyn4dU6=}ekAn;bW^Kx>88AU`Z+;*Nxg_cyNd zjSJLL)8-IKSd{u393L@s4Fj7BKA`m^6LQG4NgRc7g8IOA)K< z;x5=}6dGDGCP4bT9k~~`U{1~mwi^Znew|HdOyI}xZR>2Ab=#CFaw;weX9$i7f$WRolEUD-TLONE|{FNkVrN&Dyk#L zM|)=c7v$?-uqBHV_M=M9@cxKQW(nn!_fInqZ?|(FA8m{(*pZe+Nj4t_8XWDSmqh`z zXVI_9P*V!quI>~3*Vi`y*{*QPSeQVn%=7nb*Y5!MMM~N!*z-XUP&td(IMP6+PQSr=npe`>u{}?H zO}J6K4WPk&fAB^n=qD4OVV&OyqDshru^C|k-e~x8yLr#;$5g(EXX}rY+{N440Se$Y z-~)JH#kx~krB8N>==1}SsE-i0{%~!Hm7Cg@BZggSptwx=`V12LB3-(Knt$piX5AkT z$Uj+y2aM++KE@_#OC(2;q?k16El(;ihm%sF%w5SnO6vj#1WZ!QDh`gZ`G-T$F6NF| zODEF{WK6L~S{s@#&-$He;dqHPLdVABYry!y8ZXn7n;78TbvvT_So5|qW`(~koeZ64 zv=FC!0<^w3#mpln33{y~2}7cPH{jqp|2i;z=63kmZjr~^#ZVFL3+0dRW{_IpFqm;k zV>Gs&K^6fOgZPVCc=y;O^TTgi@h-91x5z<}D=mXMP+TzpzRqPMCI;?R6b*@f+=P$o z401AW&>Q>e$Lco-jt*$mg-ESQxz_#n&BHxyrIFtw6?lemab^Y0B*u$;EP2aM9rwe- zB@GZOzC)>QnD345AzSKhc-%thnKWW6$PLGf`{yR`d(rnlalR)L6vUt2=CN{yeMeZ9 zzX?WI3g8Gw4Ox=j%F6N#cd%Jy0b}-a`9M>O(5Wtu|Ld2!(0m! z?L-{?y9cPDFa5n6qFozhl5MbGu=bz;mO}rQ4E<$~XJYj1Qz>L8R!j664_H>M*yr_R z7qCoXs}{Qb<6o?DqVjZ&jV$KpsD)L?cG}qBw&dX0q$c4MK-T`!;nZqOOhO|6b|@_g zjGJhRxf?!l#QcuBLtNztA&eWSqbIxHOp>JcsCdPx)@kb%vJE@3t-l>WukE@3a*g;k zjT8X#^Ey1h{Mkms5J`9{`%@aAvt2Yf*T~4EIXQsYa|=jC0D43Hq2Cj^g*6RV!Yud? zQl*esUk9%+r5pSHxFO4T46J$!l^~ zQKcfm4=2d1j-ehFnH?nH1o6?N5c^BL2@GHRHk1mq<0=e9yR7*JySJ-3VWC!Az+}}H zcT;MuH{DMr0KKzvrqVw`DY(LRdQQS=u2Qwa?_VWp!Ib3SAzu=&5>IaRS-UQQQHr zx&q<8Ff;?O=e?s$8t><$R);N$+dhAO6&C;fTf^A^BXlk&9dc53`6P>fI};TK`SWwp zqIz7Xr8Y8;oWbB7u)jGS>=BUNFi2$ zuzCi5Nn{_ZTt~NrGLOcgTi88O*1N$&V|3qiyk;VF<0D_-9(sD*Eq8+R7$iv$(`@P+ zzibU`%NQCxB+$dZq{N8ziiAwGUpCG%!qV6H?>i3{KN-rQ^Q7GL%{8TxvxnA}ssHOT zREI;@KW(UDyLSxHMB{*MXMR_x6WR9{8ux^Xw9k7=Azf%Dt`BFO#!x4wps=t4)!U87 zA6qda+-DTGxRrn?4J3S@ZCJMETXwb8@|`ML=&e-r#`VO?}rdhK)De?#AbJ*pwQ zT$7J-KGd^OfRn-f?<0v^13ha1LB0PziiBnrYr}N7T9R^z8vab+5_#YC^8Vo7R(7b9 zZuL6@uR`I4|IIh1UajUcIN3RuO)vV1^K(J%klmHDC0$;5_ZaG$)=-)C&1I)2=&Q7q zv?0+}^5hKAW*aMYIBbloEQ)U(+f_Lj@mkoXq%5t>Uy74b-ZtWkk18)yBdYv`9dEf2 zkg75yfDvaWlT-U35;7{w~dfR?J$58~;Q80*`yQe~%w~^U?g0Ul}5xXD?D`gSiC{Q`|v?S_kNw zE4!c|sWpN9?C*nWoU+#IyHx8fC+&A^zQ26b!&5C7LD&(11}@#@hh2T)J`=H@7)0kg zIZ9wiQY&>u?uOl4<3oyQZ0C#=HML@((|Zct=wmMHHgH$%-xZ>b6|f?J&V3Y!>rYrL zb8UEhH$7SYi^3;;lk}<2N<602+6Af%&o+_Ro5YnhV8IvY@$=VEj~3P~>9}(Vo5lmU z&O^$se)^S*^?JfYnk|jx)(3>SkI+x#2!``lbwF9^Q56_Srgvs;Rblq;*E~| zZKf&yHaq@p<;P^65^_lluUnFlhkXljRgv-ai*>dbuWH}#=NJt9PRY=6j`FM3sI)Rq zd*v6@v=^X0;O<+>mo{$Qvfh+BlS~b|E^g;~=mmMXwa~3vvJz*7*0ZrI6cdKT_#Wvx z0b4ZoWeezK87dR=cg#x0^aekE^Sinlc|0#L4^4fUaJf-Bk+{6xtzgvdfzOwH45AfgiwgGWINK__&BlIk0`;t_ky*HM0Gg{$q4NSWQH1ua|tAWp|kmRpk zQW9gz#Jq9ypevnI&E4sV>-5&cm4$dC<9i`Jv4vyKT)sj-Qb2@Ht#}GikB1zW%$`W& z@~#$jN?tyqpSj$p`8= zM9}##V@wFU6F+e>TNGPvORb$WyvKF&>UeWjgdH#PZnv>@n1;BJD1#`ArJn(AO764$ zo#~;<5X+u07v`mgi%k!!v=ykiHk;3x;9$fwudE!hg6ue-5^qtB$}+Ir&a3Dho#^AU z?IyfrA!^}h!miJ8;!0Xli*7UJHwQ$EXI>D4k~mX)|43>G6~VYuYH(i47ZHDbEnAq; z0W=TgG}57VocnslNWY4YgoQ^HZA<@FNRuT%>027`u+oB2cFiAew={IQ3#YT=HP{7( zErNin!uP#f$l}^}I{`*qUS|4GFCiCU?@EBIYquoMYP0K==Kz6TNFMc48~22j0jV8i z|A;cb-|S!BNPVsA_kKAGW+UCNFT8oJZH{&WC4XlQdwwGrP3}d^SHyp7ri{3?A}Z0$ zb%z5&329e*-ts9uX-u?YK#W(;f_y40sg@gweJU3$zVJF2u_^NAvdf(Foa1Uyh$Huz zz+6%PsklPo4!J_KukK$i*DhG}eX_cMK*e=}pcoc-SBA2r&gpd#%_zKoHuvHX$W{ot zqSf5ZXnzvovkn~Kfi3K^EV+N*o;K2D4|`eSXO({-V7IsF zabo?f75{eX7Xgjq#eCiS^i?^qHg!z*ucTBHri+B)jO3^SZ7b$Ck3r3Ny{JaQ z1(@PNbX^q1d3o}LCk&j4LE`eIqiKPnLhdupZzB+KA~%HG_hqH}`PIIrmZkrSb|pgV zUwF3R1C6^#S%zn^#tP`5`@j4Otf%0C?;wH7cOrp=@d%mUhcFqT9R$LFz>WDMq zy1y+phWE?oZd}jQSPQ%q*?+8_5(d=2|30Qm8L^!30%C>p=<2_zy88LdnvYeIoHcWt zI=7wY$mYsV{f73>nhjO7?L)j;3F;b&(`0y*{ndGgmQO87VZSbqwsieTRvE$Cv>)^v z63bV+_1@NmMeF8m-%aY0grflxl^;$#_?fpnOEuzOmWY5t>L}aV+&CydrHd&EmRP+3 zg|?%=O~go@+s4^rPYGw0?TvV}8QPZ_{V9#8fRY%HkvE`7>1|%N*Ow+$EpBRxVK4!9 z=)8Cc%p|v&#Z=P%&SBvL-H(6Fa;B_zZjsGB7SJ{P2@mXI+UrWyk{e;!YphR z)uHx`VqSt|pyicfkak}{1V&_tG_DhMKpJ4-?8Q#^m8jzZ0ia3s1J}s<`E)54-+khoVvK%c|=527wSB&$N80LE1*QWy3){3(N0ZU1U z>BX{7Gy0HX4hGYwLO#@1I_=CPZnrwWqCay|2u9#7*3UXENG;(=>A|_LXgG9wg_cD$ zo|AGvC`a>5b!~CTcFfSmDp|p@hh00)_tCk=Ph$a@vb|qD-jf5f?nteIo2~Xjl9$cV zApx&MHO0eL7y^Ms4Dk~x^E4D=Pd`Z6o4hADDh9S;ULHI7but+W80@TS_p|yKvo2Hg znsE)wA_2H;?9R@0$g6-`tFovGw~PV}yohm`Sh6h2R^|Zz5zYGS^LaQwR%NvVy)V2& z#`m8WB+TztE#ANSV8QbS1Zb@?`q&0p3p*Ew=bFGnpmCb0bagx@nT96YdQys?rRo{m zUV)~pQ*Q1Npq`>8MzTd)=ABjBO9>%9&Ng~6m+|Sh7h9g7^s?S8|F6rcGGfHsw!33- z`a5f+SIJogSXlE)4~8c@P29S}PiIVIb0*uN?3FlWUP##J1?VZa?>J89qJEe3+8{S2 z@-+4$uS1?j;Xf&7?J*$FQ*YeOIGN$|HE4p#*#*_&%-O&D=jkCl613b#U#Y{;Bg1$z zZF3O+6dg6>Trw+^pAR4h%#BX9$Zekx_%c+|);a0UB_meI(4utcYpIh<(5NhW{qgmD zcbDHBos<_^DI{k2{3=)Ux(?nM695>&xzcc;_KWM7*>I|1<;5Nsu3n4aakvj@wV-VU zpq%CCPGE?^Y~E&sCIypbEv?EJM(khBI_2Sha)UqkJkj~*l#Y)53X9W4oHdzOIXyt? zpzpJoS^uXe6X>FLX8G&qLL+fDj%eW8-`>( z#%U%$&+OT7Z)(~)u7ze{9`=Ui27Zc*KR{7>F+770;yp!9P zS0Gx^DU*nhA`S|+~C$uE@mlHC~ zG~<+i;{#|#lm5-rUVtwY$V~Fr!;rZv_T6B}nzrD1_hAZF@xn90to%iiF!Y{CeieGP z`0C2I=71-GR_N9!?6lC(X;!pfB{NT+qDO{kx2~|i`}%YfjfdQm`ryi~M{UGqCq00o zg7moUwxzDEu%g;O7=bZF?YdKTb^iBD;gATa1EMiJ^l3Q1a&E!&nqC}9{NIKYR!Bbu z8q@Q1U%5Y`hWKRH^A;xvHsC4ab#_IGgy1UcHosZTDz8%Ya|C)|4m$1OA+KInAhD;O$FE)5Kc)uS_EDi!jLXnurI9I-9zhp5)o5F`6uluRgc!f z-!F=4{tdvf5|!`aHkbGj<%@`87R_CZWGQ&ZmICV*z!Cum#gr*D#Ch7`gc_yPTvmB% zbs@$>J05FNR;}|6I)@zpeB#MzP;VO+Ssq((D_1~F8@p}MT z8!3v}-M$5lUyp>uBudx4CBnlPu|cAkAK(iN2L8UwO=DcxFUYeX^dd67Obsf&wm7q$ znQ@|o`WmERU4LN&Pvy;1nFHtVvfkw=XcTv!)|R7zk{PP4T=i@YcsW_41a)E9R&QoF zN_3QjrMlGq``e7N`|;&jZ6b#E=E)~1?W0}i-;al=sNpZ9t1seK1ypPJan`z#Gm=ar zPN&yIgL7)ja-I>2Wp<8a(FplRPlFLkzkUI2GC2R>@eD?)47mepdDiJ3f? z2Yf+IxzOHp*(X>5&e9%A)X_s)|(rg&c zM~2g@DZv7K#0w;PNlU1;-=p(*-2REEIHpF2<7a#Q`A98HfnVu~_H=QUO7nN+GQ-`= zPq+sPe@`>uZ(<6^Sxl!h6ye&J8%?wGIKyP@`Xggz{=m~LuX=;`Y#tM7E31cDo^{8z z2s8r|RFj-9L!WbL94FRI3oftLHrL6#e)&p8aiVS)_o_C813TV>u!Wt>kNPf#zQu6& zuvpywN``sB0oM=}U@0)|e%OE5HLca2NlHu}*HYiMURq`pjDWnFUB-Gb1hHNDA!4@_ zvhnQ_eP~HQ^_v2-#u()XLbM_#^xnlr}fH(Wh@eB9KB7uX!*=nX<=tU zyxvItwl>8^=pG5<;pIoXyoNwb8e$8KXehZbi&y{`3WL(jD}3l9*XEGhfR&M7QfE)9 zee{QcR}~1G<^-A-UGrT6ZRKHmnjSM&dW>g(px_%4j555{h=LCx5tlsFnJ@2EeV z;_+=4y3>9l0SQ1P@&`823e#^vm(o9-ZAa0Hwr$;Pz)IID3=dRqN?` z(lOiy3>i+9nf?~7^w+dT=Be9ounN!Vb`(3VDsPWh%U=8=O!&aWo{{J5I+W6nT)gCl zy#H?STS~kL#-l;X(d7)IzW5t^?ng&S1fU8#cf^S#gE4raX~nRY)BJyN?N@1b)5jA- zPOYBL0!NvLPYVrHevg>DiVSRD+3;@{l<^ehcp&Bapnx-^b{rrGR!=l%U(sN1)xJ7; zshn`Y^{ZI5@-wdurHV4|LN0OLGJg;RqCneDveuhhZS4}jH}h}jC?n(5Q#5(6-QQzB zpZJK9J`Fsok?KwTH5_(m7T<54uf&io$d9umFoE48w1nA9v|Lx%w&IIOc)Hns5R{P2 z?{3#hbZ@`UN%{x~dcE=7Fsup+dJe|FiIR|`-<=-2K^=8u!j8UJ1fM>;$(H&-Ds^yyb2?j4OOshqK(jB%3g(y5Aeu-Ro~Cqy*Tn_ z+#wI;&uMs*cuLM#ePO(coJ|a3lr==B?RhKtr~+ZO8S+kxS@4J6uvrAGhtJ4I;KuqF zY!ji~P;^bQH8w;f)j8`3`C_X)n^(JqK9vsJa?rfNX@oNKiLL*xcy~$H4-=Yu+}iHV zH=qw$q!8T+r(FE3^r&LBbjZl%P#T}Y**S+%3C^MjJgXX23>g`5bsB0kmEm=vkB*Gt z4vhNGjco+?$zG}EYI3WVDVP#CkY36LiD{r;{Mv!vjIwNmv`BpIe2(cr>h8_Bk=Yv` zUvo;N?H%ZZ8k%NLPv?8rE>=kTEU*jwH?ih*MR9c7t@`}sOWWdvr|)Vm`6R3il``Qg;29E2L^Qk}8vEj;e%v|8`|-RBL$BE91j3>G&s zHH9S$UJ;@RJLPa`CB~Dv*m?Zf1+&x~X1z1p7Md(S1Fz+Q^>&QKhGpMjyCP-( z_u&U^+X65|)}t&9?o9M{Hi3Ng4n8QnRCv_tShsRVG>w7R0@eSJ7hR2xdcLo;(P*lZ zv^;q%wa{>3RM?g=PV(DT)lGyhUbE>HKDk!pyXv2Nc4Pay{o=pdq3O}m^=t(s1c0@g zR3~x%SYGX7*;r{{e3`{6F^s2qwjStgdd*nm_Id8(I|Bzk7_3xvwilK={&x2LHvKh5 za&w~JAnP|7gLHO=HF_!yUp*(p6SP9~gMMfv_u6nIsy{ZJ@FqjilSsXtuf?hOhxpi= z3pr^McFupkw#Q-agc*|Wd#F&P)l+S;|K6R%#fSZ{_h2eo|7=ezsAIFe5bA-noFTg$ zMspy&um3lT-q9)*0>3-830A*cme7F*XelR|v$t;gJ*_~D9|(+L0Z&< zbSH9B(Ftj&t}UN)y>499#5kSP(vW{VUbc9@-+O8HrpB`Xk9v*u=A87fKcdI)$I^Qb zjdF9Y|E~q`(FS-MYO`EV3el6vzTdET59A=Is17BtBv4b@?cIjSW7I5VPr4iZmG9@T(hQn^1_JcK_SEXk8u~Cq40bM>-`s2~d4IzRH zD4VlbIYIzCd9?K51Eu`1Z+KC`Rgk2gNqYD4-#;rr6ZOtX(U7z+I=8B|dT~sEbv*$% zH7GOBiQHfnVVQ|F{;T@yvI-Jms7bZ%f-_wUv;DOOm-kL=kd`tX>dgr*aKt!2KinLk zbbr_Cm77KW+?xDVqEDdOLRX+NB&(fhD@tK+JfVd*EyR!zDbUQvv^=2K4E_1Jz7My9 zL^hD=ybGbN5bthuBQ()iDQ{wmp~q0d#E2a=-2ViR4G6$sSkg>F7fT^O!ytPVooq8H z#q?NFh!z!UW=~05<6;?FCJ*m}5%{rltfB#b97kLIR!$-Q-(0^6kf#(EazSs58ULKK zr7StCDEVX&QT>g7L=F+%qF-l^7P-NWf{p(CvdpG)kR5ZRG(G!8}?F_GViiiCy-2QJGJn?PSKKgB6Z{Dn8OB9 z|CQU)NHYWlEs{;NUKo`z3}$B2d{g?C29^W1X4-xy!h}hFv_N>GgDcWx!_N!xUb~nl zQ#$~4)89mH7a1oIXO0=IYV_QS%->VP80l^xx%Sdkn<*|`a zXUOmED|~j_GP)jigZUyHEE)@y0HJ6+d$gU{3IDCGm3I4Ft8IR}l(btdBRvXHLl8{TzBThWigWfjBApBOb)x6jS5ht6qht&?&h zI!=|R5tfQe%Ia21ZV*8tXw1b=y6K$xzf?lQm${~0XTmmA7VM?g!>oZAtlPQjb6?ax zcwgvBS}ajA@x%Gyb9V7Jol>26{7$-^=u(q-Bc#_3CmOj^hMeYRe|krBy-#OWpVSj4 zd7P)%Cp#9Ix_D4M0XZEa&q&mAlk;ODyCcyzV>eb74#)W*z4c3MM3j>%mtno*PPuVGcuIbWXa}gQNcz}T{t9Aw_rWI4v;~^rfaoj?<5ymNV(y9C8z?5}gc_x+ z#6mmlPi0+SsJ)!wdhE!CzK-9)V!@Wv|3bj?m#?Zd1)d<4xET|wG-c7boa)-~(n+MJ z_-Y~rrCqEpU&jn&zm$~juOB))gpvk6lNcDC`CH)YZa?R4*NmH~v9!RO0kT}HV+@{!g(!4J zC6Z9KZBA6+&J=hhUcvs-fYyQJ6|oJXqB3Vd-TYaPvUvL!J2}SJmO1&jq?o<&hz6G8+~t)i8FREWqM)R{Huq_GH98|I*$^{V-=XicC_#$^GVW3U!% zo?eKm$8XuggY@Uo2%j>(CU3-QBp?>G^xfO6ncJ$VF0%B2`PMfPPM^^uQ3ADdep|G{K8J8k58vE2(L#PclG%Q$RY6& znU>oVm`o7SSv8aY( zvY!nSpKklu(H{15is_<%a2l_+$S+AXibS;MCK5A7{gn4Aogeh0Hh%KaYi+Z6{H($K zNx{~FoF8AjEI6=9bZj!2L{%ZNPFs#E_>0c%W!;j%hQ8!!O{)F~myf^Av){#l zSL6(P637g$Wfw6`t1v1zvF!eDc{NN7JDSwNwr01%p+sxwqF81e`PN-}RC*vE)adku z+Q@@rdU_eZiY8X*xk}zDK{dXU{&eJdf@9GtYt_xcp3I`0Wn%r=uR1b2H51V{cpW4R zG^RD`U=#rC&bmfyGBi$!JGe0&5vW%vjPIwt3W>?>BktK)WuPvA?qA3?8THBZ9)6@* zQo-a|Bq`|KRo14G)oX5=&qp=z<$mVN0xG`P*+?C>2g3poolsEFK5$g?885MMM}R(@ z4_=Has@WM`+Q@X`pAU#(+9&TIoV`V1neg0aK2bQwtsE7hrb07z_?f4qez&1srVncO zs?SC=4iU?q;W>-=BSFam+8_979unO}PDNS8T2n__6RI_gXDRHe^eJ5xRURw2Q?Xb~ z67dx}Yl|9&B;ST?vM^BfSml^fkT3@S^o_2vZiUuLYsecSl7G1QvS-{;aU?#n|Eo53 z0BAlu{Apls_pcH-)k;VQx>PUK7WC8RbF2+P6*!p}^1uFZio{x&ITdP`j-43cCO;po zm^|=Cb7DH}m$im^aj`i&$2NJOv5CyD;u##^TKz(|_CV3vE?Ot?0q^-M@zABLn-2n0 zC?{>5I-^9Tv~6WgG_NAL2PAsG?Os5CUwcTm^+d?R>)kE|0sFU&oA7bGAMOLh>;F@J zLf`_K0j7+g4jfoD;&kJaxmURPLEqEq#K6_Nvf&TWaO3_|*t1P9__u4lk0~S;CG*@z z(N6-4!5_+snUB8yZ}~MR0c8ub`A$BkyS&%J-bi^)Qnvz9KV)YITJmP$I(0}(xl4lP zIaQDA5%qLBebNw@Lncrq&~#om;yrl!TK0G8^VK@+z-m*Hz|h+(#h?IFz(+uyD7fc? z^_SN|9hn@_lm$I=wtNyaCZK6r)0gNkTvJ+NYO-oAk)vtJejZLkw*@+0s)X*Nm2cp@ z&mgFtA`jEgqBnErjF8OBSD!BbQ>prp^k_xHtPh$g2@;yB$;#`&2^8Gz4|5J-O>rMy zdD-fg*b;-JvBER!iT)=KqlT*&$3<%JfYqe|t7a%BPJ{kmL8>u=*C*!w(Yef@Pv|w< zA2lY-Y~dT`kA1*S&;H~3#>v!rgQwhe91%z4RLY5HlKtrBGtS2)V_H`{?bZ~}Fi?UE z77M5>eiZWta1zI%SBiY@4B|UEHO5eyyb#4d=n(!v9aKQR@CO$3! zr)7!DlV;mebGs2x!Yr|7Vi9SY-$~bU7wlmeV8I1T0Y561{pLYL`w{v$-KY4WVH@=@ z1dwJX(~VY56UO}?p1wMu>F@hn=9Ce_C;{p2k{m4^5{h(7w~UsYG)hZPknWaF>F$u0 zZjhAbdE@uD6%&O&RlU)Oz=v7D?zl{W>Gi&qgleLtU%J;M{YxO0u*6s{g>*a30-9cY}cZ(qKZC8p)Ko(}ned(Z3)upNez63$AYquj=3dO=n0FnU5c_!g`^nlj zS*q#{B{mqLAv6Sq4=42VO2X%N_-FheA*!E*8Ek?LcN+t`A3`-7HVJJiUvMg^DTjirTflRuLC_y z75oHlUq2hJ_}^q@3Ir^!(DXOKF#va~GRzOzbFMS?dK{F2Dq1p0G1usoH@xYnZPWJmRgU%?2ZWQPt<-YGf<*M3)ti zQxuKvXMd$pfHl5)0b(05Ii9c6m63g#P{s=WIq)Qi%395 z0Y+#>4u>zPvHJRqqj^1815&6kU0a0tZ!gYJMyNrcW(1a6wkSqhp|j4fs>fZem_yro z`CMq|ur4dol-;iCy}RR#2eTJ7a>96`7yr9FO1cbi=q$pK5Pz6pBIt- z+Xx7!m4*Ro8N~FE$fN$+M!wpP){aiEOeU>|Bd^foVS6$L(=?K~Eh?@rmKEFKpGuo; zbPS-GEO@`5v^_xLfONL)RRAnMIM~`npWmae_)}#DC8z9wmA(&sm>Fm91sc>KdpIbD zA$I}J;#gY}vLBW_r(U0|-s^Lf<6E+pucjhY7Zl}06hSLEH32CcGY$9J{6yl`Ty3%b zPj*1#TO0o{GYOA02PEQ6F<(Z=xW|dkHMIDYejBgp>wvFKC@tjAjrZaW*^JuEKgJl8 zPmu)(hLIHMF9Mvc8&9kLKlE8rD$Xqm5979R0$ur-rwAwzGC+UjQO-4Q*p992Ykm@^ z_Ia@Fezbm`C0?&|w`lBOvXPEZ>u7sciu9+WON}lUK~S(CSFK|u#(zwJfDE7&$7uiH z(8uH<4(j~|@WGXq;Ntd#!^CcSwXS=@ZLH4 zd^}oY7!Efz<-y!a*Z+T*03{KFT3oqRkm6*?kQ)7mI0N0_`gIH`EQY1qtTIhdnZ{Rd zfQ^`{JFyE!D30~FygCM&+K$0;sg)u-#G?BxhGm%tQcKgCAnnGwjRrV7-~8q{hRVl{ z?(QH1{juZCH>~{HH_N%3G~n8DFL21G+>%1g$uG^quwF)j67>oof$Bu3@-vlPjT?j@)5^KM!1xXW#+p6DB%$K&oD zK3SrsbV=jX{j4Jg2`0rC+&7n78=sFaoF0$gcTi_U+;X4WgyZvClZje=O zUAwP+!PCv>s8a6|a{9Bk!@ekh#W~g)17;LzrWIHI4?X%Tl`7>A^vIc)MzCB~6kPHI zy3Ir3%?M)upAPE9o}@YIJ3D$idAcZ@nb#N|OUqabqU1<&qLU+$R~GeJCXujJxLz-u z4F6(z)9~;u~&0uZvavEhUbNTA zmnL`*%D&d0sk0PNN#j@6eEfXl5z4sNJ}&-$j|!RxD7!6YNq6-pLA~xh3+xgR^e3Kj z?t9)IG3@5?2afI_3^W+-1}#|wdb*%+^ruKMO6E9sFq!CLm25<0VtxBb_`YL9dJkE5 zo2MNr6+^Yi*Bvj%IpxWUA^<9#QS!UFNU{|aB4ZRG8!_PDGXAsZr}%>%TVIWEibR(6 zr{sB(rb-wCfic2}%ZugMLU&eX^*Lwqgd5?Pcd2fYn@7$EIU4dRb}pBWP&o4p z1oPvUN1+jsRLf8PDQrJ+D99fqft6bM>h({`YcTEd(f5!-qK;2c%bFdTw>cfNGWFeW z7~)4iqNBlp`89Zp{DS#AX%%_RR$dy~1S)UNZ0> zh1HK%0R%X}bD07cDc&{8SWXH{G#(~DGJutYvQIDd;yG?MeWTkLAb_72%H-oX%H)u; z^%bOwaeo}_9R3w2M2HCp4Qo6y8|!J;qpnfYNaW@irI_;2hQnf<{>Ckl6t%uI!GmyX$qCUa}--PN)?kq*c_H%q%6`^nNT)<$B1Om8k@ z?u&@j4Y5$i`OR*qzDE2XEPR=)-ydezPkbODzK?!6!Q#wJYEpl-xW1LQsi*~#zVWio zIoB33Pkf2jZPxl$bw4Lc=fVt)$(HFeOV-{+oB0|Tn0)~kMr7;$N8LA|CmH)GrTXl% zB;Bu!tUxP_GQ`K(T!OolTnyoVMd~lxBxwZH0+H1--dSxs?=ml++$V)uZ-S7b4y0`b zdcWdC=b@JRK3z((rw_r9f8>OLp0pL_>8WF}S;R2_x$omWy)>rY2s#%9!Q%7KHzAW9 z>hjWzyWuAd+pM)03b<fxfYFnWsJAWf*^fL7p=yJ2qP7I^Br9M4JJN{CcYedZ<-=+p?i{}Mk~4e~e8{b$-Ga_^tj2nQNFT6D z*o;UnLGz(U^p-pFLm^)^Z`Ts$&6gVi1cG~B4+O9}=U*Z$z(V{dg2Yi#6ry&^B<(AI z(QTK%h)vV8$xHfN82UxOSXbowOJRh`E`xMjNzpSMmlO=$H&5OiuYRqf-TXhb@Cfk( z4WH?i!BSm3A6O$d2B-x&OQh@6t2L2OUYMvPfWLjW-FLTRS)f5@13WuzMR+PU=qvf( zS8<{ML_9uZVlSNX1^5$QB89eDPc+^j30!Q=se+ImEHciculTpFbiMTg?3b-q0g34{qY-$%xl&MVA$KE+z!ncx1F1MyW(k zxhD&+i+z$|g1P>5Jf+ys%c(Uz3UE*Ksz0;$fA)DiC1*E{>__@WYqVyhPO^AHpL+I8 zooM;Ogv+;vy{j=DCHWWo^v3Em&MbWa$YOg39$ugSe){j?ehVNx*kR|Gxa1VwT`YHK z&c!_fj8Waa_pgbJ?RblEfl>ummE6ReyuDKEhIGXV>K_F~bg*GUl$Aa2=xoFP5l|ck z^7pAb0Y(W?L7)Z%pN?<108?z3v7QD}EXb){m?JwU*#RrVh&+W-4jDwUC8GToNsDat zN+7lGDAO#U1|E7rPh{j=S+CK$A+yr3x@VviTJfwuhkOLVI*e~xFhE`X!sh45{}KBE zMe>O-Jo#NoSbIF$5WGg$$e+H}K3q|OsS%y3`+!rT@Z4umrw_l6Er2vU%~yLk^x~>$ zaCik^7-}%j0uJ*_!wC6+R^d4LpQOUQ?2lx^zY*%}Rls*yE3SlH|e(AL9TOCX^#iLGt-<_45bc1GPb4 zEyLupY&UxOwpBp*fAH)7sFkQ-lsYVVQq`|Ey#5SwK|caSk@;67Zt--~A!?+kI2tZS z3`(I9OhP_JgycXINB!xS)Lu@!|6^4wNL0|8-;>A*oUQYj?=QYcSOS7dAo+2+x+mo% zo!}zfXn7`^GCvj?kfeb9XM8@$>JKuHRO~Gnw|hiTBns!b*~U#2;tDIUi>*ynj1D!$ z^)pu4C6tq}8HWCw?Edf@0cE3gRKkdso`<-OxO3McQdk+06LZU%AE3$WRI@g#K;s5( zKa1T;w0nfO0gx3r7XF^@yPZ!vv{+)+2Wydf`)n0wVA~Y?(*!@UJHJ2fS)JV~zoC`i zL182Z-hM9*(dm9Lk`_)pF<^vmW=w%?IA^#YZqip`Aga0hvd1TOcye~}BzeA(RK%WC z(A?Q}O$_y%T00&H&S`+iQXcjH!Bz5jYqF5JX1{<8#?Z$4h!x8tS=t6L+3XZ)AX>bK01#k0TppuXU z$S1Lbj$vUPRe|WAn*;6Xt=?rV*LG;;q~VP$|zby zlQ7IHJ%6?~f30Uwr^kxtf`#`=8gM{#W;KG#nAxh0$d91V!{lYLqnz@4siHc^ZvIrW z`9DuzgoxMaj7}+ZHrX7Z;)hnKbA6s6kPN^H&R_` z9a-33xxyr0SupPX;tdCr5BAg8N>{ohrqGRShu_Bk%%TRhlh$$UzvHQIFs^(KS1w5p z>C-5f6Prp7K-%@4)LlQz&E-M+b%;VeAtx{~vMSS&g4s-hInDfB>@lG-|=z#KJH&4*51THSZw{Qoogc)WXW2woP##BYcDs=6b`D*HfwH27MX}Z-Z z=uhP!TZ9occRx8emU?kTLjLxuHkMzSLhYYFhMmsi_`s8!dWg^jtE#=jXg1z+!d`$d zaPww9TgnTPs8^21sph|`X=ZpQ#doWqjnNSOo9=R0>KD!%i;H0&bkt@G=A0B>S_$Rs zhQOa}h>~Ze);smVsoDB#$C_}tuK9}R@VC8MO?yu#-hK2UOlUV7?7b|13sBrcF1*#9ZS~*(F(ivSK2zb6t108Yr>D8!*zPnD=v8h6LB=u&sRfE zGH5BO{X_UQOo_sty2pG<*Gew;3ZTLv`DhYY%||XpNB5^QtDDM z#Qmy`@pRk!QJp~wqZK6Qex~x4*3Uh&yWqMy>PGN<)_zzK^^I(#H=qpkphO;vl#8|B z>+~qjx!p#}mu>h?U1)bEbk92rPIg#pn1_N|CBSm-jZk(6)ajsn>Ag*r4mMq?;IUQD z1`V|;<|Ld;N9sEsdD|VK`vnnmKx!e26@=}dYH&iaNs}c&!BXGu7;mg64Gg2yWYfzN zalso<=+EyApHNcyo#fR2Rs+odf+8$CA#Otk7n8>@7uvTV!@`|`zMf7%AJ-Bwq{&)^ z$uTty*#?p-L>}4^+odFu!pwZ*U@A0-SHtN1bDp4xfYXr`$`1lJ3Vq4b#oyIxQU&$M zI*i54lQ&R<5K} zTO_yzxsHI-gZ1#B!&oefr^Rll@+-X-@k7)6NdE1tVRN?6Tv2GuAo^^kkBI^Mj;m~luro^pKcN%g5_oWW=rpuG6 z^SCmBONPmk4oO*I7fZmUk_Ouzq};Kux3Od#`fA~91*L0FDasZYgeF8h`$tRWYNcYF$@X~`Rv|rv z-?F3HIR+O?iWP6lGe~rF-Pfe<9AlozhIU$%Y;rq* zKOB{B#qhnGjD|A5N`0pn{UE18s#}*#q7ZcVf^&it)KHT~E+i3|w@BNYF4+@j zugfK*5B}3SY8J_8UdgdF|7WDUcgqSGo#eMmzW;notc5iY8EfOd)-z?xj0?}x%D!)> zt|6YPF2QbM?m@(+tdo^!va`!jX+i|CevYY!frBnpve4DjRQ>VyNlcZlKPfML9N|;e zp=u&CefJb0&IF2~0kX$t5L2c#*2k>bPIF<_k%#9WI9^*hbT-Ccox3<4JBXT1HD7tO zmwcIt3EODq*pjols#j`~nt@AK8#5oEu@QyTJdbocq zpmnU)(+jz7p;lU$#N9>(aifK}(@7-mzWPoLdRI~a@uF@w{~K4nAaVA!sWAUkAT$E+k|)%ZIGiP6 zAYbLS+{&;K+WRHR919$@tf6@>?9?F{{GpJvD7E`VCq{0INo=gv!=rAqeLrxj zygMJuT_~{8q%R3_ZK>Wbw>D?mu<~Y-s zzI%&QGk_!5mpU;W%Skyob_a~}#zQ#5^-(_)2W^S`}CYUGNQp+(v-v4`_| z(EG_oShVUiI82@<`V>lLm=s^rZg|K`7tGzQw(#+bom;psci8p}Y>J)^mDf3aoaRRT zc?{ILZg_k&q~y{LyMT8U0564|r2YF3|oyy~t^`OREjTq2(~or_vIeq-2TG{(QfKmZ$$YO~T> zqaeyJg#TLtjw60@5EG1c<@3<@aRSv>7zuan7(^{!+GQ3@dCS z*-Z3sPX{C3FvfW;XS||B1;s$LC5rQ`!U==TqZs<$wkXONzftAw&#txoq?)~c;r?|i;Xnq^u- zz}tnJt+eE-K@OWVYy1#{$X<>9Z}kK^E+TY=AJ3@+o+6~tLPDH&eQz{_R13D(UeqjD zy>O^)pIG0tbHl{8ZCULO7PHYPvueIP*k<7PqrBO$L{7fY;xp--=4pMQ<%3mSk`!^% z=wpXi6!^i4SbkDH*-27aRa>#(WUv7a3az%YriJAfP3>>~@RC`A?bX_g z70RYf_kW>HYXQ0m$X%&cJP(gC+J{XqZ4c&#*G4VQUYe|V*{}Ak8><&;E?uht!p%2| z8+{4@IDRMh$ShOh0@H3l12vNL{O5acN3nL_CxrpQL4(>k48INCgX;T5z8eO@CnZwJ z)Lyy{_vIwP#mLKil1OYZXt{+m*XZRz4b&a0-SI-}IGzZ{$yS{uQ?}HtR-(S(len+v zFkWt0xe2+Nu$7ENeaP0sDzBv|UwHG?4E(e>U3T*1XtKOIPlFstBD&E<-Oowsd9KU7 zP+@1=Vti-CyBo6&KIZ2?8!-?tu%Ny$e1mdj9}S2c(~HaBW@{)#?ixh4j!e{~jGxI* zLM~Un7KYHI^6b~NI5Ga}2}D2yjsx{QV==-q3Gv`KRD{^aDjj6(l=E6|;0c(vxTd`+ z{)wwWzzkJ6mmlfkiQEAo8w#{->P1Wnp<{PePUmgOjuY9taB$ii*@Z(fZvf{+G~sBG zI6CP@4Srgc+G1I9(ml7%WbOx?3VPA!5o6fOJJcL)Mt%xBU_>h2u) z7YIL##Q`_maijtifsx?JW-CL86Wrv!29jVW6ZvcH3F{V^pFX~EUm1m+?lc}EmYHyKcyII;3FmQKBVxbmd53GV z$AT{fUKlXRiI)VQF2%Fd5@BJ;7!6!r0d1p(PVm5LkAZy4#rUQmwgt zlXhgtnW5<`;zvF?YG4%J)F}jJ?7<;28`)^KfYh^LT~HYy zE8-{F*r<+}kb}Uu4ryDQ5{_4DZZ3nBu2-J4JbrSZ&-}W$>H25-rjo*?J;;QVM46qm zL(!uDuD#P2bFiEt1lAq(r%eVZid9Eq(y0zQhp5wCli$ zX3e*mgoqV}sF)C%MgGFWkFCfua)Grbvg-PQ zxE>@J{(iOWP)UJnM`!N|flVHwDsjt6ci^B{+-~}Weg;2DQ7kBwYYy5yZ$p$7I{Hsc z7bQv-k2^9ZiS#RVME}XhJM@7J%RRaF`l<-HlyJ)s7);CKlDA}Tf^e5baLkak<;ATC z<=R%w=r2qh_?J=IHN8goLSy|naV3t*F>TbR5E?g+>7tZoJ=PIt9HO}XrgOryfuSnj zcsfXBvNXf~UpTH~$F=#bg>NrZG}}RCb4?^PG1KARDg{SES?e=Ey!ED2O9-q!fHYr= z4lUBk1207X-vKOqlNuVMZB2SJ{l7aIv34LIKd%$+lkRxc8fqcCNxen6(NW1zm}u3% z(OuWM(VHGfhyPY{}<{cbo(>zJi6JTj}>i?tM>@oe!))I_fb4v(q4w73Pff zhjN3oOzu4T)`^9#OL{=QJk)Ki*YL(=-0Nh4iJha6H}t#Hnb<9Ato1g$16fqtgjaxropR@iuC##pu!ft~R^_ufKB}E-YJs4leiuD<}Qsv8p@R-*WY8+;E-ViIoq7 zYgou$=NT8Ki57stjbryXfOJ>XurNtz>a@dvdQIvSW6ix_*YL8j?y_9WX}+-KfEH0c zzfGr|Bi8leqw-}&I&>+SOOh)%gE;U*r?cu`g^#HMG>-bX#N%W1QPzyC@0Dk-s|R+V z@IF-*H!KNdn0*{FFv{fh9Q|m$opkrU23mg12(yk4c#5yZRN4C~GE+;y?PDfq?1_BN z$5B(q@paSNm-rDym^gF0A&ac}p2`<^d9j&-SNm;7X` z^v;!9<2`XdZmmm`UGmvg#li<46c7^xW@0$$bD4JUfIa83q;9l7N>)+*o*S{0CE1aO zp4wrMY8jE#SdgE%`z_VOEM;spj`({9Vh(TyYkZDr01%yDW$*;IRem254rFH;oul)v z-61E#fp6)y$o=hd3+?l&R%+T{1^u?u;ylUEDdLC81di3K2JOo;ksU6VUL|Q-VmHqt z@fcKXs=^`e`))V2+g_WxG6CQ4byoY##v9?iwo50mOsv7YtN`-*BqzK{=0xT9`m~^V z4T)RHRC(dm*FaJn#|{>T%^dljnf)^y_{+I3#T23@_SfV0{S)=|PZ~FL7tNJLj(w9S z@9!u~&8gx&6aDmfddQ=0%dYQd3arT%uFwC>C-}@SVYKJt6}0g5F$+Oaa($cnh-=Ao zk7Mm_uI@!|zB$ivH+4#hOCYE3g5Bo44D7}M1L%G7)kIx&s_zu02GC^0Cie1-XtBq? z6__i_DVa;T_Pc?=w&9(aYX3$LFuMR9bhf{1-mZ~XFq4*?GQZw*=I<*vi8m;NF3ex| z_$CP3+t!^y;Lk`L7JpfNT)^7M3N7c4rAdKJALpr+K&Sqe3;vBYu}fYx-FA#k#x&Bj zeo>;krn_&x7ER`duR(~lXJ1F0bQZz&=Q8}yK+*tcAU<7OtD}pwM1=d=$T8K2{xsiT zJ!A~UN{#IHRfdrD&s5JqvS>Zh{sA++V)A9lim{E%x5auIDMNy&BD&_n(fH2PS&LUf zzLq+G{pXC?p@0O6%1r|%))iZGpn%Q82_QALYl`--i!(-oH<-9S39*0U-Q7YGP?f|Gsn2p_OeeW&(u1=IUTYqD zQf`=W{%r-z7?%NV0Qa9B`{3BM?v>8h{jq-U&Vb`EB5VVYt}H3p%2nR}_%OAZKS7?L z6>?Vlwik0-60e#sfRO<~eh^qp4b5lOLa9dKzF)8$Ct6JQ^OviDV*9JgNbvLPKj*-0 zDF6OUax_>cl<;Iwp+$_%8ZW}|i+E&6V5gs%k2BxSQ;CRlr2aqS3`NarbZnP>~4(y}z@7uJTukA@4c{koLP7Y#=W#DmEhJ}fvr)%sQ z-ZpAC{W;64<<?TrSug`)Z>Pc|mLegT#u!bhkEv`x%$ zUUCUGGIL`~Bjv`Kd!)}vL{GV51`B83Y`>N%&9QADbMnXH`;R6lKlj7C4~1 zCaq9;L={{Nq_G8PC_NnQeO_xCAiM0`unzm)G*2ZZZCj$F;Gk!ZDUW$L(Hde=X{fo1 zUnF=|*D4jMcgh%-xXT4C@x#Ie`cm);r%iV+EqW7TM}z359c8*)%iaZ$qC!o!Gt7Hj zNk13AM{Y85MC8sSs#f*+oLX%s2Y+jz$vUfF1 zK97nb`Cs)g4WNr?aBnab{Ek1qa`dEl&CJq6M#HA0m&fn3T7%>GgNU}>;|rX-18M1$ zI`e)A=q9k6U7`qjC!MJ9N{Te*h0T(_)i8%fseEq&O(3o1Hs0?SOx`37I>vkw$_=6X zVTDSo8EHUKqcs0%x}V=XRZJhcPI8FA*Rsj?;f3K$hPjo0jIAIo<1qj>&1pw#-lnMRyD`wn5 z_{!od?Q}(GA}W}f-mm^mISLUufLt3D#mtu7h2!{sQQm4;#D&XZE6(J}(_~*zc{zEg z0DSbdzaJlnD+~r--J8fgb$?}3$#jAcR|Y&ucmUZ+{Gzg4I$E7XVnzz7JskKd!4h{KM6@-VAn{^~m z34H&{bwU32dg=v?TnAHkr_Uq&07JrO)qnY^9-OxK4I}^5L-HgQpwICS zp~4_>D-i$fV6JUvK!5hIn`6dTr<{&jjF{6m1SmL8S)@+31Zo>cF%`e4g-7Obw)CB* z6An`W90j}_-z9JsPu=GB4o?cz%5RdV zdxJ}1Q-gcr@23kaY40(nivnu$0oM>=6w%~LKA4X>!(zHKG1I>12|Z1!#NJP_q$%SY zTBJQN@hCFq2s?RQ^~7SL3XCHdB=oy&yJLSqLI}%f#UiM9p{fb4qibDZ%Gp)uid%U|E1H-8G8=R{oE>2&FiG%^`^m(v2?dtuKF2)zX=Ton(sQ#aa2|vKXH{ z1DY%R0Tv^7)u`%|Y09w{eQhp?a@3VyF@Mo@e>3+kFWH`a5x{(yzYWhmwZp;dz@>j@ z%GMmYt*b)1zuqMeU=kCKv}k}<$cjWR%fHejd~gREO`=2rW8>7W$Ue|!FsL5JmEH?3 zIPHqY(4IeMmSjYN+&i2$%0%P+|osBz57`qqm{+dY7`PKYVJ9{{wJyq#@wg#OB%i*P%prM!gG8h)J$(u~mP z=i~tD(*X-0f==WWB{4|dW3}gr4YS9qm>EpgEI5eazPB{L*@zJxQi|Np`r)~Xyb8yr zE>q#BI5d@`d>Sd=2!A=B$O>Zt7*{(frBlL46j9LVNJ|(p4+NYafx6M;nvwWAzAS<2 zwfgOx#6MQ%1*pqDTMz+vO~gR?gqX+I;U|m5yn(R4xHa%#-&Qj2B3fg>1;<_KxP37} ztEX82WhK$6G$cne5`N@AH$a*@DoPaa80N8Krr=TjPV~F+u~b%w)Qm9kA14Fj11QsP zOfhpnD9^xCEmxPn$D=+lA6z``9`cLE8S(k4il2MVnUS&k!4Y}>fg2uQSN767OIf_K zn-&<-aVR>Kzzy&UvUqrw>O(;5>_)X|&(^M=35&R{7`odDV?6WY^ zq&u$UCPyhF1`F*g&nN)p1;^y6jez&#!U_9SzIu(&|px{B3?!k~N)V+Xf){PPg zVS&_Zf0x|val}e-N9_M(1q$aeg7Dc(JlFcT9$!~UNeuGv;rvno3_Kg;3#U(h3V{4x zDJ8ya8vQj($dNdOoi-}Ky8%Xlu)d-sp|U`eL82pAAwSZZjXIw2o5qfPV<5k%i;{f# z9Gt;GN%%{LgD9+Raxe6)^Rs?(2D0VO`>l{8S70rnt z#sdn<;sJiBBo!NCm;b(Cv>PY2x&MRtuE*wXZ1ournWT|C2##PQoPEPjqLZ!N^Jhro z=qjIbYvBqriV*>bcTTv!f{E_jO+|D;7SJ$7Ne0qW$~EavV%a`(p`#V=NwO;W?Z8)} z_p*?%8OK>Kl!4)=qv{%FJQRVCOM&gQPHP$~9iIVH8IdQUmH-&J4`;;7U!fpo4A2nH z56u2=t!K_?Fm8tal%Httq9Ktn)jtOZ{6cZG?&}Q0K1#QTDJ|qBsD3=wX^Ngbbhp5T zB`S~v;Zc>*q6~TrWPN`SG;+a!pb@M#r2`xg%2SHJA`YNqj<0+~3=*xlP=24fKM{57 zi7XaIoh+BR}G;a4?_9|QZ;O7+uom)(!c6xcpIo=O_=FVeK?bu2aj<1rrN zf+z4sUWl?^LV?z6&+7@B`pxdWQ)rJ&Pu)lTe2U7{Ca5#L&7jQ45s~dnluHxxmk(X? zvHPusP^}>GQ(*E#f01a3Qx!ez`5{VQcz0DoVzE8w_&Q5{K>K=*V>>9}axeMJmVKDJ z=JdGVBA0bIid+F|Ny(q^edF%yi0{Brm!pH^#{ls?16X@jca!j*fa*?o=GiCiNd2G8 zYINUuzj)c5guaWeWCz;u0jrwDsZtB_1rKuB4a{qBJQw!&Qv{WJu3Hia=*?Ohbuxz= ztGln({&?yA>bIX?K(x(3-1x^k?eVK+ZdAN=955x64j>Zapoaa}H&MEt{%FOMqOLea znY+YbYxmUv>Olb*ZpZ?Q1rhvf?edQ>U@h9_BQ1k$@Q*v6z@bR3d>kTDP$;e?eLZ_T zFQT#?2KC5Yg64Z_v$(63mo>wN@HcQ=>IduyA8rOkqT~b}k3|!>%4s=oiejW@*1EKfGM|c` zu5^Buxs&%?30+<0{JZE`3Uk?+0OH)I#3I6p_xV(u1x8i3aV;9$3`rsHSiSd~?%z!! z6EOj1BYF@T#g!(^<=yiOK*UWON~wQ z-#*?JjGVvuVA`Uc2;b|TiNE?Sj&s4HUHXR8s)Tzg?9jV4mAekF^U5@l4aZ6&&2B70 zV*u?O+w1q^5W()P0B_^#LPO3{?;9FpR2Lqd!9^g?@Nr>g>19sto{GTK7Ie?x!Ihg*yX^z~(Cw9&oh0>mvLsD9Caw9Exp;J{slymNnVVS>tWA(yhcs|oR1`+N?I$ALGSzIU6! zEAn#KNRJa->~Coop=m@09Rot~e;1%p%uKjrL?$HkU=8Q-pHC#i4P>}Jd$Zf(R$%w4 zxSsE6yQCp-u~<%GE=Sv-BSb?)W0FFcW-0GJG+Up%wHLWB%6BmQ+v5IUSR(NN3GS#Ift3J+W-58w-jWr8;h77cQCl)6 zNMZQ`h)AE)%yy0y^`JKd-}d=iE|m@*5e8PRImX=6&SrI^OGfu4OQwX-?1pHsvDgHU zY=#TdO811Ohc`Mws*WAl!drYi!Rd#VUWKp7YAad|L}m`s zd}q}y-V7z8uKUU3DX09NK|%;NNFVKZoqTg=g*T&_>NB=ay=}(?8Wc>}R74rrS}Srz z_kcU^+X}+Av76sU!HL>e3|^=%@;iIjVOpSQ=AeT`RfN7Wi}BreirnXqISiIJn)rF>9A?qR2a<* zA0KOs(hSTx3ZZcpppU;tq37tCn&-VgibT9C$t5z4wlX%$mFfi{#vP;L+rC5*$A}ml zE?I?~@f)ZX>{`u7@O<6|T|(JVyM#iR?$&PhofHy>3h=qnGm1WMq>7&mx)tKh9Q8Rm zSbPlda{vtJW;B+amhox2wIaS5AF3KzAyrHsVD%#Abh((XFRSRuWj2S?RP3~wr!x14 z9NsX_N=0RyhrI9o)ei!G3(vP2SPMFdx5`3_Z*Avq&n(o#-Fz^L zHH@|1rh8Bb%B4l&<+@E#WieAIm=*lOB_Vvmw1S`A`*}=fPrz;|PC}hW|I1q++38xo zzTqv!A^{e_HdRLMAjBU}&ODyn)(?WG*tM*F8)x__lnn{-Y?wb%s_R`aWGA}OswLPy z%;KXmrP^i0&$zHP==l_g<#Th?t;9;#g~4Xo_G;yc!o@C_Q?Z#AHo&7^8WWZS)NRG< z5#$2RcT_->JRqyss7PO$u4g*=*%PVbB#G;lK+4Z_ViBGL@bswUxjR~gnCoDSAbHbx zPqwM0-o!vsJM|h<>?l8r#dT$6O0F z03t)7XJ&T$(o}v4s;WpiL19t1+TZzU&W@5wooS;pNe1wPYK;t6Xt}Gym5YB?4KEov6R{j)&2?>v_;G|u1N&`*8C|L&y{jk#6D=k^?BCAyh`_@ zca>|8>wEY0050!5v7zD`JdO3)jJiOQ-oQ7?ZE?G|FN?+O2rz8{4m6jjw(t)AJy5#S9LzND3q)rzDEbjV@Z}5)%+hfc zs$F~6vfgDeVsBdYq??f9k2be>C$s!41Hu2J>8!(|?4q^*f+(pllt_0s2n;PSAV^3z zDBUr1O9|3QcXxMpcXz|k-3{mQeBb$(i)-(v)}FQ3zVF|Hnw%iPTq{Veo}9Pqmn0?? zLx{mZsk6bzK=yL+ySsw@80D4$vPh*A^h+3xM53l+0YbAMR}A*addEoz}W9iSuzNjTL@w>qePao zS6J;&i<3~t#X@fRF$jWZCP?iR3BJ8p$}NaPD?1ci68Uozo)cl!~(phA^_ zWsPiOAv5ybG0_!mvV>gCscqLjCo%bEX#S7SnHxLC(R${7U}&`qD6(mI{Lj45 z`5(FZL)Okzm^Bvi{>rD)dtB|*;b>APV@+2dAm9P9mQv|OOAhWKNqBOPa}1bwnq)gR zljoE@nKOk#_pjYYXgBfly+aej=WRXOMs`VO3v7QnoJ8(>Ta=$c=cJ%Gh{0&fHnUMf zbz37p7*6C|`{G*(OKGq|RsPzw0SyeM(@;1!cO4pU(C6vZk#oDl5ch z>@QTyqGQv<;|grdnnC@t{paHBf5Y6~Xp4Nh}kZ1uaNIq*VY#{GatVMbK0 zb|YV`S490YJMjH)9WlrUG#fOsvJ=waJj%2YH-6B<$}z*fWKx|0t(;XI_SR{MO0d`a zV&LrK2-q^u;oS2F)YL3a;JZUzYGeY1`WIXMoZsT7+ez9>FHuD3-#et$hMzkrFFXe% z>`YMef-ZQcv`||Hb}x9CokK3wb`omGwtE@k;?zIv#!`+K8#}4%{Kd`-MJm@9r(}O< zC}P|=*C>hvJ)eEE)H;7fR9}jVIE!8hrPU1^=&)&z;#)^#)Z!01clw+=sGQhrYtYtx z;J>X`)^zel-X)oqzt@HFQo0bu%uK0t(%}6Ly!SprB^H$Si=YRG()EWwEl-i?AQh^r z@bk@alIv|(L9dr5C=sPIm-OBu)+0YN*Q!iJ0yYdR?I% zlRrTT3mJdr@-J}Z{Ffn_ZkG4&RFW)2bqS2O_h~#FJhF6UbOo)X={FITOnI&NneoCn z=pLntl|$YIA^cT8`s}ZAzQ8}E5ZuzYdtspCye++>uru>u=@bhd83KRihc?@!%+b+_ z?t(U-vk)qqe5e;H*t89$KA>Dp=nmDV+Re?Cw44coN3p2;5~4kFYHO{`Xl92}byi%S z4}R;I7(jfmL`FqolU!IuMy2_i_kaDOwjP+h9OG33X){WtFZ7>Oy330Zdinjww}TWx zm}dMi4iyb-AwJ>6k@jYWf=dWHl~ zjD%se^TDim_3sJNIM)AKQ~-^62@#}j7`G@2a_XxrMk+z*a2;G_rim0{}-=|zZ59cVCna01f z3k(#F6_I7Z{b(siAgNiYuTD+X|BTmk-TZ3c_a0)q;z>KnfG|le%#%&xW+pXAXn2=Q zQZ>$ikV%#fSO7W4F%wNfDZ$9<9K#Bg*ua-&6~dKANUwT-?_XxAdpmWWp<|0Eh~OK5 z5%^0uWFx{?7U2hu3|sFR7;+bnf>22_{*duX;JqL!h>-q=dz1{HpHT{E2tr%X9d<~2 zsR*>8ZRv_X@>UTwolk0bG})YAuBd3{lxPhP-vRAZW3Kd-jV&f zuvRR2IRo3r&zhT|%x(U6APh)T0UA7%wd(To4js^L`c8ard3uY;F@_H8{ws8eCe}EV zTg>?j9;((3GMpTO-f(2rz*0|?`ko4#_v2}s?)g!?20a2Na{0)AU|hwDq+o~dS3Pfg zo*w!Y`uDFfpbv>wM2l-pKn?}I_joGbltkd-;-YRzzBbR3O&N53W)#GP4?@v1Ya|Wn zc9pI|fI}$795+hNq&uo<-4^QGM8jTa>3M&ABz&uKgPlSG36 zzo-S$G;+yc?=17j#GD9<|J(*eg0=8#zUt!7$#rg#$8N<>BinS?EO+L~r3t=}moY-p z0fB76Wf4!pSs{HsM=r*?oy&zFkJHIA(C45A8?NwIY-en@q@N1a&))UmewBYY3t~Wt zX?v=8I3Xsn`6Bsn4mmtfhOmZE91`J%6SmYM^KxWnqHgW@l(QCgB4UbjhM{ztx7JrsKG1#zSoA*WJQg9swIZWdG}dGij^12s#x)7Yj)adnA^VcY-2?Ht1U*_H zrm!SrAc`3ugK|-S8_sp!_aXmS+mep;@E^;t^>N+`xm^DQ?5IsJRg`hHZ*~pcwgIi6 zTtAtFtb3Y7NnJBjt0Y4jn{HU&`)=(sTjJ8xNQyq30bkE|DZYLDQsMulLAJR3`*_e( zzoavIYm}(mD2;0R2&1U0U_fK%|Eow_l&|$2h}?3Ns7dQ(nq``>X%Vp4UC~W1_*uk3mG2%`29C0G=nGgGd9xy3yc9~k6b$!e|Bfk)Nn?< zgMgGR{@?j#dnUTT)p!TiKX)lceqeinVjdds`*lVYM}VCEY|-6IaB?=q)&hu0^${MB zX~7F9V9li#HvOGDKTH@{Bjt0S@PFreV^Ug--Q}7I6bKi9o~z3E@V4dD;~p<1Mx>p? z8y74hfR(!J0nZyYpwd6F7s~FEbnm82;p^zjBkzTqx2uL^v+Fdb01Q#7-!&X{vDL$a zl_(#gn2;rAur@zWYiFjgYg0u=XIB{?g#6vL8UM{yOb#BMC>fx2|6zFy1B!?xW-;>y zH470WoJa<8>u*TzglExUdixszB%_IN!6Y;hohw!6IQK5%CcjBaCyN4)8iMgQW5m>A z+62VM?m_8S&Y!vDHuxa3z;_V94{q|%Hk==bR2&KTlyyKs`iGLLns$zwJWPudIM0Ja zG9f=}YI|%-%*AqNZdfxw`j8A4MJ>F4elT3b#%?H&uZ{|CaD(+5P3$QH#0ZF2C|FP# z9_;mV)aAI~#CY~CV89RLmMZ<32Cz5Hlot6-8R)7WDS;?F@Z#AYR&Fq%diKEoqM;w7#hFEZU!+Zy^`eztu z<{aYI=#r7W7Z4J!i&=V%yUy=UW@Yj5g=d?L<1k^lS&Y?Ep2lgoDC+y{>*FBw-klL7p3PjmK;ex&tC#n27~+ns*E zBZ<(^VwcA{g@qhmbpKsnDFrAP*vWSG_6fb%LbvvogN9K6N3<9qc?F`}V=u;@B&hu* zGTfbVBk|J&2RVF5BkEFtiqy%|uKow0 zNo!E`lXO4_s;$}L!hb7*&yqz&f1n#1icoY_%(5ypMb^kc45{lIW5l-)j-2G^*`PyD z)F#+=fd4TBayz=x@|e2Kmw||b0Q1@4NV^XSYPd`ELsD+g!oJu0+6H9xYVcrZX{oO` z@NV@U5EBEQS>Mn)jC4fzDW)c$Tv$!{^UgmVsp|qNxS+eA>9VLis{)E6 zGRjW9z3hkl^)9l$F>exJ{<9x)A`Mds%l0<}iX#F#L)WW_G&rP?PF={;*9@{vC4Gnt z{LzWF-|pk;TR)Y1YW{}T6P1aGuWl z3w#>$*g()5sR)K*5vzQin&sTJhDV9G!}RtA*aGc;15;!b|KRPZT;d&8_bW_DX5L+9 zK~|yH$Zp#0(31~1=c3)oYF)(`w#&zFU47d5;YS)Xh43$_lg1yBz{sBzV?~@}*iyde zrYM7;(+PgabQGj|VbRp#1q1$_c|y;oodtUA_;yU<>GDVA7!qXD{^|TKA!L&x1{f_`nTBPilH20NXydWA z=Y+bhy;2yUzakImULR%ohytxkRH)syI6f#|{dWGmim9?a_;7{g^9we-u)NGka@US1 zf>w8h_tz=3yZ4*ER^uBPc#GT6yf__nB59g&3!6}ml(03Yv;OlTZs$`ZFt0x$KQ#7H zd9QWgm1JY}8w(@1VHb$l6mV*kkc^ZHql$ocQnN3f(4f5RQQ)nx3(bE*?)+ghxdMlK4fAsDb3C z@=4Q2OV=dEy+87*{%Kdo>vM>vMTpbwkm8Kn4(&uPEOi2wLZQP0C8PMrsYSatFN9R? zd6Yh29w>I@X`z)nXSX|Aa5V~IAwtMt%Bp&wKKq*cSgtN>`eJo{SFeo*Ngw4#N(f_OfQ6yf&lz?}UEY4ENcDr>S>s%bf? zLV?hV!gBq{D5wKG<&V0C$;O1Z_LO9mWqci*_Y@zIy&mhl_^#T&v`@6?K7e*=CzTf6 z3LRp$&w*wTONx1e1T&ZzUnKbTbUg13FE`M=<~19jpxGR+bA-R=7&e79kHr%;{-P(V z9%IG(7ps^E`D!%?%~WzS$F6M+l;H-lYl|ldQRYEr0V={OSrJpU>MPr8R_GZe!?6)U z-N(Tn2a`4K2>+VliYxDX|3&;6jk-~l_FU|;`G;os{&F`!=wnJe68GO~HD(ksLUQl( zOoSoOJN3>ySRRsiH4hT7MDd3GVIRst<~+PXe_MhHUy!5trGH^fyr4lN=Kgp*{!DF_ zOa~132V&JRcM(X1~7phl8{8iPz9VoFE&~;J9DZ z-X6Ei&9?3*lt3%BY`&IL>|g?b1H9x`#}{vPFTFak7fG>4B{w>xnSj@E&hB*bB5!vQ zoaVTE=iTD1Bz2Kz0sM<#(|Rqa27wkH9Zk^pUPcdNv?dOP#MET z$s*9a@w`-P{!mnL`BH}yCK!ig*jL?M5F;p1rXSli5cDVUK{Q7-6|u;SiOE?`^ISv2 zBkW9?02;TnH7o0lki+}%B`?pF^hMQxdL=yPF%s#lO!i95pN4cVIbdb0r(IJK>o4m4Y$AgSdLx^h{SY^qg zUr~gPRyWruB&e|tA$mU}2$8(|k-HC4K#C?Y79bg7F-rchr?}XC<1fNfBjuw6T`-m5 z&TJhLwTp6u-n6K~=0w;i7{pLsL#aE~<(SI)C1wMN%%4{O0ag|F}{LydgB(*`5(r25#hp2v{GF~_N2GD8U0N;d&M=|R}+pIYS9#Z z|D2wSezV_omcjEkd-w%v4$)uZcjNf1vPAR7KZt($ z!lWPnEJ~Tk`gH_j^hdOh?x<#IIS7b6d(y(Duhvi8X<8$A1+D<9#uMf^b@lIy&6{t^ zx~HM8BmF`e&hY<#aJl~*Tw^H0x>(HF&5_yi714gxIqvn#5mJQ?<2&yzQjGkFU$srG z5P1_+#UR_&zch%EE&1C#AAoSo9}356cjF_})~1NutLJqC@@S$*DRJ3_b%?jw`!Wq{ z3K(|H#>SS&%FhMxYfV?zKl1H&VPR(6>XmCIAH(=Po=JlEMS9B~lUH&#KYdaR4miuT z1jo~tiFn(>RKB0eGYPu~*Y=ldn~@wpb#snk?l3hS&97>^e6NtP-v-nezuJKt7~A>2hGWMmgi};l%1;eX$kl(|^~l{1d<7##hLPIoGJbyr ze)YEoz6E~CUyzTI=VF=|qi<`yDjUV~)yEV7>YRSmbdfv-OnP3`8Fut#;vmM3!v#ux zw0O_r|L{g8HTk}F9SO+~h*rIfy+wUoXvp(ssr)eAVCojI0c%6}y;+zk<Icy{A9y4c{uCX2qdYVe#yv9!dm67n}7ehOdUjue!74X*wK7H;xOzVS_r5D_yYf8 zBMgA&i;x+}Kbl}=R{PsB4n}Q}MPR~NBJUv=UDP%8hi`=+H>Z|aIqVW)UIVG5;&6a! z7@Gzbaqs|!U9QFQCzb%(FU(!vK3%AZf{oUpzOV7bdo%o5D^0*3nF6CbYA#Px&^m={{w2)pRi++ zXE!XJ?Hoho2ok_OwLP|Wd=>iit$_#!I-1u!51Ea1g=S|m*1GX}!CC2;;%LM75s_oi z%Z=Wsz9e=h2Gn0-03AFq#&|40qC&vgq%f1=D2lWZAlB10;57$5(Fek}tc4;-`bd^s z1oBQoDGo`npcY?wMMhsrzY2gSn@5CPbTNtfvtn}AfGN=W|N*?!f@kj zPyRz}P+CnDzqr{!W%gUm+5RZS?%x67`zehp{Y3E?GW0tpO^?`mD+^vD(-WUJ$! zLcxZyH96ww6a#5ulUs&NL-!bJA-{T)G^2@hhkpkX%4BXqOd15Z5RF3;3p_UCBPj5W zgV|iS`Q?kQU;2-^Sb+>;^kS)W4qPVGS+oNRI(&|B`k~jFA2L)pj0Qsl%*_6 z>U%IH*Svdl94?0qUA4OjlT$mAQ}S(H&R2 zbth%FN#$sTN3UL{loER|MaMlMVBn$Xl%V}W0fM{3lFu<{Re7wAsavionsYnh4X&pt zAqM+IA1DV~7e{O;vp1Q04ZQ8zRM|uWUKr_4uwAHL-zILn`)_eMit`V9z*ZoNX1E9- zvvI)x)zZ>mtt_c}ZC}9OH%b2Qr}7rRh~Uur;xjq`h*bg@w5p@)x1s<(Yqp3l*Fn_2 z5`KD%>M_At<3r(Uw?B!Cyi^2wbWqaYvwE`6FD9rUq)$3jPMNfj)(96KJa|;B@x8{j zesazrqTpe#*@{h5CB;2{*JGAf_t|QopAd$Pu&_SV7P;u4dB56sW}=4@Ua2@yjB422 zRAOp6wW6`_H1w-14ixqaU@FUk&yZb;Yt$__mdDaswg*i-Rji!dujXgQ(4t#J@@w5( zTcWsBBwe-o0|P#w0N2rFX3rq#_wQUFRd~2fpB$Qvukv|O4PPLv`(Nk9NdG%z0D=Ug zj_n;Y>MUGda-Gg{-kPrO;O_)I84u1KtL!@Om7lOF_Jb}|u3h?rsOXE-)JZ~agLlU_ zh$>&7X1dCl9(gPc%Xm_Vdd`2>0nRmU*h^$aS5fJb6t9w``n+`Vf8HWMG-+iWdS(nP z`EmvkLUwho>L1J|D7uJ0+Ch)XvjJIfFd%8v@I2NQs=CwT$-;oU*uw6FZKp?5m{RW( z+W~x94@a3pK=L4gTa^}lKQCU6{EJxVW)qVoyZ8u503<3T!YKKBLv2CkCq!laYZg1FwLf>(Qq1;K3@ndpDT`blb%8FGD~r zo_C6yC$s`9mLI&afTu6@lQ|I{47}(x9BcM#@ z7@L>*+LtqqOxK(Xsf@k?PBbp9n<39HlIJbFB2xEBsD5#N#%HHtY}mK9Vzy=}TnE4* z9FQ|7jtHbx#BeREJYH-4GW@_c0oHfkRr9q>kle&#^kA((;g%;6^^P{c-!FM$0DzT0 zNwbFeJQy~R_3M6?Ry!=)?vv}!s403@c zr^bAN%hW3CMp}K634!j&o`#d3!|S^xh@%M*^5EDP`ii!8i6b9k7yHY%$W4E}c8?5X zm*#Ly|Gw_n7KsVyaIB1lwKGk2Z0K92I4p%PQ4_#sRZNeEjt%IKESFHgn7!E*lH2qN zNjqAC_zl{1=aV#Tcl+szSlln6Yj?-#`s{cJ3S_MFm8q6q=L7k1idCi~X1uS_&b##R zDyN0FKXHkLo1tQ)T7cBhe{35tUA5!B1u9#iPsFAcb0?^(1xi~F9%DfF)-^xlTd(Uz z^YG*jw!8=rkIkP6f8MR=o09FaPTr=rDB`;7PlQ|Q@Y0-W+U^XuU&#$@b&a4f?V9I$ z_Qap`82Tr5JrC;tp>wmpgvbwZg|({QG+0DvT2p6~B7rfr4Y%GY*J@f$Zjm(0(k_$t zMzTk18o#!xFFjq5=P@}Pjoz2NZ#%07lwsely9O}&BipYtRF_cYSz1~#udm_~pT74u z7&Vo9eXIElLQ)+CI9(+r=1KUM-oISo6T7q}p+`=S5qtA2Yw9gcx4n@Q@50CM6@5=O zl={Jq^P;6+IKB`HjLlpMpr>{CmOfl!x$T-c{(QWDU2wZ4Z76+gy}W8B`S0C-Y2u2Me;tz~239)KcE zYq5TSuK<15$PD_O$4`GVCh=*i@W3Ni13WZ!9o~KZJn43dhwPuVb}vo%?&n(sOfuHz z92T*plfoniZ19Z}+4Vy0mYKk4f55NsTroSNbtS&00nyvQ%P42Q=|sXJ&Jt?5y65S? zOjkug^Jx0mF<6ItH5nq<0#<8$myaZ@s7|Mruiea}-#yS<&VK?T^L`h(5M%hCngDOJ%-L z2^`4`=@5h}++;imvju}Ia4nb~9lBn&C~cnSJn1yNJzfOevaH5hc{*^q=?}JGyI)DX zac?XK3!WUO9|rw#p|h@Kd?oY(E?o{}IY3jlsYos!x`TW|2#l6JV1gLVp$ugqNNbj^ zQW*3O4cK0Q;a1L5DoJn^NCeE7`-kjCLfP`-3VxVhWd1y8W1LSzfWzTQeQsF`nVlsd zc?~nMWbpYZRX|=sFC_Os=dme>*NvDVf(kZox5CwRgd6vOSbS93=8zb+?1vcSmBe(J zqzUh-z$(iz%Mm9y}_begHHDi%;gmRNq)u#q=fVP;OzCwwZBS6L=diK1^?Z6W)(eyFA~rRYp`)%ze7 zb+%=<@vX8~E8=#U=Rxf zwb(ui#CC{DbJ-K1$Hohz!1GP;ys&%+K2Z*&#PU zC2$YRZ^O6KDl!6t(Z$^1wsB%8DBXVq-gUNDuOsNSZ7qF>h*u0;TnGr)SH7ypJm+I4 zr}l780V`6cGb?{P?a{0XF-c}s{b;KElgGL`2$9SfTB1HF{!RSax!amR3kubBS?u!P zf_8Q61PQcAr4-S+E-!3Hs49gCvP!>PrX38MjQR+BBLQ}`8LyWp|9SbNeNi^yFo9!f zP}G#}g9uuFIUIZg=J=_|uy!FrfC=Gi9FnQ>%O`Hl4v8h(CLQ((9z8_>qAjs)dH`E~ zm;q)nLzD;CCC~IaxrlG)AD2u@;$hHoz#%7Mas{)xN(7gqwz=g)w#A6WT(^Xt`Ks=E zUD`RDc8d4j&SfUiXtWAzItfYdv;37*K>lJ$l(C zkG)M>ZLI-+(aU&>n-gWtcMrqD)~3u3d2zxz@_@6!k5G`6$AKn_N=$gJ4Pk^lL?f@T zmHeptl~_+sXh@+Lo2mDg@F(PK(sHa&terv15_+`VP?hru$7PAA?9d~pb7xb*l|`Sv zJgxtV()7)EPej_TYagBjZ?5Qp&MKLGMB4Dc?e(uS2tA^sk>K${iD;;#g&k~zup@EZ z2ER+kNuki01edj$DUtZWc~^qsAHv%V?4SGi^Fy(E`LdP$H*s>wU7mJ4V@llt3s%@XMehoFUNY1Nws9D;T4{oy1Y8Uj7SMcf9 zvQP0_5#}W@T@i}rcIFW3NDb!RWbL@!2xAXXirB=~NogQ|mwk**X44Neq-gKdwzt` z&m&uT`%s*u1G^S2_%a=REn12KR_vo?dq65TQ|a-zJoGfgMa*=g0dD$Qb})ZSpIB#e zyBaojdLy>-c4~$79YT=w`r>)kM8I)fSDW!Xv1JdT_#=XXq=e!_QBWH@>31dgpufpa zTKN9EWkgRenT=$H9@p1O(zO#)aN|!cN-oL1F5FEC4^1sE9$B&12lSCoAzQNy7mHv zdtM5pz6=jc>J}KzMkayj;DFh+Tu)Q>m{JNni`3_+IvxSC>8lN!6kH_GhqRyUejovHs-f4T~7(yPLUZrI?Qzc{jGK)o&|G`YLCv9a~_jxu`3w3 zby^EmYrG5m>ei89{=*0I2&rR##~aFG)X}8 z=3O+CXL4tHlroA=XRitpt(1a@EQ;tgs}Y#__4( zAgm~5KI#^n6Wq^cv>$E0Cm8)@j_Y@#9MGcTIW*Aa2u}*8ZJUiT(?LJh+1E+Vw);>v zF+e~04WUYdG(rJx1h>}i5@W_e-s9tMKKKH$ZIeDJP&R7|-x`OaGkl|`q7)8g4*k(* zk)`wU=DD&R3g=FvLqgp)S$d&3*?xHfD4jJkQT7!*onMGD{8Z%J;HUDRkx~_U_OhhE zxj!^Mexvo;6@(2xA${$Z%=u-+7foxk{GntvyyPlJ{*GrUQV@Y+$AI%L5fcs~nM=8u z-_Ca2+ok=J9;%hWFUqt2UgcuK(Y>eM`uB9ZJqvn_Y(EG>GMI$!KOWroMjGEOg^-Mt zKCcP&i#6eeY{ldU47Y1_$BrYrvi>qN*}m6^EkL{PI$R%(srsW4y673^1WW5Onovz8iq@`eKQ{<-~qFnv)cLRJv0WQ5V^2 zl&P8w(0_-Z_wSnMW*C|tuFw_NdDi`N;QQ>0P>`BC6iy(7Oq;EaR&SZm&{L<3r<1g!goE3o!7k| zIY(BU8udk>Mpx>S19Nfg*(0|Q*$nl>QVX6qir0|o+6Wj{UeeXjzhyIa_si^C(J=t# z6b*{G@s6J=;RdgL_Rb9E5xAjJdd2fbqKwz0VhczFdzYfenkEPbk%w_fNGT67J39VI zlPOX#!=Vs@Pi5Er8`c}iEyVyU#^Fk|cad~$?AJ=fvoEC#B3{Z*)}bGFa?qyjIk?~u znw=qJmJ=Vgm5gd=B>Qd;%A3uhuV`dix#NhnQ~XvjSWmWNKzWzQ4F?I-e(4j^Qz-mH zVU(@3ZMPlrU6F(2%%SK3Io2jEMbQ`u|$Ul-JUpFXtP07mV?h)w0(+yWGH)0`}BwB}2+iuaX=!D!hFbHsgnH zx=83DIArDG!sKD4UDLgjH`>6&>zpfxIfAku*5{b^H!iPX9S44PL_bm%R=pS-BDQq? zTxQ|9wtZ-3Vr_x(r%g1JU<)|-`l<+=6pU~Vg@qUm zB)AWaGyI0llq{P_iUt13pQ*yG3LV;5nZ2Yl++t9Oi_X}x_~2cAL5eMe$KrajO!Pju z^()}GDop@D*6%q)P>rZ!LHYI6gwNQf7#*JO@r!&^)az3o#-fK7-ta=iuWnIfFkM(d zUm91CyOAFaEBiQsr@TsY=&x{6WH%Prv}G{mgXq7B)4-}Qem^fNSC>y&nSGZ-Lla9v zUtD9bNSKZmj7x=HOlj;I5-AT8*`03CwPXhPF-*RaZa1~O=bqmC0`d9&F%OiWMXYF` zRM?YyomiYdkaN2_;!hMD>-$TgIL3_WoV6$8>+T`fW&$YnR}kUt^_e`F|9(mJ>b${q z_KNTI$*XDRr|0GYXSV8n>vZnNt&h;aL0c!B<-0p4v8liOOEKMqE6+05R$8^_t-X@M zB-n#c56NyoSjJw6TCo!)wl+d%c5xy15-870{suTl*=uZk3V(I1tQnjJT@Bv$PDyvx zc{^KVO73q-6IDdAAX4j~ zpf`)8>6~-_ay^UgIX=r|oVknxq{eCwe&#GGz4wr?Et{)t^GjkhTaxaLj{ewO#+HaG z@c|d-m~hr|pmezZg$`R_Rc{IPfF#Qeo^5t$z%j=E(hiY_qH|6bxmf4hE9pX0%kdH4 zwkzZD5yy;v@OoM?68p+K#TJyU3bzBH7lo31TeIVyLu7@Id8y)er*u%l)cXgVxLDPY z@Uba~WDzC{d^VHc>GSYf&8upwrm$8Rk*4W>)osLYuaO)^ca`6J+R4?6~2xwebL>Q_&O?h z2I9CcAhGb+BHT}IuifyR60M`()mln8JGh4IiiAxTwpO{$ojV={-m8&Ai=EtaR7Y64 zbqT1adlIB3^fRH$Iv|djHUlg7Bfe$X0~4;5f~K1xA-TdBid4gdTotfj+HUU@1hoP=ov4v){HPn2Ic>t$hzzDDDqhynocrMEW#1Ei=%nU$ zX&g+({B%w-BQ$)AQSbXpQ0?GNuAoV*A@&zM+Tb#?$7&xdB7)4VZ5luAsb$;;;#fR}#5=QbHA2;F_M5f4 z@~MUdMi2NJbdFQA+%X>_)LOB)dCeURmU|ZJlucjJ{LDf2aXJn2S%aQ>D53 z@r|i+iOa7a`@FKc{FkK~k#vE}3(hvLxE$kh>x%E}&D)r0lZ8u?3+^G8d8(7GRZ(o= z+vcY;-;AE@UdNS;^7PpXGKdNjs*V>vO0Nk#5(tj@Zj+}6mYDZ>t!8U+R$+xpB7JSZ zQlN2TUIb%8V{?P5iaI0&HQX#q(XyCv`-)PI#WouozvI&NTpvscSwx48_Q$p7Te`CI z#yfkOwIZbyztjYC4-Y3V`B(`m9lSI;NFM(vA*J8ewpiX%WiT&R#hLC{5P3IPg5e}?V1BWDT3$v}{W1f7a z#24!)Y6c}xiXA~3{41&LbEAiL>O<(3f8#*r2W8dQ!Eo$(yL}7G^0Gd(r9eXQRs?JW zw$EE!_@KKm`^b$!b5yw>oIQ$?~y-%eYi>geu^t=B+T3$V@U zCgSZkEGNowr3;DRw`dr|&!fh}{WNK;*_u5b&kp9=Ore9bvt*&z;j1OOl7Z#(<_5TZ>?; zU^cNI3%|F~7C#Q^C}Rh^W5jIreF=8ENf6ZJ$a_7WdtzL7R#`zV#%Zj%yg6-IQ+k-f zAScqNJ+gOex>Q&GC}CE6?*-YRg;pBd2g`eKh*uy@2Yq@y3NOo@ z!YLl-CzsWlE7S$dJcS4en^A1tq*UJPal8W!6 zoZ#%^JlEskt}c@Fbzy<}pGz%fZsZ%mV%yVhqsO;PUR%0}8yv4Q$JwdIMf2ZZN?wO_ zxkX7H9mg2hTCCvPEsl+OmEf)9&$`Lfz^^^?^#yjTqf_^#)xEza0E(D>e1?u5{js=WXzC!R@<( z@@vk?2c3yX%vocvQ|>AD=J)1QoB8KmKB3Y^-Cu-};kPvFqd>mgtxtmvRoT<;1G4n! z!%2XRJe0?fQ;`hDY2#lKWj8JOl=VLK;4Y(r$;0UN5oKC1Qy;TVRyqf#fsvYiH+Ie4 zy>3g@YZT4ny6rK3@i7^RcNN5^`5)Y_Y;+)x6Fc1lMG!z13bTFG0rOgjlDuYzj=TI` zG@5YPk@X!UT{oEn{_8>Tw}c6p*!QC}6Q%?RY$dV1*>P~^VYM4#%;lH-uGRT|IBlg) z&vlI3xv(gJc)6_y?MhLM!PkUiboeCWOO$XyvPOsgA26B_f~!&9$f(zI)WGzxsTkas zJWvb|v1q&L5u#Xfuh!t1iF!BTy@F2|3i<6yRU2BVj9IuL$OZ=B&74_A&Y2zJ-&Vq6r@vf$`t8th>~0&ri+TFSW^(CNoCN2 zgyeZ$!puNh&chc*$mC(%)!K5!jXZ_nUHx&t8kGt(V-DrnzCEHV-D=qgSTkOd!7SF1 zHEH?^ofw4LI;MyOicJV1+pJcg@1cYODUw1MoZbYuzYND5`xw1>(WRcS%Gs}o2JO06Wy<-moU(oBh#hYtJMsn1aH+Nsh>_c<%DK`BY zdU>@CfrT}M3d+$iC6EhE&9udi*>Y6UDZjQ=x~(mLLzef)TvyO;9~PwUk~u(TDU>s+ zeDI^E9`Yl-u5bBsyto<#P(6Lxd2CW@QvbY_$=BgK6ONfPg{F`+W;nrZXYAExPlCB9 zW(X`%R4S=kR6C5?Rkr=5YZ5d*<)^EU<_`8>|2S-wORK3W8OUn}T8pEAj5$Q^h1xs} z+V?n+faj&i@ogt&ZY8+cF4wD1afV3sawTPL1_Vt!d)`cNO0B-N5L|;r)TSxit@_?t zlZ99lH8fdx9tg|fv*eyG$8%WAHN1b-4DcnHL&BCH9!M@i|DYZ%d#c@36>z@@@BMGh znatf8eezZZietE=>lk8$rQR~g^E~zrRe$ppcOqMuvA!(4D5vN5&v@EH-tQg0!So=cxl~uB*wR*a=jpdVfET z{2(7u$%NmXkI&i0xr|ZG3u$d6Vvr*$mQA+jGj^{6KL1TD1{h&Yz|-EptGhb;QFhE&~Zye&X@}q9m)v68f_0#kQpL5>p<$Q=KSAr438D>ebV04hGg8~U z)70lkwVgh+nWlu-MUq)T%IKO>ABIYtq=Ln!_nRIH`|lH6Jkv^2h&2_;x@E(xpvzY zna|_)r0ma0QQ5@4xT4f|T{SmLYW&KYAz|{-8K7jd*g+V>0GDYC?eSXL#I&J=)f02& zSDP(`r8x*#hg_a>mAx%o4ZmU*r$;nT@zv77)&U3ur|0b-Ea0eH{qq*CPk7}3{IGhVIpeP(DILvf#Y za8WrMd6-bIVUo+j?2T?B{ZeVunl*Lx8urTZp`EmR4CYi^YwJT|@!U4!MebutocZq} zx!3Z9f|neqCGW-xW++zpr8_pbmV6YuE(wWn<{h1fqA$ z{>-7S$jIPTw7eyO2d!Fd_#p!Yp*OLnW>wrn;>NEy6Do&F1qp_&MqP7#mTniVpT$lu;R5=&^$9!CjOt;mB$!4;f&99yho!K-B%j zV=hmscR{cIP?JDu1BF7ENKt83I!UIg)YKs2T(b??M@h%u-hnw;8)oH1xcM$6h#(0v z+PwM{YqmX@X;ediFtB=F_hoge_w`u+a&hSerf~&Tt&VS)=BH@C8`w1R5PK2+c*Q@< z6YjKDTayza9$^pHpRR3PxbqakAuwsUIAkZ{i&o|rm^({&ky9p2(jt_y&&TTB* zZG-UqsRrH1hS)5`+x9O`RtJf2#Sjs;B!=AwJtuU5RIqI6?24t*FgN-0O8oHlia2Ud zFpDZ<@k_n7@?K`ABkCID0e&K1f&g{3sct%VDu0K<39Qr$~j zujky^Q}p~Qz@$0I6Y%-&j8mmWaWmXmS)xpO=Rf7DD;>t*vv6W6>|I(c%D#`ixyBeG zWSfWR%rwy(h-wmo!Vpz&EaA(OIbZ$p`Y1&53M5li9{HZGy5C!97-6d;!U`=?CZ_nG zb9HX|in}4VcwFOz*Ma8?6Eh6MwLr=p1vi3zC6d^{*rw}8bRah8)j4PU4ZJriFfq!JM=6f^Eo z6<7T?QnBRQU;=O?lmK_Wd|mUfYNxDoguAf z19Smuc%Kap`13i)pIU`X$N?&|K$le{wv08oFSgpYKKpC&R7E7SP&|z7kZkP(#mwCf zIk5s+m~!D8XN-6)T^Tw$NnR4VO{ieUkrYmH2AWx8ps^6iOHdWUOC2PC8rYi#A7nQ1d7i(Ee7g7=#DrVCc+z0n6r%!a6tt7rY zHj7zOcVNf2Xpf1YA|Jlm`%oQ=u32`OA8R$`3`LqI_xKJJ5d#<=j!BdUwV=2D?L-b$ zmZJA2xy@W#iSMded}K8?`jg`3zTjxHWV_|o-R^bJ<37Iig)w^Eog_G;&IWJA)yJnV z=MmR9k6FCkc#(?^n{RzCjg6shnJVaI-P6ZZTQaf`fEw;7k@h&qm}qHmhs|cQT#zi^ zqJ_5Q?Y-kaMrLy*I|s)Pl}>0W_f%jK?wsOMdX3;ql7=w18xCl`_CzIJP*6v$dGtXU zi|ZBr=Kdy0=Y0NNYM8xxn=3`O=f-=aJT*PVRE~S<{p~0{x#1&K?MSXRW%r{U5A8ft zIuDOS&U}8WyqE8Kflr^qQ)dblW07tG96PbhTyXEHiwFJGcd` zZ%5MmPjRDjwsj)~(I)LRQ7w9$AMDbo88~r^p-J5kqwd2q6OVA3d9$-ieNG+d{Y&TI zReOaIoIFDN@P63-TPZjEH>f}(J#`DFZy)iKEBFo_w5h&%Yc<>w*pBp@d?f zZ5{5j@Jd`g$B!y7a5bKht36cba4oHKcbB{E>y51xK;9J3>#oDDSQAG-Q=6~vR{!Bj zSB0VuazC81QKo(0t^1njwVwLbIkkZ0&0cB%QMx@p8sl>GMXYp5Xw$X|7<9-Y>jGE0 zZUUy`jB0RBy1#!@0cTci33(2h$H<-H`Bj%vENJ@%Jx3=VFbE8~@L!=YBAFIC`Xw62%vcc-zmFi4);2!GF=do}|HH&I(bfb$y~w?pAh*3L zrSLlRZ#40R_`IyT!`#m=h{=gSan$#|S{L!_tH*n+2C_9P$w$s5uVvblVyq>ML6aB- zF&TP$cyHNty5=qSh7gGL-m1c3-kK;n2Ty_t7v4y0<-U>6$F!j_A;|bvN^1h*5bpFs zn}oOXWHuEtWCL-%AQ0ytfwN)L{qEtli?(Ae7p7)wJl=WC3@v=2KVb?aS%9W#}8b-}=x`9Xg#oqG$uqHos-p|rO+Zi&d^@{V33CS%*QB(fp z9}gkkD$1P|`)FWRVShXx(oZ>Mer8K!%DJ3@Em}mG4BB`^`vWpOYL1A2x>QI_C;*E;BkNh_( zJ*G7}HbGa(WJH!F2w5DMF=}G)&P~*6bZ_1+b$r?c-@~?Z*rnE2e0C02z1~5c)qM&4 zn@-1r<}^}%wia!2#-!URTSyiM!0LY~Ml$_E>g@dER#B@yDs0X9nQi~MU6_4O^Mz=J zfLyLxxq#dgHt!B$Ow2(iN?&i;jEtuWdTQ_IA7hRlp76!874Et|xva)fgV*2Q;w!is zv3{d&e6 z0PlQ6;1=h+gk_HTXN?OMiLc-_S@Ff(GH)`X`hXhk8O{`vXL43C-XnRcYw_r~a0-;d z7UZV@6bY{;F&q~;&EYhn#B3(Ti=}SbOm#E+O$@nrrlz>#+j)~d6An8oUYBpg<(2e} zq($P}Q(U>3a2C(#)BPzM&Nbl}k=Ao?M8yVvV zwGmXTe1?o3j_yhgRjEd?jcnU^E54db5#VoYSL7S$pEsI2ukv_ zB4xt|gD@hV6|i?{^JJ!POEtcd`f{3OmY#IpYxxxtshad{6=Bqxw;4<}=^Kk-*zWiv(v2W&l}B)8tb^;SJRz5HET{Tn?9 z|LmY02?>3*C~Ark(;lx`xtx2xK9SuZ-%$1tVc>zd5j>k4Ihv?3!fS><%smW|rxe0+ zSaO?^i;J6(iK|JeLjxjoE;g&bciNYd8{(K)^0`PInV5^^R!@aiW`>pAT!Zj3%Skr9F$6*jdiuFuQ@ZV*l|o6( zyFmL@bj|M(tKEp^jR(|v3JR(N8)78`^{D%^9^(h$Qyd~eYL{5^{SlY*4ccn~X4O*% zgl=rQ^s$9?3<$ja$?uk_>YrP*mulZ6Vs~O)uhIK9*9!9?!69S{Erm@Yi%XI1S?ts$ z+NdzamWcBNQ9lPUA`V&2QOY~pU%z54wcZS?uPBdavt9h1VW831qm(pziCG*s#MHM? zzh93eAqt}N;4^^f{}|YTa0O|juWC)mbl(uqL25Y zZBXZH+>}&icTPcURwDUiwjPQs4AE(HscrpK*1U2idN9 zvQbG;(avUqI)R-T{KjVQWwttn8yn1tx9Q@+8`ewaOA!8`ICv{uanzvqXF(B zCV~NBbQW{lK*3pO-zD3elg`xUQ%k10lZ2z)*pItET*{nkSptzm4MY4mHhLPj9Eb$!Z&w}kQ^~O}E0}9Br0Vgzp;r>ET%E;KFba9V>h&j&mu7R7% zk6gnZ_tycd=VWtA0Wt#<Nz3ngfpDC9Qj?+Rqn(oER1p53y|~bQjTa zEnPw-+q*yUq%1UA0D$lDn4O1Rk(jiFPS^n8vJNul#b;%3I(6hlkVjFjg&e*C09%2N zs#h*GCDh$kiifj2AF?e}BS+faT%!*WHh%DhAv15c`YoiD;JTEznmhm4N3E*wonEhg z5S6_6Nx_>JT9UvVm8@K!VJ=AX=>sty#Ym<@j`O(Nga0$2Xp`C}5uwPxqO!0~l=ZzH z>Ui7v9we)KW^y{o_}=`epPKVJ`?vY$dvhBGY#9}rI;zH7-6V^YoM0)TKj}PbEGy(o z1)O0rQEk6wxfxctS}P1tfQWyo5`=n>RdC6UHr-A;BkxbA^E5)-n4fZ?D${28Vv+7$6w-;3KC9gG8*F%zS<)+W zjvnghIXErUoOGK3;UBSL$c6pOSbPePjyojVZu@{%*PHRt;H7RMU6*I)J(DlKKUM+bc{hI0q6=8)uA6d>zO>!Mp>#) zF{Qa-q(K-qDe(WNsnBr2jko^y9BuGfd4+@AAW%pvk!%85id1(^CFfmCylr%=SklqYvQ1Ddo^fc!2pN zR;QY9W%a)jtz>Ks0Qc1S9anOm5uGF_f9|*Ez_Woo!=ZDDvOv4VGCY6}b%+fG>%PHY|gLBDzI zYkygyb}2tUCLw0VH;Jz(m|^5n*0PT0?lBlRYY|6LpnHQbA3i;7|H5bmdFL8<|o9q6{r zRCOTfaNy;Fd}6PjY|RnNx!p*^Mk(IkLtzGQaliGe*i}SMi#_Ib7%Os`GVef}eRLTNCtR9?{RVNgdx;>9Sl-zV6CM|i|2VRP6Z6b-MfJXKm98oHMT(d5U-1Q|q=)%t`;g5HG7u2u-AMum7|h#tfLjdb zMdPPL+!wSKSra0gX4i_udZ3PI^+dS>k#2@qlK=v93wzb zNSt_H{P(Bm%7soSsBi9#uSiR49OF_06R`iibkWg3`tKY7d$Fru76cCT!BShEnXT3w z^EC5YaXaw^m*f&)XOYq6aQwJ6@?_?o*^*{RwKk zPC~$}c7Dg3(*3k>^tVZvib3NswUt_V->_-blWr5q{}n(+pX+1K_IX`6CkYv~IjC+q zaS(vS{}s- zF#{b)J!lIA_WIoiy02eU{3wnU9bRo19mCc5IvLD;V))y84+o7N9%c;Xd7ckAHA(M=R<=h_Q>Q%$slBxLzH9IYG*}3E`)J;5ZT)*t{(sgQ_9|Lr& znvWeTKN9p#REp;P8_(@grqAdA0Cn%Ti~}lTs=o?^M3D?s6`lX{0b`%Lzo_YAppdCG zu;W+^hqM!O3Yw!A+>@|(c4x9l+a5H`<1?mGsJ%!l$w^)+bQx^o;)3$83|dGTCSlvU zxm)-UNK}HeO=A1TDoZSUd(hKu?`nuhJ5eXYOx0Aw{tWV@q;&_riW_C3%isXzyLwDd z^#1<`q)ova4`O@$X(;;^6@!*2P6bbMwPfDqDZyV8H&}&StyJfaW=H05t<6G{Zbx?1 z-ymP2oQVDW--!s3Sb-c8LplY4*daR#xfQ5xSdeXVvjW;)ND%0L`B}$50`uo1me&S7 zo#cD_rdL|x0V9FZlN+N}(g$FXKf5KHtez-e9(BD9Xip8M}G4aLeiD@6o5HV}{vZl$XRiVic}Y zF^7hre`1z@)0m&Ow36I9yl^IRkV28k)a189in)6w&&-9?ty^*K`D3s=G?UO3lN+Be zD|Ri4vz=~&l|8CD7L~(}(?%Z`m1%EgvV9u%>c1EK88}GZFt<5QeKoLV%D~51XL-1_hh4C4W8xsG4|x; zZjjSzzi=|UH~$Wp76RU4f4i`oA6#J>ufDq6{i`{Ba|AEy)MV+?t-7s54!~r=Ly3FU z02wXOhC~U(0$0GR?Cm~!jfwd%4G(qf@r2_S@m`~8V|^zZeJ7W|6%Cb}xuYnSeww$@KPH7O14fb3b? zQ7uF~6B+RPWaMe2MXRpwH)vqP^iq;F&umnV;oZ7Xs2EJJ(c>Fbt#-&%>93d=kuqOC zz#Fk-9XToDQZwLA@?a~tn~&KgI;~#oq9Q=9Z4O<=zl{e*{bRBXt+mnKB0-l|sk{^U z9Os?N605#KyMCVQH+~Jk{Ca(|^eNz@=KnN-n1Xj5_i+7Iwh!IU|IxWy-$%yKKs$XAJ8B=uvuHyeB$r1zzQM*%~QKqn=nMrppN`4N@ z=XyHgV|K35Y9XL^^b08#qLm6l$oFvGOBbq*IZaG$p49CDHp&$#ni0Hn;}2=!VQ}X{ zS496E)Mo@ezR@2KB9L5M$IUD8(u48$To~e&d|vu|jj?kTKcNV8wrho3c)!aMzJR=` z&~<-b%RmL!OCOP8(qd=So%3A!vm#@M1R0d`QXM}gqn-jNkNw|_Yp9qx`3&il?cYeF z9l07Wc-289>yPi4p8LY?Jcr6&z!$7adRCFACY<60O&+JH@F>j}E+i+Ej8`NW95kSn z2jOuAwdI-q6f7+GVz^7Z?ydo@>D>&XIQ{#N2t2r~W7M;gG8XLSex`T$;~mEwZgTB9 zjp_!RxVHL1<`f5N1;NDC`CHbvQ-1o-I;y8|54`ki>X!@LIBzD++ha*@B}*422F_-_ zJg;t&zgIkidV<4uu;q2oCBG`ti`rY^?{G!2Ar%n}u>5-tzyd$X0Gei!CNwn?#Rq^e z-Mq8$`0BK3tBZ7}-m&Z-Ry4#k(re1tSZSo5vgPsv8CqCXP{9PgUF0hNjm|fR0vE_G zV73Xc_)bllOTh2(a8?EXwVMEYUBvJp1-`d@-0)U)rfKBz?KWCGOq=~?^D|Ia1mrQ6 zs(JVKN#XWW`i~>gG{>06GEt5Bn%`V8*Phvj%?Q@ix&Qf}sS0QbYOpGbe;s#nMDHPN zkE%fsiB3{|xAI2ECqaiAcm#L~K85os&fEW%SetT#c=>G}@d--Ad8h{w*Ec`gSWw`4 zeW{v&{#Rh$AWF3<%?OYag6M*O-f#=}y&@=?Fg<7CwRZw|6mu}m&{OPld2HJ>mW>x* zRFJhLG)Q9!LKnVU{7)*@M1(kSX{}&LH(|Kv^SORNTc`St*+2xy!jNC8=J#;VqI?`D z0PED0ZK{t7cEA;PR{4M0bPK%2yxq|%Ge|AIh};`d(Qt85IJgefo<&*t+mo+3ATV}} zs$SI?(J@_@@Ao@5HVIv^){mX;SOp#AGyi)}0sS--;vIy4+En)TCwHofObnSFAMz^# zchKy9B?4p~BV_MRYt(rvaV_hpOrPXTZzQ4@LgOB;Evj(u3f$pfqLyV7B*-DWF&39Yfj38K_yHTvVtWC#b>iy1VCS=zux0B z@D5_3Q|=B|ep#1PaEtljRc|~n$lN3-b#LWDL2@E5y~gX9ho|;?6yK&{wIQ6pgNWg+ zO|w$hyZ@;%tiWfJN__DV zc9_4_w8wbcP}f`D9|W1RpuLT0dHAdUy<6zu0=d6=HZDnpct1wd+3zVjUQV}_M)&CY z!oJqI@8cfEm+aHF%P^6IR3dCyAzcq9Ut0k3%F7#B@$aI9e8IUHZ+@z1vrE&e$@X%> zxAx}h!r1O58|3;k2LR?kZqc`kVg=3KfKl{r6v=-OCP&Q4wh8Kk4-fws!ya!E!PZpmA9-0TMa8j!awfn3qde8`1)va!Gz|HrwDtYBXkH~Yu z!!5(q$h6k~O#+Pu9&TJlHIbh%f8^}fVl*Aw=f3n`B;M?So#q@O(1s@4Pg?u9BM(M( z#F?74rg(M|-^WH`8#q?x_RT{vC7;@qKMjUP4JQWUz8}d~1J*((`4o})G)@%O8wao- zHr;(IY`Q@LVy)&ZPqRQ~W3udSwK2i|SDi*s`;;xi&4g@jdoxa4BrAWE=k+Y*@v20^ zgm65O#kaJaYFq8&o>rEeOP8I9PdqlfD$+wPJ8#CJ|En#Z!A*iUIxlNe%56?*U%9v7 zaGPXGx7f?Xl--v|<;m=gEd7G8_&XX~wZ9`g*Z>TAy7rwr9kzay<=Oy5k`1vv0y%(d z1txt z4Kz}Sq=KuWq-M>jJ=}2KxAb~8`0v~16M&Fg){c-YLw+LVo_z()E05&fL{Xy-t2D)y z>;xV*>X%I5O5x_*oA2jUnLs};o)C6KslI6*Dc+vYhEBrf(5@ryzh_>C9ubfcO(#(Y zjy_K7gAZRV?W|3hA%_E^r8eX#H>C=*`tI%%n`eFd3D3Tq@jo|l`@6?5j5LXXWbRux zIsiXxB)t>)jH@d=QaNUf(l)6K0rG2^rV|yIL9)^L24x#8x`ZkalHt3Yy(ePvUym-@ zujOP(>hr}+j|Alkjb2J5Bith;Jss|*++(Bz;(Le)RJsIikygDbU6(CWGt0v@RQb&z z%B5}RAqoZGUxgqf24+Q<41M?JGln8v%;9TzcSi!Rrvj-&-%@SBR_yU4B)F)(pIo>| z8QmWB*r*0aYZPq}bkM;aT-j3oJ!>?2xX)a(ez(YE&_W`!{$ey*wI|bGyTUKSh|)U( zv%nNIwa(ivqc%ag!8}6c9UoQwSSr8|Dv>{_OGue41zI_F1wSLC)aaINQ{sui(_kK< zWd6v87d^dX9ihA)ZaI~3EsxsETQ}~JqbUz%NbH@&NuT9oVL*4H)Y|XG`3_GU6ra2G&TC1)VbJ zvGehiI#SzD>*;QeR;U8m}}nsqe*(7g>(yJ|a3ZLZ|E z6od2u+zrV_=DuK|f`7|llhd@vark21+qwG92Zz_4%1^QghZtRzK|uy>3GQ1})+(^| zJm)A3I8A3|_UIpMxCUrWyZzmx3yL4UYUm$**7crKNZnw&!~=9^!9GLp_sl-$`=0e} z7pGg)=1OgP)1}|xiN7UN13H=C{SyT9nL{91S@T=C{?nurs^hu^V`YNj5BSz%0^`oV zuzhO-Xq7Q-hnYCFN{UNy&btOP>pV~wUAacA(nP)2$7Ab|TaWo_vO(oS36%SYw^v8h z#_X6$|7ZmgG(f`%r9FR_k;v_(6FSLh%iW@`Nd^z_sR3u=*&U?C14RGMKANWCG8k;I zSrhsIh-}B%O&tU<=@HZ8tSei6&CIp+S$zsurq+w!17v{pLI&=^Vh9e1>Jp#+n(*Gr zN<*I{EB}Qlg&TqhG(GI}^Tku&56-R?*HrTc*UuBVrMTptpa97BZ3JPP{L;)^`t``Q zELZ5AcAi@*kdq*ja#`w_t1UNVtDK*|;(HDE1^lp;Y|cep@;Vf+4VJ`x zMP&rqgr_E}Mj0iEKmqo`!DBoqs|gq$pK6lzoi>ZVF$Qq?qHK_0AcCic$HY*FK~=+W2d}ZrVJNf4$ir08V$rAJ{AsZ0Oi+|M@`L66zZd; zNT6;sp*HCbHHNqOC`}l4cVRKDJ*7wWFDo|X0exwWD%SAu^~q6yN@%U!ugx99N=2iY{1OF>NkVN({tH9L%TxLe*lCq#-e^f9|8D(K9MfsSF91y!3=wZS zootEWi+%>z1_Q%XSut-@ABKPI$M1`@FaX3kzxa&f<+oK;MuYX`%lgew=rjK8lF1Pv z1Fz*LUGzp$|Dx{;JL@!Ln^nI|)BU}DiZE&N<5k9ZzZAL0k{eTa$75z_^n4!eGI-cE zxw`*STzw7Dy2WCG>ivXp!DzO1-niR&Q7XX;yDNq9F}Rbgv}9S{TE&3tSVN^fbd93s zoXU}H*S2|aM&=Bp!Uiehd6|9W`nGq=E)f8OR!A0HjeN0aI|uNW9JpBAKM#QH1|Hde z0(o8vTD%l|$V=+gud!L)xb%1qM-0aKg;OAaLKYTYK(PoJpQCK)-x>AK$CNyor!DXY zxG6CcUH%AR|_4@6`;0G3=}F_YIiymHv1O zNr9@MW{a285whht;67!aomG+*tkbU-2Dtv}tL+VToQnVr!$t^qdRU7YTv5=ZCeVSv z#gTVq77a`n6Ew}jY8Zr;AZn%-K<~$ahtBO>T&4W6V7}1nB})#v7||&}P5@su>?2^k z%fbQ<5_^W8Bel>_g)6>tWxXX*aIDkTdk%P)wRiL9RvJ1#l3Mi?#y)_)lgRYF#|jow zYJ-u@-_uWEtKZG*HqN-+i-=2F+>^G!Rt&Ih_iWDU^-KROKk$aso=xm#X;2&f?FHb> z*YO-^UB>{r5Qv+$vUWf|zg%#OID93%bW-&q<4Z~>i*~3x6~QsU;DOFdtv;$MCHtbv zV7YM7ZBQi>mRN@96vE6Y3N34`5vzPJDniA$x z47u55oB5o!aM7p$Lv%z2s4K(>y{nDjKmfb9WUqt4rxDo~2IYAs-S_sscyk}#vW?&u zkr5}lqOGx>!E1yyaguR|O}REDLSdkm?HxnO7%S4*_^KlHdtg;y*q^Zmx6Gw1Da%T_ zqo@gXYliNsedgM%NDyPG7KXiYKfJ>Afq@TGp0Y*Jd;rXi=BBi$dgwJm4O!aP868eq zt2=6gYjTZV7F6&nQQ)|ki!Ex!T+VeNhC{1nB^%3#{w`YnUtIV_D+>Q>z zz5zLJ8n~9`d<8QLd!{QJU}Y?O<;L5|IZQr$d>{8ti38?5d{W7%JcdfM1R5ECI3Fv7 zExehN`_%a}?Zmo`bA1Iaoh4laz$ug`b_zwA*+BIG_qM~O;37xM+pIhlfDY=szX2m0 z(f#m_GU8+rYb01tkeN5Zit=uQF?@62q|J7oR?7k7WvS;)9j|?GCJs^S%~W#!3Ef|7 zI6>DeYCKa2t;?|F%wD`21x#621P7q_B#9owRuxlHsXJr^T@iw?c+Nk$vl20=-O!tp zK}fph;2RpXgXjw+#8%qNyc9f$V_O0&mFR{20WY1MddN~W%tXWaXIb;3^(Tb|0**mW z5}++cD32-!_uSsj@j_YFa5vbGh1cb@XW1v9$C){?69sHRmchP!5lVdH8c5kJ<1$ zwjh#UNX2cPzvx$B0{d0OB7ywBCsfGOF1Z4@^IVG@-9=-3(iow;0<^u62#}A*m7AV^ zK&X#F@ouVu+&<-DA}JY$JpJKX_28LRIdV!^e9M&LszWQlcLAwNB)-~ z@~*QVH@EM8i$+85Bhen#{s(9p!LNZWyl_F@T>5!==EnZ2i4V+!ZYw4!0?p7?SSRg- zilPP7My;743ypM$>cYDgp_AzVAvsr9t_MeSyOm2NWt@C{D9|I|pK7X(;ek8? zVETVVmndlt?XJYOvSDMmNxXo)J*M3hOTK8S`?y6t5 z!ZG~Fau~oqehG6S4J$14{PbupXzbT~pD+-*(f0>! zOQH=OjQhP7>3LLWw4b*aL8CK(F|F=(RJrbV7WF{Uf_MOMT8pyJ<@Hd+woAmk(PSHa zcCadwX?r2x_G}seybT?*0cQEZ2x?&+VASwjbFLt*f!Ez7-S)TfqWA~@!iWsjf)ql` z_3s8J$-S3mDvM^$`R6rQ9NAlCmftdC3Qb!F+bJWea5Yp}GHSr88_R$rCt<)JZv2E$ z~&QxB|ZvxRb^YJZ00vZMq=jQ1?(M zZB<8j2c!df-YDD3pex7G8CqFqA9zJThTYSTV%zOdTn;{kHb{!87&7?fk&y|Nt z@9!38x%jhLvD>q|4|D-j-Bvgf zl8CXzBC8yu<~To_78S!)IV|5WGi=5@8K#c3YCHELWB~GJExJVl9iqLK71zKC-(XBE zwmIjM$&C7;NzIZ1*VxXkJXTx0lMa_Xf!qWnb4z4NR?}(0TU{k7!~qdy*DAAHs=(s1 z8sz#YfJd6sw}4uC`Fxxo*Fx6rko2oV`Kz@dgxKvW%WmWSPuOroax@5lV&*J@4Tzmi1~&HPz*3iQ|}yqIDHWgnhNfA|%iu_e1OJt&ylfQQK(K z)(T=ZG8rTUR=52OFQ-yr=?NfeX>}`dYg+9rkz3k%QMmGn7;LovY2CP_PYVi45@+|7 zE6KkU!ud@K=RKf){$b?C>u8u7C@ZO>HJkg?sZ}|Z;eKd##vU%*^48~?Al+DP%w;nm z{p&TtdS4{E0#?4qw;n~HA!8d2GlK}I;g$GSbb6x0lc#d94>ZrnLz^CZom}W)ANJAf zJLj%JSLCE#ON9G}B5nk}%6eNQJ1yrG-^;ksY_yvTLDgNW%o(~62ZRqIb6r1)?UYeX z?*{_Av=n?(gGB(SL=FyeVXmRXF`_Sq?Yr)7*U?AK|hswiOXb`Ob1oYo*|z6&o)Qb!CyKDTuFq`$3p{!$uC(GnY5^q~H6`6lN| zKm>?Ct&Yj>|M`wol`J?X<{N^BOeG9NQzCuz**FVLkOH{ng|WA~g$VOsw}&D*41*T{ z+G@k4j|Nb+DN!uJ*dVWmqPH_Y;u0&~hLK)mi;NMsY4Mk_pjP2Ws< zWvg3%cPQ8>JaJL~I=kiExYQWq;Tf&ThR%xmvQUc;M9L#2^Gj*$F!pz8WOMtex;F2R zfQ*@>CjZ6;8mm2gJD*L-F4|IiF$x3X{-pI*+s?)bAvJcg3>*K_&4T1m=O`# zU&nNs4l9H`6jRl+=B=Fe{iy#0p?yjg`eGf>|ZNCHFI}10t6a}&^-wdYTa^G{{0gu5ZxVT6)RbAW@wsa+1o3`7fxw9O7 z!kTZXO$JS~dmZ%@l^B1`z+~xk5cEtWjQ&U8C=1+d_m1@UH%@%Q!PIoBtcnBX!8o>> z2%xnZ|Fk|l0mMp-c{JJKRTF}p7lhagS$%o`#d9`+$>y+A6p{qdL9f)_b@$ljLwj|Pd zPBC(ByZ=@!0(%~Qy9Q{4$NQD`2{c;IlZ7;#SQL&C`1r~!N9AdYKH81k%5G&lRoZ#` zz8oJ?Qu;7%{nOHwe(ZqHBxW_=o9#w#5Z@7{*St{SFhc;UpJF%z5UZ?!!$+e)QY!{rpQ&0obg=3 zd7+Mw@eu4}jd}YJ@na^Io={4O(p4-f^QC;GoYpI~1yI;j zUe__;&RMli1zow!BHlgofgyyaeK}U&CrE>$%>3_uF;yp~(ujO?l^~H)v8mEusu!YoCaB zGsu*ubWAeRr72{jhLmQom3ZDJ=oqw%SzvWXYrGm~Ft_s5Fj(VukDge4i`dj5BUBfP zM;3x|vv2cu_o1wJtWE`hlDkO?`_ml;$ksnA(a&=9gyCyY7cix`Ub2|aqh3`i8ilD| zq0aHHQ1GERpLariU#`PP8}zPS6|cjr#j2p$3Id-yIyyM{IWL}LWn~=5-uyZ<-7LyIy){{Q#Vh;e!fY?w`D1EZ zAz=5Iye#x4N2lKSxodgv;&3={j(W`Y#00ELmu{18E6L~w-uocypRdcOn<9>G*R#5t z>BIwscu?bCWNCYLM7wd7Q3IP3Ki@crWnFDgpM-0J54Tr~wafB!5_ zezdhvuZ>}c6_cS25j@5eRH6Ylx?kYmtH>zfuI&M?Z!gjoMAh@LhZI)~{ zcPziTOP~)&PW+BEp;_`PHiozW_q@>=RdVpf^LsSK{Be{ddZ1ksaZ}$6zmNJWBGZCg zlkU^OSvR&90X^Lps*hCy%97zsDUamzTX#RTxF0`OoJ|x+Bk*Ea0Z**OjpaQ4cvE-9 zsw)4iQSj_Oa5Hil&2yn{4RKrvqYhq2*c~) z&b7jtnAY3w$4FUhNrMiile$T^*)Xr$oEkVBoCx#}De`nnz1K(Qy2)`UC976_Y@-&i zmF%@W9&FY+X*$g`)pO!*!unplw-fhTNW5js zK>Z6<@Iv0AJ=MjS;Kbf-dJud6Md2niRiN=_fPKk+sb4_FTj7*TdBY)2mMIf)f_nzj z=p-R2^iD4*#2EoSXAW0)X`Xxy{Bpo98C}y{_91}(R+2aA=Xpgr*{1+V5gR=~fpp)P zUGmGQcv`hUT)8M{XXC@g`O!hqhG6CUeL%(b$uc#5NO4&SL7r&~}b=~A+{LsHSVdxd@X|4H0c_Sc#NT+pA{c27?ou;_RJBK zRnnmdZ!@Mmwi$`lWkg?C=+se-4#@tJ&t=xvlQYI_vx|gmz*4p6Ruovba>^cytU`XZ zscT@xDIbvkToX>_;H64yP{~^$R2b?A#IUEz!I|a$CK@bf7~I(VYu>3^d4d0*o{Ii! zmenNAyyWyAa{~|pBp(T|>XJ(aRBiegi)TRUh=T&C!<|6JeGu@^Bs$bi2*{|+e`Y-5 z#pt>x2Zl2w&1uyKLJZTDF+RmA$H0+R(UJe2L<3XIZM_Tz;K?K;ARlo86_yxk zOFdY{kiQTSpp#G11`_qq6}MKjiSjQ!e1^WD)qz^Og%Lh{kLdKX6t?(k|CQM^QU}Zv z>O#`KgCp8xp6X3zt7@M&oi=0(SOlAiEopcvn&|$;s>R*eyarpBdlw8#6;ChX2&Lb8 z9+07sp8rN!WndI0@^=3M-Co8Gd988(ca#38LZaG&70vujve+8J59LDbz+4(aMa~9V zA0V<}nW&s4&C|%q#o_&&WXQW^30^=gvLD!Q^h|`|t1-SufDJ>j!kJnCK4ktep z-T{wcVq}c~3_!Ee5aGtFUQ@5cV?N%wB&ks6Pd7F ztC@4LQ`*pVF*SUYxsZZhxKX_@J;S%ni>2sA%vd zL#r7r#I|)JMycYO@DXAIRA>LzkuC-p1t=4zQ{eCg2tr6{DgcDRP>9g4NYtRxG)h;t zKYY}npao?t4SLb}u}}O9uV}-7WRNZf!n+liM4Rn4|He)%V3z#?Lj+%edQ`;w0{>vY z0fJpFR6~{w7~-0hiHxhR^m4?sK5_bP-860mpu_@NnoPc(J=eV38p1omgJe zn^a#uun`#$kdERi&7udHi+4gDIHZHAF%w3~Xi$K38w_)bm(!w7-dG7feKW;H$Ro0iC zoLcup%`)eUrIueBZse`6e!Mzf#S%P7G%BM~?3rH;7u4Uin-~}f==$uB^Ms?CM?;`p z(d4B@x2-$I*}MUs!qq57`%RH&EY!Gr?*J4bnBs^Zb#e6rN7f*W8(r+y$%rZHihL+9 zK-81qi@; zvXQUdqM{`-5@~?PxJwLHVLDii{4%gPId526cKTabfwU#lY!Kt8U_Yz zQi?g>$YeA{C01VSC+n`=02BNWT-`g5toO=of-zBSehu>a)y6QOA!%fAE@GDPoGm0Oo4vxU`1BJu<7{_(RI z+Er2@FA~mF3I<4$WS5rUsY7<6YVZOe#ZuWU;YjF`^P?SpH=|R`>cEb7qa!e_#G5{K z%B6&V^-We9Na{peF->Np+xM(nJ0Ss0Eo>6>DXkLXMf+h!2I4^t`RWDPQHk8=A1J6; zNzf8odfFa_WXttYz$fT{$Pd0Rc!%f{2I$YH0If1P2}@4rJO0o6DX-u2a@dO~njiy& zCLi6@BvgzBR22Bdxe8uO{cZw^fP;^ba2XvM*+%l~B)Y(aXlW8q_#q4)@xz~k%^a3M zWdeeUV>=B7JUaCo8yq{}vUVa$P)Yl=JmnV6$Uj+%_euYLA2=m-2{1ydDYEJ1Xp9>x z!>t*2hK&ohT?S$*7PyM9NEPln%>kl4#vl3w=4!$A*^}5>8%r;sB=JW&Bq_5$L?q7&5sH)Mmwjm@U_sw4X&DFsWR+baRVGqEklo>Q8?1B^)+Yj00I`_CmKq5Pd_5=UED%R@nsmmEtTdR+K17hGSxZZK#=bLcd(BmC{K zGC(B&R5gczrtVs}WTJGArhXXbbsbNsClX0pd3Hekx>lTzeCfgd-=x!TnXAxhp)q`6 zv@?26Xx1-%A9+7X&D~XUH&iv+rh+^p<(4j0!UT6Sq) z#cpei(pqcNUTX;EKvCIQEd-2ogHEB^1Po!{kPJ=_;$L8Nfr&QRz3a^b-GjS={vDsP z4YFHc;>@`FCttqlA}7k;k~kdJ6xl_wKtQ|a+YNur__up4snC_;wb~Y-Tk}=?kEZ(> zzdTfMTbhZ*^|)nk`g$}(qL|Dg#q{$XuCp3Lcqz|@M3}ls)on$X23%O2AuZ4IoxsT8!J&&7xL&mO?0 zx{@&V$ML^vMgw-xIGP}-WE}&&f1CDkBw)VBiL3xFFfdMpLGO;9{mCh&y946j0xVI99GBHCl1>zas zF=qlgAO#6a68+O$w=a~@+4ZPK18d@Lpiv(B5q&c!KH$h)>d0I~;8A+aZ|b3HPrETL z`zU;DJyFq{?Y>Fq$m~m$$$d8J(4dgAP*<;7HRzT|Kd6Z@VE(OBZ|vUX#pM{^&e{I*xRaT9@5X~*hZ$^0 z?AWUpHE1AiqRky_7Ru2GZ;Pd}#h!+Xhq=>d zBEQ*Bm!A83>GiQa995394otpVpIgGj!X!0hV_wqxN3dJil#$3<`&eFnUmR{9C#CAY z3gnFv>Z%Z~+{>4^?}(C94l$YJ~^3H z>2JFvPu3sPbb&OUP57>8HlAK`Jbw7GugZV2>gP8`e--;Y!}l!qTKn=XDqHIJ>31*Y z9UJ=34>)g4tywd@MyUaV^3b`eKEY-_uhe<&j`b|L6ewOY-Qc6ShA&Ajzer4~6bks; zhwEn7^p%zH4rfUr0W+sSpebmVmwx(FN)Wtw*^rFw+?Zoa0^DaVe|fY$Nz?0acTnCe zLL=uuBrYVm7m@aPP}J8x0#vJ-Aq0=B{=U*5N2jLT^m{v=F|zPsGJLXvQ}>OxvOAxU z_#a|$RSL-7Cby4&5`s{;685$zi9a1MY`b#t0JQiFjsVKS0Az3B_Z6KfCB$J~inyoS zCV94*#m7jSO~tjr-{fC2%k%g?$`6Xrg_YO%9B%Zs+mhYblB!_1Oev0P#i010&!x^b zKPS9kj7KqTw{3q35jFA$C<^XUO^O&`$Kujf)u{_tYg2NHhp69{U0$$0?-n#e8_r2E zPF=owBKS4Xt7~XWnFRX_CSexN)aVd?>%ILmY1NAc_H$vLyrPh#Lvmp`8taW3yMv2- z%f>cb?lCjhn*q`c;1pD0#;LhpOjF++?o8+N@@lst05fk)Ec^QafLpPmZHZ>`YH|l3t*WhbcLSP**zekDLBe5uN7}u%z>!SsTAA~$tVw6_g zJ_?NGTMv#NB~wHvnD=yP9yN8Uka>7vT8!Lt+1#oNTlv|1wG zhkjqb$;c_4;RMwh)>EGi``h<4MXg-?ttc|uvXc$xdgeLaC`aHDB1-hcrwJ9}c?p?P z)fBE&f4gwixoWDY{JWr)FXjB1JQRLTr#}DrCQOZ$vxtUjx!B54&VN-fviN6u&r|F8 zmnb?w#2>#YbvP7J+K0MrDP3&?E1FQGu=7X|`0h`1T5$T_m%Tb$Zm;3*o#9fO_c&1p zwyu%_>8VMbx4R74i9tPIefNbR4KxfVMj<8^s)O+81R={)CVkt)o5KQOh}W&X#w|`o z`uXAz9Lc~{D|FE5*z z+h3TVh*Bbaf4$3|Cu5DB>Jr8r5Q?La@7%HNl+&97Rv&}g9X%REZt&7*hoRKBc4J$l zVc$S`7bnvbQzar;5w(N(4WB~&Q7rJ~BwvL$0X8A07M3x7|XF(eZESkcG!AzZ)Q3yeNYNx_6hPkHh zk@(o?%zH5u9ycS2NFznlqSp~~@0(Vy`^U}_Bs?I3kZsS%zto{fYf*$%b7uI6Zg?cM zpS6VL*Ju5>QcmN!qx+l>=aXIjBpS=hn~GfZTIROZ88}*MK}|DA(X{SOPjMf}#OwQ$ ztIaQ7nH8M3^;uDQ*`yk{hn3}PQwC80JC~@y-T`e?FLf$KOne7Mcpis5U7oWA&suUab_dUsHVj`!39*V zc`skvSaItOh<2be7JBx=2$mQ0Gt<{|<;%VB6@@w1*OIc>#q-}~ccCvR^S;jdK1lZw z^(eEs{rBc}TTopp0f{mY@uoft+jSt~nMO}-cS9wL(vnPiip?J~ogIE&*_%E-Nr*=> z!(TSto*+968!&wrgt1{|JVzY9?V7ju(D#6NE12?b)SJbxDQh2*yuA!jmvd9^9kjq``sSfbv# z=ZJv=FU(Pg`jikk;H)*D?R=?XBjVZ`{yXnGMR%(n_63vw{5pSEY`vQx9mJR%(N@6g z*O_weD0M-uQ4q6xBltOVjWqGC)kUE}c;nt_dEyg2hYPkUg&&Ds{Ho7`n(TpraA<8N zgNFoRRLaD%jTR)r5aF0#Q)|~Fe=P|bunEdWq})()*82txSYD5cHlzL=SSu1Cpgm2o zkI)%~i1+4X## z;=$ZxdD|3G9tViI%*DO!6&YvxPH4sLPn&jRbd6ZoAHe*D4(KP4YmsG97`i?RI=pJ(hOLf?kDb;ImEbu%`B_Cwp z^&xJ-Q^W51JlZCM!}{vxa&e9}d{=?!7=r}eIvq15s!0kf5st9+%rZDRzQc<`a6rPQ z)Sy>E{VA12_KOixSk@y;OF58Jsl zl?6Y68M><}9zeMUsvzM zrdm)jiU*n9|NUU4Zd*!T4Em0O6CZ8d0q*F7U_mB~`YFBf&cpiyZmcTzhg}$QSCwa3 z!zlU(3FCuN>j1yJ`%8g`>H;95J*uELb6Q5g-Srz3ETb<@7E^z9=j zntp(#F#<6ZyXi-Q)goH!3%Ta(|7{}Oa5|;vB73jWwZZUR0sUus&@@LasgEY@Bz(nW zLQi3nGgS1^D|0}VHUwf9bjHq&_?A*1OlOzJ)Q8*lsJAmU1}QrlGWWx_po@hJfrEu@@qWg?pi#n2?X^yD938_u#j1K6# z%1k=G5ag~G=zI>G9TBvaJsJ#Jlks_4ewiS-;gSv1zZ`O{$~2LIM2VCUXx9KPY)qwe zry59oCvh#5nN4)*Z?{LgAe-SxSU8>;TH-J2TWC9t9t2lJ`F#}ZtPis|yEG8p%a^CK z$s6nq5Tya9E*^vQ)$J$GU!xqLZdc_zHTLY(OL{HkPOUW4CbOGb;J-n}vz=t5k^?lI zCZV}1gD`;D@G>b4!6psrFC|5Ogxt6h44kkC&K1DmT%y>U2Jc9mM{*?kU-%PvicAKf zoIrtn^V?Y?IQc3EaRav~mPMhCXOF{{R}#RzLQc>wDZKnf|4#zG>)1-*k;`9&2Qf!; zV2k8xD*n2qi6g`~RZqcDVJYa{JFgvd0{)bwYgdHAokuk1En!&-2w&BAu7=Lo!fXvj zaO7Aiisgn(#{W%vnA`=OS%0M7n0D^;-3;sVUXHMiJ)Y(qWr#n1u;lY-B?v_UdTyr# z92xe=)K#%Rbu5qv`M(d=25)jV9&QCU@nHELA$N`++VGp)c^nn}s4b2NdjRH`wJO9H zjM9a=wadwEZL!rbHEZRg7?X=v>ARdl!boHJZhdkMr+sTbErfP2Li`JQ})n zhoTc#Ztepee#`UmSkx{1(GEq68B7=_$8Zud=?n?zI~xnvtino_leT(K#=+@=NHwbE zlBWvEt8B0$)(kO$T)Sz8FvO=TLkm$090BPkBxi;aL9L*-T>@Y#eyC#u&vb_@WG@U3 zw_2ytDoEqpM9T??E;u5^z`?-UrwY0S2_{OIHsgucJw)>`uN{dL1&)CXL~eB!I!b;$O=gCA2fHJ|OfdTWmQJ$!>FTsC?K zlHWg%m|?gB7VSpFC8ucoe$D3R*lQlR|B<7F!}WmZwe0UNy~>NAI>GX>W2Z~+ijR*s z-qrZoGZXsSKQ!Mjau`^bHzp-~dIhATz+OwFVOkF%RvJE#N?(zsCFxE|uVM9NhGAVr zW6RuPp(PGsKp6B+zLInZ&`AFxjk(kVl?XAwCif=abQ+x(jA#arTI8G3#!b+U;c_B z=oyy^3sNsQfajeZMf)GaQ8lX%*(UEbw#c&gs-nrZYcHZ3;HB35uccAMM6b#%vTN@+ zFR;bX>Beid$Jln(O}w96tw|EE5f^t|ovCqLP1|qO+uG{+3jQI!I4<7*U=?}%>+a^= zWzd+-zu(7X+XGVOxO07f@XT|>wS~cQe77plOpK=S{UXdmuE`NQ`l;UW?^?2B!j92t zA`P6bX%ICs)aVmJE^2Zh8o|d?dU_UUZda%D@#Ji#q1Ma|ODJAB_t7su`F*~YjN6_@J)to)%}p6)b~o?TfH- z9Ga|SB&R+Ksy20kkx2`F<7nAFqEPgW7q+w(%%5>V&i?C_h`%$pYA58*|Ze4-a z!x7Poa`%T6pqGbqYB`?W5I&&ZfRbTD%EzVYt#PQ!$oh^Q2# znA(XyWB+js%^DfgNi|a7aain?+zQ9XJTn;>ek_BE8F&$&f!{-&o7YyO`Wd}ynt#oM z&}kqVwLj}aXCs;`hle$ToYv8X9;hJ8*&7Iz!s=psPd7K=e zDewVq-6to*k&ff6F4+T9Px ziy+UQQIo*Qu#Cu+uY=UN=<_}N7xzoPj$1`hLz1uFx>pr=tZMry{MAt2@LUleuK-bm z{@a41`%q5VCTV;K@`eYowsb}Wkc{kojvsN2KtVtqlFDu|ed zf^O|;C7aSny8D}v&@1=TC7hzXmzvKK?k#WEMFo$tt9c^YzgugW@z*%LXj^nWL;qav z^M<3E0>CSdj>$!2GqiE9$ai(;HTE&mEise9!=4fdtAAM;srg(h(46Yo8xePy50OZZ zK}0x+X+NT*vK`rJ@VL5d=^TgF7k?||qVgl;IlbLM_B_>*fr8#GM{2Ct@66*@Sh7aAM82fWb`Fy*o zLC-qdjoaB+W9sA2yz;MaTJpWM zsW&+W>u$XC@w`>VJ9%V~65_QEx?aoHU_5Zn2Ie_!tZyOp$EnrGXH~}4*S_qFtFpde zrc=(#MM0<^Mc%KNfg-Mb5x&Bu8hxEoCO|tn+f}%XVLi ziZXaB6b>xP1VPLAMRtm&>s8X>RG3ui6honCrHn{*Xi1&p5 zlxbqe|Ef61+*%pYr*7Vxp6R(h6JO^Z&o1G%&W|z#SnD+UC;u4>`hvE@Gp_d zpQ(aGB+ICj<=SoV&WsRHN6F&D5RM0VMQ~syf7>Q2gNB4g#|7V6dWq|fSt!xl$0ZzX z%s4J1=CV*DKtf_r|J=q8qfWsUQ_3J;MR==n(KrQlf*~HaAR+ z8)~U;x;`?I6f1w6*(m=w?veD;1JB-ssF}v0t?_C5a>*2if2;wA@Hirzev+4qvDbFE zt%WhNCpwpQ*l1DnYDz$uhy_{NThY0lurZ#D$8nQMr24%J)Fp0Xm4u$(?e%vMk>Y8q z|68hQeUmA%TXTxXV!v7!@5Qt4X9tATI4M;t0PEC1a+BgiyWk}SLE=9)_>qUar>Jsc=UFF=p*`C($x4L@b2kkaa2z7Kt$zr=KR_c4qq+0HhO)q?;EDUhfZ)eZ7+Hp(O1ZWHcOMa zhSsmw+E$Wj9FsPu&+0dC(Y?V9fI%ffHaDMc2(R4j7xCBk%u(-D$&F2C4-tC6s=$Il zIRNRe=@bQ$m_#wKt`kG*ZSu?S0Z+GAnqvWz_3BUP8(o=A!fV;uiKG9?Ybn}v`6zgM zC@(EGS^4!T>+9nEOlcq~m3UZ&sV1piO`K44y9Q_93x^b`n> zX`cNq)wQ|{Y|sC*tq8$5RAB8-Y14a5F_1pAwqoa1eXm`87ZUF4|4Er6)S;s*@kumZ z-<=$F@1a#;D*R1=GW2HUwBY#AFEFc^hhIBl;)>IvxpisE7&L!MLR|`CvO!uOr$`%= z(aYb`4MiSw29*WoHfd4oB0_3VwehZ5SGN_`Go^uu|l6ty-Qy#nzH1(-c92)vq z1=E(pX|~lPlnxJUbb0ps60se)=cZoM-M2oA)nA0{`cPhhOwKbXJi!Em>O1gY2*rck zAQ_I6;@ooUEjboQuKRS}(NlDu-o~N@+ya;kb_FWzmHCi?wK;`vvKQ3Re=!_CBi)-T zP4OBpfA<=k!X}1yaBIeX0e+1K`|K}+lG>j~)NzwrM<30^H*KFE*EuFnU;1{s={hDx z%>3d(D7nC`aM{GwgUeNoNlJo9}geXBl=LhgLiWLHNp?kWT1@t5fQzEIZBfT_F zj+~tMc}pXW{qtg_xi{oL>fIn(>J5q=DJOPaitZ4-mIh=wgBm<+FsPzMfe$T!hfuO? z8Y8&_3$k+;7?7=plPTjBhxwuz=I)W0V(pdt{|UqwSUD?MG5rG)-2RH+PY<|)u$~kPt#KN-?D^n3&Q4} z>7nbJC%*HlGqPfaOm92c0B@j;L80?gsDR4YQ!AD@vDIrJp4xJfkW!`x{>+O zAA8F9sm_@$99?brsbK;yIn&a?u_N4g9jqCFRW>*E4fv$`QnSBVuotjGo%Y-W&VYfy zIr8%Ssyto@Y?wokY5{h<&du9Xul46j9pS_&hRR!g!r85wKQl+yUsOP$?{{qZD!stgPjQU&d)#{2dGog z)(xIlc#sHK^s5i#9_TPUND0gewYvD^;)mm}i`_s8p|Yd-lWJq$p{0&cGNwaKfg+_4 z3F6?@e+&yF9!u@eyCS+m!gfbsqMIQK5A@pxJ~MkJiy!DhNR!NCOC5p!Eu`mVV1VoV zSJm_H?K6SDbpw32OU6}oHE6G`txaoCu;{it#_17872?5p_c=6Dbw_RjOyva7Woh5c z5ohhPP^R~Eq=%*}j?XSnjwU*k%v8UwE(mFvQZP(4+tIEJ;XuJ$X< zGicu}pK+ux9Zs+iz=x75ZoL3ZRHj&iHa~Jnue0!yp6aQIT+!$5x_sIj(AC6jmt2%7r)|BXe}EnLZoXKvO7Uz0Ta1Q zvtn-3KlG1N+9clsIo(8LA(z^=nvy^f)M|jW?g~ZXLtuXpr6c;2Oda`k^K7yuhAI0v zALBt{g{P3aK+*KMEd=y^Hh15{Wk!_!t_pVcLJvc-7pDR}^J`Op-a5c#-wuA+v7D^I0@gn85+#LlOd*+jX_-8? zl%l|~xr~QLI-n%`Pzx;m|F;Bs`~yTU;+mjQdd8jAF3zae48)&dQh*Rx57;+WKK;-F z#tS)q+-G7iV=c_1w?Jibn}XMmvX;{$4R3dUy_e3)S<+LTo&?u-<>{cg@*h>g34r;S zLjH4ldAgY8_RYf;JMd^Js@;ys-gcjD?U^#-(tYRL&Q?4R05ecni6L}yJEg++T&;~K z#F1zSIKo7o$VJ>*w;}tJ={AEx7j<8uZU)1aS|Gleq8{jfmil*NoN7$auGvb*bJo2a zU_=7|DstHwu9$*k*X4n_W8lGnr2YptMOooVrUBJ=HaAnrg41o6cjyM*zU%-i828lz zT4hIrz?l1zsY~JbDu$ns9(CY2xjawgOc#*)1T^!u5%nX8x{bI_i(`>`4S>UJM)=B;k#l7PjuCoGZrTd z6OaBGaH!LdxYlR}IMpYHby%gaVu>Ond8Kt`{|r`-8eG;By18}5 zMgDmD&s{0f4B$luIK*7xoDTh`El>`C@GV)$LElt7$Ra_Dpq`@PPbK+{>bIPh64yU$$NPR!Z~aBbd(h7vKRUph>RCkQwRf@cq#`g28D!Fc^2J< zm*4!d73e(p7KvRNc>1z0nyirpgE@noBDq+pPtF95b$5*Y5*d&~gU(doc{cETlvr{O zu>75nr`3Y_vWY&2BU%0_eh<7k4VcPs(=8#fYA9`nF-RU8?Kn&Tcm@;ZX$nb^KS3fP zuySpLeW$Zhz@bl_`!#G^kYtWINJh`zDjE8Fe`7#R%7 z3cdMO2=XcyC)Y}l4@5WGw^{F7+&&a*7GE?u-a83EaduJP332h}ewYblm>g?Gz@uNI zO4(3mK^5)Dq;7V8r_NSwYcDp6k$(TK>Oa4F0F2OoRCOUtb+RGlpKjU* zV}^*as(AtXWWbt{{orAs6A@t=x5X-uaW;MuN3Il#^cAzti>*vBgj? z5arWRgaq|LopLtudS7SKB9|@GBGi%IpD_47w-{vt(c`QYGa~K0&7T_*os{oY&Wccyck~uL1XI0645)drk*{xdjZ6=4*9I z4&SwvEOxJy9A(R>&?{nlu{dO&r-De6l!GiTEa~sfzY%-9;2M}j&zTvvgv2SQ90;xi zj(F?=)_4TXsmn8J6wK>+C)0Da{p<+Qz*<6cv_}yBZx~s`^*KTR0#V1y9itIHQESd; zTIi(fK=d&?U?zTnR|f(BX+cU(TSbV@a%X?Gx^x)|b**%Ib}9$vLhx8Oj5#A#=}jtd z3_&Pi|3^}W0ACJtl|Gi(6SkC0DUZpm!^Y^a{8J_e7`($d^OiLM1g6D@;ML}j_YSj4 zqE2r*QC!4;*6A_rI5UTGzk#&jzf^8_+@kneTK4QX8VXy6bY$!;s0y?*SNrxnQ22cCzO%K|k0SS-v2 z$ehqWUGGS=3{QPfAMH~=GdLVRAM?v9C$0M@4dqZtN9Ljp=a2yOF7dZa$AxuGS~Byh zH;{`)eG4|>J}>zbJ+d2z-ye-!jFSPjI~fC1viU&y3?L+%|GWi}%(W%0#6_RJ@4SP_-0B8 zoKZZd2D0urJLCd|E0R~AgIfBf<#tVv&hr>jqQ+=%%kj7MKr8NUB`0{aaix-)Y`ws2 zLqg}SJ$^kppucC|9JAh7c0tc4BAld&vo#(h@Q%-QfjB@U%!Vj@#uw+Yfp~)86#F!D z!RO2#{bS=91%ttrEqMmqfxN>gd&+*}y z`V}yBYn$E%IGbxkM&28r<&cNX!RW^2@!=EY|1s~;B7%Q|rpj3R*Fo@#o z?6KXrEO4EFV-rj`S!OrC!cB3@5^Ht~7dQgycYl36352~0!{_WHOTi$OeAYxvc2l{c zfT!l!EBC4ftBZvuF2>EeP+}jBXxNP4Y0gSRl)}95?`zB(n|8eqsz>U+CfMs9Ndxjt zQCZEIPpBvw07&itQrjD@e$HHA&VKY7Lh5SsiS^TTW$Xs>(nAiNn{gZx^&67g5xqFN)GdSMR1Kv!nDHwo+1_AUS zGL3X7paw-A!SIM>DQP_RA!Bc$j9Tu>^*OgCN4dkx(~y1d8gilZ zW5FXF#+|^Si0uc8APbpM+O$105kuut>hy4tc+Kuc|68FPI|}9~Z2qbBHLwxIMmd~M zm$GNb8BIE~M&p*FGCugq1!PLBwXD5dSXZ=!3+~x-n&8j_10@h`z1Ke&aKP$!Uo7X1 zrI7Z0#yH2FuYm!lMh&bkzd)s8*57~JD~*HXkP+EaLG zhX-$$o!0r)SjaSKW4UHkB*avL?$@twZ`#o3sz<0Lu_&OwylY+RR&x1$6CY{>qR~Yk zvLQ(jIdEsRmRhuhk1V&*jwdX|zUfo45k3PETj(GW)IDkYdY?%Q%B4#yWk){fzTFW~ zxgDLha9Cl;$EEJ|Pm=msRFOFOF#yGPxzy9L?0}%kSXr0F@w?rrY9kRupWdI|3j~?A}JO-~EbeRey@AT=nd-m-A(8QfSTvZJ;(XKyBzR z6nTL-W?~4P*=lxa$1hC3%RHLkFS@7Nmte5br8BspV{Wp#9t;%@iA{+7h-J(%6&a>U z@uXNeGrR zZSOypp)MY2QrUa(omf+wYg9AGsI%@%ikI+dp>l + + Slice 1 + + + + + + + + + + + \ No newline at end of file diff --git a/server/static/assets/images/argo-icon-white.svg b/server/static/assets/images/argo-icon-white.svg new file mode 100644 index 0000000000..41902c62be --- /dev/null +++ b/server/static/assets/images/argo-icon-white.svg @@ -0,0 +1 @@ +cloudevents-icon-white \ No newline at end of file diff --git a/server/static/index.html b/server/static/index.html new file mode 100644 index 0000000000..8923e71fbd --- /dev/null +++ b/server/static/index.html @@ -0,0 +1 @@ +Argo Rollouts

\ No newline at end of file diff --git a/server/static/main.725e5725b4c340fcb136.js b/server/static/main.725e5725b4c340fcb136.js new file mode 100644 index 0000000000..3cf2bd19ec --- /dev/null +++ b/server/static/main.725e5725b4c340fcb136.js @@ -0,0 +1,341 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=236)}([function(e,t,n){"use strict";n.d(t,"a",(function(){return a})); +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ +var r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function a(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function c(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function s(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(o(e,t))return!1;return!0}function l(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function f(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function d(e,t){var n,r=[];for(n=0;n>>0;for(t=0;t0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}a.suppressDeprecationWarnings=!1,a.deprecationHandler=null,H=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)o(e,t)&&n.push(t);return n};var D=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,V=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,N={},A={};function j(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(A[e]=a),t&&(A[t[0]]=function(){return T(a.apply(this,arguments),t[1],t[2])}),n&&(A[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function E(e,t){return e.isValid()?(t=O(t,e.localeData()),N[t]=N[t]||function(e){var t,n,r,a=e.match(D);for(t=0,n=a.length;t=0&&V.test(e);)e=e.replace(V,r),V.lastIndex=0,n-=1;return e}var P={};function R(e,t){var n=e.toLowerCase();P[n]=P[n+"s"]=P[t]=e}function F(e){return"string"==typeof e?P[e]||P[e.toLowerCase()]:void 0}function I(e){var t,n,r={};for(n in e)o(e,n)&&(t=F(n))&&(r[t]=e[n]);return r}var W={};function B(e,t){W[e]=t}function U(e){return e%4==0&&e%100!=0||e%400==0}function q(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function G(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=q(t)),n}function Z(e,t){return function(n){return null!=n?($(this,e,n),a.updateOffset(this,t),this):J(this,e)}}function J(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function $(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&U(e.year())&&1===e.month()&&29===e.date()?(n=G(n),e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),ge(n,e.month()))):e._d["set"+(e._isUTC?"UTC":"")+t](n))}var K,Q=/\d/,X=/\d\d/,ee=/\d{3}/,te=/\d{4}/,ne=/[+-]?\d{6}/,re=/\d\d?/,ae=/\d\d\d\d?/,ce=/\d\d\d\d\d\d?/,ie=/\d{1,3}/,oe=/\d{1,4}/,se=/[+-]?\d{1,6}/,le=/\d+/,ue=/[+-]?\d+/,fe=/Z|[+-]\d\d:?\d\d/gi,de=/Z|[+-]\d\d(?::?\d\d)?/gi,he=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i;function me(e,t,n){K[e]=S(t)?t:function(e,r){return e&&n?n:t}}function pe(e,t){return o(K,e)?K[e](t._strict,t._locale):new RegExp(ve(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function ve(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}K={};var _e,Me={};function ye(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),u(t)&&(r=function(e,n){n[t]=G(e)}),n=0;n68?1900:2e3)};var Ve=Z("FullYear",!0);function Ne(e,t,n,r,a,c,i){var o;return e<100&&e>=0?(o=new Date(e+400,t,n,r,a,c,i),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,c,i),o}function Ae(e){var t,n;return e<100&&e>=0?((n=Array.prototype.slice.call(arguments))[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function je(e,t,n){var r=7+t-n;return-(7+Ae(e,0,r).getUTCDay()-t)%7+r-1}function Ee(e,t,n,r,a){var c,i,o=1+7*(t-1)+(7+n-r)%7+je(e,r,a);return o<=0?i=De(c=e-1)+o:o>De(e)?(c=e+1,i=o-De(e)):(c=e,i=o),{year:c,dayOfYear:i}}function Oe(e,t,n){var r,a,c=je(e.year(),t,n),i=Math.floor((e.dayOfYear()-c-1)/7)+1;return i<1?r=i+Pe(a=e.year()-1,t,n):i>Pe(e.year(),t,n)?(r=i-Pe(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function Pe(e,t,n){var r=je(e,t,n),a=je(e+1,t,n);return(De(e)-r+a)/7}function Re(e,t){return e.slice(t,7).concat(e.slice(0,t))}j("w",["ww",2],"wo","week"),j("W",["WW",2],"Wo","isoWeek"),R("week","w"),R("isoWeek","W"),B("week",5),B("isoWeek",5),me("w",re),me("ww",re,X),me("W",re),me("WW",re,X),be(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=G(e)})),j("d",0,"do","day"),j("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),j("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),j("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),j("e",0,0,"weekday"),j("E",0,0,"isoWeekday"),R("day","d"),R("weekday","e"),R("isoWeekday","E"),B("day",11),B("weekday",11),B("isoWeekday",11),me("d",re),me("e",re),me("E",re),me("dd",(function(e,t){return t.weekdaysMinRegex(e)})),me("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),me("dddd",(function(e,t){return t.weekdaysRegex(e)})),be(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:p(n).invalidWeekday=e})),be(["d","e","E"],(function(e,t,n,r){t[r]=G(e)}));var Fe="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ie="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),We="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Be=he,Ue=he,qe=he;function Ge(e,t,n){var r,a,c,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)c=m([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(c,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(c,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(c,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._shortWeekdaysParse,i))||-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=_e.call(this._shortWeekdaysParse,i))||-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._minWeekdaysParse,i))?a:null:-1!==(a=_e.call(this._minWeekdaysParse,i))||-1!==(a=_e.call(this._weekdaysParse,i))||-1!==(a=_e.call(this._shortWeekdaysParse,i))?a:null}function Ze(){function e(e,t){return t.length-e.length}var t,n,r,a,c,i=[],o=[],s=[],l=[];for(t=0;t<7;t++)n=m([2e3,1]).day(t),r=ve(this.weekdaysMin(n,"")),a=ve(this.weekdaysShort(n,"")),c=ve(this.weekdays(n,"")),i.push(r),o.push(a),s.push(c),l.push(r),l.push(a),l.push(c);i.sort(e),o.sort(e),s.sort(e),l.sort(e),this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Je(){return this.hours()%12||12}function $e(e,t){j(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Ke(e,t){return t._meridiemParse}j("H",["HH",2],0,"hour"),j("h",["hh",2],0,Je),j("k",["kk",2],0,(function(){return this.hours()||24})),j("hmm",0,0,(function(){return""+Je.apply(this)+T(this.minutes(),2)})),j("hmmss",0,0,(function(){return""+Je.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)})),j("Hmm",0,0,(function(){return""+this.hours()+T(this.minutes(),2)})),j("Hmmss",0,0,(function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)})),$e("a",!0),$e("A",!1),R("hour","h"),B("hour",13),me("a",Ke),me("A",Ke),me("H",re),me("h",re),me("k",re),me("HH",re,X),me("hh",re,X),me("kk",re,X),me("hmm",ae),me("hmmss",ce),me("Hmm",ae),me("Hmmss",ce),ye(["H","HH"],3),ye(["k","kk"],(function(e,t,n){var r=G(e);t[3]=24===r?0:r})),ye(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),ye(["h","hh"],(function(e,t,n){t[3]=G(e),p(n).bigHour=!0})),ye("hmm",(function(e,t,n){var r=e.length-2;t[3]=G(e.substr(0,r)),t[4]=G(e.substr(r)),p(n).bigHour=!0})),ye("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=G(e.substr(0,r)),t[4]=G(e.substr(r,2)),t[5]=G(e.substr(a)),p(n).bigHour=!0})),ye("Hmm",(function(e,t,n){var r=e.length-2;t[3]=G(e.substr(0,r)),t[4]=G(e.substr(r))})),ye("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=G(e.substr(0,r)),t[4]=G(e.substr(r,2)),t[5]=G(e.substr(a))}));var Qe,Xe=Z("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:ze,monthsShort:we,week:{dow:0,doy:6},weekdays:Fe,weekdaysMin:We,weekdaysShort:Ie,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(r=ct(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&rt(a,n)>=t-1)break;t--}c++}return Qe}(e)}function lt(e){var t,n=e._a;return n&&-2===p(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>ge(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,p(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),p(e)._overflowWeeks&&-1===t&&(t=7),p(e)._overflowWeekday&&-1===t&&(t=8),p(e).overflow=t),e}var ut=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ft=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,dt=/Z|[+-]\d\d(?::?\d\d)?/,ht=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],mt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((-?\d+)/i,vt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,_t={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Mt(e){var t,n,r,a,c,i,o=e._i,s=ut.exec(o)||ft.exec(o);if(s){for(p(e).iso=!0,t=0,n=ht.length;t7)&&(s=!0)):(c=e._locale._week.dow,i=e._locale._week.doy,l=Oe(kt(),c,i),n=Lt(t.gg,e._a[0],l.year),r=Lt(t.w,l.week),null!=t.d?((a=t.d)<0||a>6)&&(s=!0):null!=t.e?(a=t.e+c,(t.e<0||t.e>6)&&(s=!0)):a=c),r<1||r>Pe(n,c,i)?p(e)._overflowWeeks=!0:null!=s?p(e)._overflowWeekday=!0:(o=Ee(n,r,a,c,i),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(i=Lt(e._a[0],r[0]),(e._dayOfYear>De(i)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),n=Ae(i,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ae:Ne).apply(null,o),c=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==c&&(p(e).weekdayMismatch=!0)}}function zt(e){if(e._f!==a.ISO_8601)if(e._f!==a.RFC_2822){e._a=[],p(e).empty=!0;var t,n,r,c,i,o,s=""+e._i,l=s.length,u=0;for(r=O(e._f,e._locale).match(D)||[],t=0;t0&&p(e).unusedInput.push(i),s=s.slice(s.indexOf(n)+n.length),u+=n.length),A[c]?(n?p(e).empty=!1:p(e).unusedTokens.push(c),Le(c,n,e)):e._strict&&!n&&p(e).unusedTokens.push(c);p(e).charsLeftOver=l-u,s.length>0&&p(e).unusedInput.push(s),e._a[3]<=12&&!0===p(e).bigHour&&e._a[3]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),null!==(o=p(e).era)&&(e._a[0]=e._locale.erasConvertYear(o,e._a[0])),gt(e),lt(e)}else bt(e);else Mt(e)}function wt(e){var t=e._i,n=e._f;return e._locale=e._locale||st(e._l),null===t||void 0===n&&""===t?_({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),g(t)?new L(lt(t)):(f(t)?e._d=t:c(n)?function(e){var t,n,r,a,c,i,o=!1;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:_()}));function Ct(e,t){var n,r;if(1===t.length&&c(t[0])&&(t=t[0]),!t.length)return kt();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function an(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function cn(e,t){return t.erasAbbrRegex(e)}function on(){var e,t,n=[],r=[],a=[],c=[],i=this.eras();for(e=0,t=i.length;e(c=Pe(e,r,a))&&(t=c),un.call(this,e,t,n,r,a))}function un(e,t,n,r,a){var c=Ee(e,t,n,r,a),i=Ae(c.year,0,c.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}j("N",0,0,"eraAbbr"),j("NN",0,0,"eraAbbr"),j("NNN",0,0,"eraAbbr"),j("NNNN",0,0,"eraName"),j("NNNNN",0,0,"eraNarrow"),j("y",["y",1],"yo","eraYear"),j("y",["yy",2],0,"eraYear"),j("y",["yyy",3],0,"eraYear"),j("y",["yyyy",4],0,"eraYear"),me("N",cn),me("NN",cn),me("NNN",cn),me("NNNN",(function(e,t){return t.erasNameRegex(e)})),me("NNNNN",(function(e,t){return t.erasNarrowRegex(e)})),ye(["N","NN","NNN","NNNN","NNNNN"],(function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?p(n).era=a:p(n).invalidEra=e})),me("y",le),me("yy",le),me("yyy",le),me("yyyy",le),me("yo",(function(e,t){return t._eraYearOrdinalRegex||le})),ye(["y","yy","yyy","yyyy"],0),ye(["yo"],(function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[0]=n._locale.eraYearOrdinalParse(e,a):t[0]=parseInt(e,10)})),j(0,["gg",2],0,(function(){return this.weekYear()%100})),j(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),sn("gggg","weekYear"),sn("ggggg","weekYear"),sn("GGGG","isoWeekYear"),sn("GGGGG","isoWeekYear"),R("weekYear","gg"),R("isoWeekYear","GG"),B("weekYear",1),B("isoWeekYear",1),me("G",ue),me("g",ue),me("GG",re,X),me("gg",re,X),me("GGGG",oe,te),me("gggg",oe,te),me("GGGGG",se,ne),me("ggggg",se,ne),be(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=G(e)})),be(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),j("Q",0,"Qo","quarter"),R("quarter","Q"),B("quarter",7),me("Q",Q),ye("Q",(function(e,t){t[1]=3*(G(e)-1)})),j("D",["DD",2],"Do","date"),R("date","D"),B("date",9),me("D",re),me("DD",re,X),me("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),ye(["D","DD"],2),ye("Do",(function(e,t){t[2]=G(e.match(re)[0])}));var fn=Z("Date",!0);j("DDD",["DDDD",3],"DDDo","dayOfYear"),R("dayOfYear","DDD"),B("dayOfYear",4),me("DDD",ie),me("DDDD",ee),ye(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=G(e)})),j("m",["mm",2],0,"minute"),R("minute","m"),B("minute",14),me("m",re),me("mm",re,X),ye(["m","mm"],4);var dn=Z("Minutes",!1);j("s",["ss",2],0,"second"),R("second","s"),B("second",15),me("s",re),me("ss",re,X),ye(["s","ss"],5);var hn,mn,pn=Z("Seconds",!1);for(j("S",0,0,(function(){return~~(this.millisecond()/100)})),j(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),j(0,["SSS",3],0,"millisecond"),j(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),j(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),j(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),j(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),j(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),j(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),R("millisecond","ms"),B("millisecond",16),me("S",ie,Q),me("SS",ie,X),me("SSS",ie,ee),hn="SSSS";hn.length<=9;hn+="S")me(hn,le);function vn(e,t){t[6]=G(1e3*("0."+e))}for(hn="S";hn.length<=9;hn+="S")ye(hn,vn);mn=Z("Milliseconds",!1),j("z",0,0,"zoneAbbr"),j("zz",0,0,"zoneName");var _n=L.prototype;function Mn(e){return e}_n.add=Gt,_n.calendar=function(e,t){1===arguments.length&&(arguments[0]?$t(arguments[0])?(e=arguments[0],t=void 0):Kt(arguments[0])&&(t=arguments[0],e=void 0):(e=void 0,t=void 0));var n=e||kt(),r=Et(n,this).startOf("day"),c=a.calendarFormat(this,r)||"sameElse",i=t&&(S(t[c])?t[c].call(this,n):t[c]);return this.format(i||this.localeData().calendar(c,this,kt(n)))},_n.clone=function(){return new L(this)},_n.diff=function(e,t,n){var r,a,c;if(!this.isValid())return NaN;if(!(r=Et(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=F(t)){case"year":c=Qt(this,r)/12;break;case"month":c=Qt(this,r);break;case"quarter":c=Qt(this,r)/3;break;case"second":c=(this-r)/1e3;break;case"minute":c=(this-r)/6e4;break;case"hour":c=(this-r)/36e5;break;case"day":c=(this-r-a)/864e5;break;case"week":c=(this-r-a)/6048e5;break;default:c=this-r}return n?c:q(c)},_n.endOf=function(e){var t,n;if(void 0===(e=F(e))||"millisecond"===e||!this.isValid())return this;switch(n=this._isUTC?an:rn,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-nn(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-nn(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-nn(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},_n.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=E(this,e);return this.localeData().postformat(t)},_n.from=function(e,t){return this.isValid()&&(g(e)&&e.isValid()||kt(e).isValid())?It({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.fromNow=function(e){return this.from(kt(),e)},_n.to=function(e,t){return this.isValid()&&(g(e)&&e.isValid()||kt(e).isValid())?It({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},_n.toNow=function(e){return this.to(kt(),e)},_n.get=function(e){return S(this[e=F(e)])?this[e]():this},_n.invalidAt=function(){return p(this).overflow},_n.isAfter=function(e,t){var n=g(e)?e:kt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=F(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?E(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):S(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",E(n,"Z")):E(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},_n.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e,t,n,r="moment",a="";return this.isLocal()||(r=0===this.utcOffset()?"moment.utc":"moment.parseZone",a="Z"),e="["+r+'("]',t=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=a+'[")]',this.format(e+t+"-MM-DD[T]HH:mm:ss.SSS"+n)},"undefined"!=typeof Symbol&&null!=Symbol.for&&(_n[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),_n.toJSON=function(){return this.isValid()?this.toISOString():null},_n.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},_n.unix=function(){return Math.floor(this.valueOf()/1e3)},_n.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},_n.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},_n.eraName=function(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},_n.isLocal=function(){return!!this.isValid()&&!this._isUTC},_n.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},_n.isUtc=Pt,_n.isUTC=Pt,_n.zoneAbbr=function(){return this._isUTC?"UTC":""},_n.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},_n.dates=w("dates accessor is deprecated. Use date instead.",fn),_n.months=w("months accessor is deprecated. Use month instead",Ye),_n.years=w("years accessor is deprecated. Use year instead",Ve),_n.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),_n.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e,t={};return b(t,this),(t=wt(t))._a?(e=t._isUTC?m(t._a):kt(t._a),this._isDSTShifted=this.isValid()&&function(e,t,n){var r,a=Math.min(e.length,t.length),c=Math.abs(e.length-t.length),i=0;for(r=0;r0):this._isDSTShifted=!1,this._isDSTShifted}));var yn=Y.prototype;function bn(e,t,n,r){var a=st(),c=m().set(r,t);return a[n](c,e)}function Ln(e,t,n){if(u(e)&&(t=e,e=void 0),e=e||"",null!=t)return bn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=bn(e,r,n,"month");return a}function gn(e,t,n,r){"boolean"==typeof e?(u(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,u(t)&&(n=t,t=void 0),t=t||"");var a,c=st(),i=e?c._week.dow:0,o=[];if(null!=n)return bn(t,(n+i)%7,r,"day");for(a=0;a<7;a++)o[a]=bn(t,(a+i)%7,r,"day");return o}yn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return S(r)?r.call(t,n):r},yn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(D).map((function(e){return"MMMM"===e||"MM"===e||"DD"===e||"dddd"===e?e.slice(1):e})).join(""),this._longDateFormat[e])},yn.invalidDate=function(){return this._invalidDate},yn.ordinal=function(e){return this._ordinal.replace("%d",e)},yn.preparse=Mn,yn.postformat=Mn,yn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return S(a)?a(e,t,n,r):a.replace(/%d/i,e)},yn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return S(n)?n(t):n.replace(/%s/i,t)},yn.set=function(e){var t,n;for(n in e)o(e,n)&&(S(t=e[n])?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},yn.eras=function(e,t){var n,r,c,i=this._eras||st("en")._eras;for(n=0,r=i.length;n=0)return s[r]},yn.erasConvertYear=function(e,t){var n=e.since<=e.until?1:-1;return void 0===t?a(e.since).year():a(e.since).year()+(t-e.offset)*n},yn.erasAbbrRegex=function(e){return o(this,"_erasAbbrRegex")||on.call(this),e?this._erasAbbrRegex:this._erasRegex},yn.erasNameRegex=function(e){return o(this,"_erasNameRegex")||on.call(this),e?this._erasNameRegex:this._erasRegex},yn.erasNarrowRegex=function(e){return o(this,"_erasNarrowRegex")||on.call(this),e?this._erasNarrowRegex:this._erasRegex},yn.months=function(e,t){return e?c(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||He).test(t)?"format":"standalone"][e.month()]:c(this._months)?this._months:this._months.standalone},yn.monthsShort=function(e,t){return e?c(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[He.test(t)?"format":"standalone"][e.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},yn.monthsParse=function(e,t,n){var r,a,c;if(this._monthsParseExact)return Se.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=m([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(c="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(c.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},yn.monthsRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||Te.call(this),e?this._monthsStrictRegex:this._monthsRegex):(o(this,"_monthsRegex")||(this._monthsRegex=xe),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},yn.monthsShortRegex=function(e){return this._monthsParseExact?(o(this,"_monthsRegex")||Te.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(o(this,"_monthsShortRegex")||(this._monthsShortRegex=ke),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},yn.week=function(e){return Oe(e,this._week.dow,this._week.doy).week},yn.firstDayOfYear=function(){return this._week.doy},yn.firstDayOfWeek=function(){return this._week.dow},yn.weekdays=function(e,t){var n=c(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Re(n,this._week.dow):e?n[e.day()]:n},yn.weekdaysMin=function(e){return!0===e?Re(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},yn.weekdaysShort=function(e){return!0===e?Re(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},yn.weekdaysParse=function(e,t,n){var r,a,c;if(this._weekdaysParseExact)return Ge.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=m([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(c="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(c.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},yn.weekdaysRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(o(this,"_weekdaysRegex")||(this._weekdaysRegex=Be),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},yn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(o(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ue),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},yn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(o(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(o(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qe),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},yn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},yn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},it("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===G(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=w("moment.lang is deprecated. Use moment.locale instead.",it),a.langData=w("moment.langData is deprecated. Use moment.localeData instead.",st);var zn=Math.abs;function wn(e,t,n,r){var a=It(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function Hn(e){return e<0?Math.floor(e):Math.ceil(e)}function kn(e){return 4800*e/146097}function xn(e){return 146097*e/4800}function Sn(e){return function(){return this.as(e)}}var Cn=Sn("ms"),Yn=Sn("s"),Tn=Sn("m"),Dn=Sn("h"),Vn=Sn("d"),Nn=Sn("w"),An=Sn("M"),jn=Sn("Q"),En=Sn("y");function On(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pn=On("milliseconds"),Rn=On("seconds"),Fn=On("minutes"),In=On("hours"),Wn=On("days"),Bn=On("months"),Un=On("years"),qn=Math.round,Gn={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Zn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Jn=Math.abs;function $n(e){return(e>0)-(e<0)||+e}function Kn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n,r,a,c,i,o,s=Jn(this._milliseconds)/1e3,l=Jn(this._days),u=Jn(this._months),f=this.asSeconds();return f?(e=q(s/60),t=q(e/60),s%=60,e%=60,n=q(u/12),u%=12,r=s?s.toFixed(3).replace(/\.?0+$/,""):"",a=f<0?"-":"",c=$n(this._months)!==$n(f)?"-":"",i=$n(this._days)!==$n(f)?"-":"",o=$n(this._milliseconds)!==$n(f)?"-":"",a+"P"+(n?c+n+"Y":"")+(u?c+u+"M":"")+(l?i+l+"D":"")+(t||e||s?"T":"")+(t?o+t+"H":"")+(e?o+e+"M":"")+(s?o+r+"S":"")):"P0D"}var Qn=Tt.prototype;return Qn.isValid=function(){return this._isValid},Qn.abs=function(){var e=this._data;return this._milliseconds=zn(this._milliseconds),this._days=zn(this._days),this._months=zn(this._months),e.milliseconds=zn(e.milliseconds),e.seconds=zn(e.seconds),e.minutes=zn(e.minutes),e.hours=zn(e.hours),e.months=zn(e.months),e.years=zn(e.years),this},Qn.add=function(e,t){return wn(this,e,t,1)},Qn.subtract=function(e,t){return wn(this,e,t,-1)},Qn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=F(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+kn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(xn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Qn.asMilliseconds=Cn,Qn.asSeconds=Yn,Qn.asMinutes=Tn,Qn.asHours=Dn,Qn.asDays=Vn,Qn.asWeeks=Nn,Qn.asMonths=An,Qn.asQuarters=jn,Qn.asYears=En,Qn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*G(this._months/12):NaN},Qn._bubble=function(){var e,t,n,r,a,c=this._milliseconds,i=this._days,o=this._months,s=this._data;return c>=0&&i>=0&&o>=0||c<=0&&i<=0&&o<=0||(c+=864e5*Hn(xn(o)+i),i=0,o=0),s.milliseconds=c%1e3,e=q(c/1e3),s.seconds=e%60,t=q(e/60),s.minutes=t%60,n=q(t/60),s.hours=n%24,i+=q(n/24),a=q(kn(i)),o+=a,i-=Hn(xn(a)),r=q(o/12),o%=12,s.days=i,s.months=o,s.years=r,this},Qn.clone=function(){return It(this)},Qn.get=function(e){return e=F(e),this.isValid()?this[e+"s"]():NaN},Qn.milliseconds=Pn,Qn.seconds=Rn,Qn.minutes=Fn,Qn.hours=In,Qn.days=Wn,Qn.weeks=function(){return q(this.days()/7)},Qn.months=Bn,Qn.years=Un,Qn.humanize=function(e,t){if(!this.isValid())return this.localeData().invalidDate();var n,r,a=!1,c=Gn;return"object"==typeof e&&(t=e,e=!1),"boolean"==typeof e&&(a=e),"object"==typeof t&&(c=Object.assign({},Gn,t),null!=t.s&&null==t.ss&&(c.ss=t.s-1)),n=this.localeData(),r=function(e,t,n,r){var a=It(e).abs(),c=qn(a.as("s")),i=qn(a.as("m")),o=qn(a.as("h")),s=qn(a.as("d")),l=qn(a.as("M")),u=qn(a.as("w")),f=qn(a.as("y")),d=c<=n.ss&&["s",c]||c0,d[4]=r,Zn.apply(null,d)}(this,!a,c,n),a&&(r=n.pastFuture(+this,r)),n.postformat(r)},Qn.toISOString=Kn,Qn.toString=Kn,Qn.toJSON=Kn,Qn.locale=Xt,Qn.localeData=tn,Qn.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Kn),Qn.lang=en,j("X",0,0,"unix"),j("x",0,0,"valueOf"),me("x",ue),me("X",/[+-]?\d+(\.\d{1,3})?/),ye("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e))})),ye("x",(function(e,t,n){n._d=new Date(G(e))})), +//! moment.js +a.version="2.29.1",t=kt,a.fn=_n,a.min=function(){var e=[].slice.call(arguments,0);return Ct("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return Ct("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=m,a.unix=function(e){return kt(1e3*e)},a.months=function(e,t){return Ln(e,t,"months")},a.isDate=f,a.locale=it,a.invalid=_,a.duration=It,a.isMoment=g,a.weekdays=function(e,t,n){return gn(e,t,n,"weekdays")},a.parseZone=function(){return kt.apply(null,arguments).parseZone()},a.localeData=st,a.isDuration=Dt,a.monthsShort=function(e,t){return Ln(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return gn(e,t,n,"weekdaysMin")},a.defineLocale=ot,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=tt[e]&&null!=tt[e].parentLocale?tt[e].set(C(tt[e]._config,t)):(null!=(r=ct(e))&&(a=r._config),t=C(a,t),null==r&&(t.abbr=e),(n=new Y(t)).parentLocale=tt[e],tt[e]=n),it(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?(tt[e]=tt[e].parentLocale,e===it()&&it(e)):null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return H(tt)},a.weekdaysShort=function(e,t,n){return gn(e,t,n,"weekdaysShort")},a.normalizeUnits=F,a.relativeTimeRounding=function(e){return void 0===e?qn:"function"==typeof e&&(qn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Gn[e]&&(void 0===t?Gn[e]:(Gn[e]=t,"s"===e&&(Gn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=_n,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(93)(e))},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(0),a=n(31),c=n(61),i=n(7),o=n(48),s=n(17),l=n(43),u=function(e){function t(n,r,a){var i=e.call(this)||this;switch(i.syncErrorValue=null,i.syncErrorThrown=!1,i.syncErrorThrowable=!1,i.isStopped=!1,arguments.length){case 0:i.destination=c.a;break;case 1:if(!n){i.destination=c.a;break}if("object"==typeof n){n instanceof t?(i.syncErrorThrowable=n.syncErrorThrowable,i.destination=n,n.add(i)):(i.syncErrorThrowable=!0,i.destination=new f(i,n));break}default:i.syncErrorThrowable=!0,i.destination=new f(i,n,r,a)}return i}return r.a(t,e),t.prototype[o.a]=function(){return this},t.create=function(e,n,r){var a=new t(e,n,r);return a.syncErrorThrowable=!1,a},t.prototype.next=function(e){this.isStopped||this._next(e)},t.prototype.error=function(e){this.isStopped||(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped||(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this))},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){this.destination.error(e),this.unsubscribe()},t.prototype._complete=function(){this.destination.complete(),this.unsubscribe()},t.prototype._unsubscribeAndRecycle=function(){var e=this._parentOrParents;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this},t}(i.a),f=function(e){function t(t,n,r,i){var o,s=e.call(this)||this;s._parentSubscriber=t;var l=s;return Object(a.a)(n)?o=n:n&&(o=n.next,r=n.error,i=n.complete,n!==c.a&&(l=Object.create(n),Object(a.a)(l.unsubscribe)&&s.add(l.unsubscribe.bind(l)),l.unsubscribe=s.unsubscribe.bind(s))),s._context=l,s._next=o,s._error=r,s._complete=i,s}return r.a(t,e),t.prototype.next=function(e){if(!this.isStopped&&this._next){var t=this._parentSubscriber;s.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}},t.prototype.error=function(e){if(!this.isStopped){var t=this._parentSubscriber,n=s.a.useDeprecatedSynchronousErrorHandling;if(this._error)n&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)n?(t.syncErrorValue=e,t.syncErrorThrown=!0):Object(l.a)(e),this.unsubscribe();else{if(this.unsubscribe(),n)throw e;Object(l.a)(e)}}},t.prototype.complete=function(){var e=this;if(!this.isStopped){var t=this._parentSubscriber;if(this._complete){var n=function(){return e._complete.call(e._context)};s.a.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?(this.__tryOrSetError(t,n),this.unsubscribe()):(this.__tryOrUnsub(n),this.unsubscribe())}else this.unsubscribe()}},t.prototype.__tryOrUnsub=function(e,t){try{e.call(this._context,t)}catch(e){if(this.unsubscribe(),s.a.useDeprecatedSynchronousErrorHandling)throw e;Object(l.a)(e)}},t.prototype.__tryOrSetError=function(e,t,n){if(!s.a.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,n)}catch(t){return s.a.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=t,e.syncErrorThrown=!0,!0):(Object(l.a)(t),!0)}return!1},t.prototype._unsubscribe=function(){var e=this._parentSubscriber;this._context=null,this._parentSubscriber=null,e.unsubscribe()},t}(u)},function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return l}));var r=n(0),a=n(2),c=n(5),i=n(42),o=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,n}return r.a(t,e),t.prototype._next=function(e){this.parent.notifyNext(e)},t.prototype._error=function(e){this.parent.notifyError(e),this.unsubscribe()},t.prototype._complete=function(){this.parent.notifyComplete(),this.unsubscribe()},t}(a.a),s=(a.a,function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.a(t,e),t.prototype.notifyNext=function(e){this.destination.next(e)},t.prototype.notifyError=function(e){this.destination.error(e)},t.prototype.notifyComplete=function(){this.destination.complete()},t}(a.a));a.a;function l(e,t){if(!t.closed)return e instanceof c.a?e.subscribe(t):Object(i.a)(e)(t)}},function(e,t,n){"use strict";e.exports=n(237)},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(59),a=n(2),c=n(48),i=n(61);var o=n(28),s=n(46),l=n(17),u=function(){function e(e){this._isScalar=!1,e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this.operator,o=function(e,t,n){if(e){if(e instanceof a.a)return e;if(e[c.a])return e[c.a]()}return e||t||n?new a.a(e,t,n):new a.a(i.a)}(e,t,n);if(r?o.add(r.call(o,this.source)):o.add(this.source||l.a.useDeprecatedSynchronousErrorHandling&&!o.syncErrorThrowable?this._subscribe(o):this._trySubscribe(o)),l.a.useDeprecatedSynchronousErrorHandling&&o.syncErrorThrowable&&(o.syncErrorThrowable=!1,o.syncErrorThrown))throw o.syncErrorValue;return o},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){l.a.useDeprecatedSynchronousErrorHandling&&(e.syncErrorThrown=!0,e.syncErrorValue=t),Object(r.a)(e)?e.error(t):console.warn(t)}},e.prototype.forEach=function(e,t){var n=this;return new(t=f(t))((function(t,r){var a;a=n.subscribe((function(t){try{e(t)}catch(e){r(e),a&&a.unsubscribe()}}),r,t)}))},e.prototype._subscribe=function(e){var t=this.source;return t&&t.subscribe(e)},e.prototype[o.a]=function(){return this},e.prototype.pipe=function(){for(var e=[],t=0;t=0;d--){var h=i[d];"."===h?c(i,d):".."===h?(c(i,d),f++):f&&(c(i,d),f--)}if(!l)for(;f--;f)i.unshift("..");!l||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};function o(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var s=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=o(t),a=o(n);return r!==t||a!==n?e(r,a):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},l=n(24);function u(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function d(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function h(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function m(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var c=t.indexOf("?");return-1!==c&&(n=t.substr(c),t=t.substr(0,c)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function v(e,t,n,a){var c;"string"==typeof e?(c=m(e)).state=t:(void 0===(c=Object(r.a)({},e)).pathname&&(c.pathname=""),c.search?"?"!==c.search.charAt(0)&&(c.search="?"+c.search):c.search="",c.hash?"#"!==c.hash.charAt(0)&&(c.hash="#"+c.hash):c.hash="",void 0!==t&&void 0===c.state&&(c.state=t));try{c.pathname=decodeURI(c.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+c.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(c.key=n),a?c.pathname?"/"!==c.pathname.charAt(0)&&(c.pathname=i(c.pathname,a.pathname)):c.pathname=a.pathname:c.pathname||(c.pathname="/"),c}function _(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&s(e.state,t.state)}function M(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var c="function"==typeof e?e(t,n):e;"string"==typeof c?"function"==typeof r?r(c,a):a(!0):a(!1!==c)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=v(e,t,d(),b.location);u.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(b.entries[b.index]=r,f({action:"REPLACE",location:r}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=b.index+e;return t>=0&&t{const t=a.useTheme();let n=e.className;if(t===a.Theme.Dark&&!e.disabled){const e=(n||"").split(" ")||[],t=[];for(const n of e)n.endsWith("--dark")||t.push(n+"--dark");n=`${e.join(" ")} ${t.join(" ")}`}return r.createElement("div",Object.assign({},e,{className:n}),e.children)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return e.prototype=Object.create(Error.prototype),e}()},function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return u}));var r=n(0),a=n(11),c=n(14),i=n(3);function o(e,t,n){return void 0===n&&(n=Number.POSITIVE_INFINITY),"function"==typeof t?function(r){return r.pipe(o((function(n,r){return Object(c.a)(e(n,r)).pipe(Object(a.a)((function(e,a){return t(n,e,r,a)})))}),n))}:("number"==typeof t&&(n=t),function(t){return t.lift(new s(e,n))})}var s=function(){function e(e,t){void 0===t&&(t=Number.POSITIVE_INFINITY),this.project=e,this.concurrent=t}return e.prototype.call=function(e,t){return t.subscribe(new l(e,this.project,this.concurrent))},e}(),l=function(e){function t(t,n,r){void 0===r&&(r=Number.POSITIVE_INFINITY);var a=e.call(this,t)||this;return a.project=n,a.concurrent=r,a.hasCompleted=!1,a.buffer=[],a.active=0,a.index=0,a}return r.a(t,e),t.prototype._next=function(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()},t}(i.b),u=o},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(5),a=n(81),c=n(60);function i(e,t){return t?Object(c.a)(e,t):new r.a(Object(a.a)(e))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(0),a=n(63),c=function(e){function t(n,r){void 0===r&&(r=a.a.now);var c=e.call(this,n,(function(){return t.delegate&&t.delegate!==c?t.delegate.now():r()}))||this;return c.actions=[],c.active=!1,c.scheduled=void 0,c}return r.a(t,e),t.prototype.schedule=function(n,r,a){return void 0===r&&(r=0),t.delegate&&t.delegate!==this?t.delegate.schedule(n,r,a):e.prototype.schedule.call(this,n,r,a)},t.prototype.flush=function(e){var t=this.actions;if(this.active)t.push(e);else{var n;this.active=!0;do{if(n=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,n){for(;e=t.shift();)e.unsubscribe();throw n}}},t}(a.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),a=n(8),c=n(7),i=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.value=null,t.hasNext=!1,t.hasCompleted=!1,t}return r.a(t,e),t.prototype._subscribe=function(t){return this.hasError?(t.error(this.thrownError),c.a.EMPTY):this.hasCompleted&&this.hasNext?(t.next(this.value),t.complete(),c.a.EMPTY):e.prototype._subscribe.call(this,t)},t.prototype.next=function(e){this.hasCompleted||(this.value=e,this.hasNext=!0)},t.prototype.error=function(t){this.hasCompleted||e.prototype.error.call(this,t)},t.prototype.complete=function(){this.hasCompleted=!0,this.hasNext&&e.prototype.next.call(this,this.value),e.prototype.complete.call(this)},t}(a.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),a=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r.pending=!1,r}return r.a(t,e),t.prototype.schedule=function(e,t){if(void 0===t&&(t=0),this.closed)return this;this.state=e;var n=this.id,r=this.scheduler;return null!=n&&(this.id=this.recycleAsyncId(r,n,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(r,this.id,t),this},t.prototype.requestAsyncId=function(e,t,n){return void 0===n&&(n=0),setInterval(e.flush.bind(e,this),n)},t.prototype.recycleAsyncId=function(e,t,n){if(void 0===n&&(n=0),null!==n&&this.delay===n&&!1===this.pending)return t;clearInterval(t)},t.prototype.execute=function(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var n=this._execute(e,t);if(n)return n;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(e,t){var n=!1,r=void 0;try{this.work(e)}catch(e){n=!0,r=!!e&&e||new Error(e)}if(n)return this.unsubscribe(),r},t.prototype._unsubscribe=function(){var e=this.id,t=this.scheduler,n=t.actions,r=n.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==r&&n.splice(r,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null},t}(function(e){function t(t,n){return e.call(this)||this}return r.a(t,e),t.prototype.schedule=function(e,t){return void 0===t&&(t=0),this},t}(n(7).a))},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(10);function a(e){return!Object(r.a)(e)&&e-parseFloat(e)+1>=0}},function(e,t,n){"use strict";n.r(t),n.d(t,"fas",(function(){return E_})),n.d(t,"prefix",(function(){return r})),n.d(t,"faAd",(function(){return a})),n.d(t,"faAddressBook",(function(){return c})),n.d(t,"faAddressCard",(function(){return i})),n.d(t,"faAdjust",(function(){return o})),n.d(t,"faAirFreshener",(function(){return s})),n.d(t,"faAlignCenter",(function(){return l})),n.d(t,"faAlignJustify",(function(){return u})),n.d(t,"faAlignLeft",(function(){return f})),n.d(t,"faAlignRight",(function(){return d})),n.d(t,"faAllergies",(function(){return h})),n.d(t,"faAmbulance",(function(){return m})),n.d(t,"faAmericanSignLanguageInterpreting",(function(){return p})),n.d(t,"faAnchor",(function(){return v})),n.d(t,"faAngleDoubleDown",(function(){return _})),n.d(t,"faAngleDoubleLeft",(function(){return M})),n.d(t,"faAngleDoubleRight",(function(){return y})),n.d(t,"faAngleDoubleUp",(function(){return b})),n.d(t,"faAngleDown",(function(){return L})),n.d(t,"faAngleLeft",(function(){return g})),n.d(t,"faAngleRight",(function(){return z})),n.d(t,"faAngleUp",(function(){return w})),n.d(t,"faAngry",(function(){return H})),n.d(t,"faAnkh",(function(){return k})),n.d(t,"faAppleAlt",(function(){return x})),n.d(t,"faArchive",(function(){return S})),n.d(t,"faArchway",(function(){return C})),n.d(t,"faArrowAltCircleDown",(function(){return Y})),n.d(t,"faArrowAltCircleLeft",(function(){return T})),n.d(t,"faArrowAltCircleRight",(function(){return D})),n.d(t,"faArrowAltCircleUp",(function(){return V})),n.d(t,"faArrowCircleDown",(function(){return N})),n.d(t,"faArrowCircleLeft",(function(){return A})),n.d(t,"faArrowCircleRight",(function(){return j})),n.d(t,"faArrowCircleUp",(function(){return E})),n.d(t,"faArrowDown",(function(){return O})),n.d(t,"faArrowLeft",(function(){return P})),n.d(t,"faArrowRight",(function(){return R})),n.d(t,"faArrowUp",(function(){return F})),n.d(t,"faArrowsAlt",(function(){return I})),n.d(t,"faArrowsAltH",(function(){return W})),n.d(t,"faArrowsAltV",(function(){return B})),n.d(t,"faAssistiveListeningSystems",(function(){return U})),n.d(t,"faAsterisk",(function(){return q})),n.d(t,"faAt",(function(){return G})),n.d(t,"faAtlas",(function(){return Z})),n.d(t,"faAtom",(function(){return J})),n.d(t,"faAudioDescription",(function(){return $})),n.d(t,"faAward",(function(){return K})),n.d(t,"faBaby",(function(){return Q})),n.d(t,"faBabyCarriage",(function(){return X})),n.d(t,"faBackspace",(function(){return ee})),n.d(t,"faBackward",(function(){return te})),n.d(t,"faBacon",(function(){return ne})),n.d(t,"faBacteria",(function(){return re})),n.d(t,"faBacterium",(function(){return ae})),n.d(t,"faBahai",(function(){return ce})),n.d(t,"faBalanceScale",(function(){return ie})),n.d(t,"faBalanceScaleLeft",(function(){return oe})),n.d(t,"faBalanceScaleRight",(function(){return se})),n.d(t,"faBan",(function(){return le})),n.d(t,"faBandAid",(function(){return ue})),n.d(t,"faBarcode",(function(){return fe})),n.d(t,"faBars",(function(){return de})),n.d(t,"faBaseballBall",(function(){return he})),n.d(t,"faBasketballBall",(function(){return me})),n.d(t,"faBath",(function(){return pe})),n.d(t,"faBatteryEmpty",(function(){return ve})),n.d(t,"faBatteryFull",(function(){return _e})),n.d(t,"faBatteryHalf",(function(){return Me})),n.d(t,"faBatteryQuarter",(function(){return ye})),n.d(t,"faBatteryThreeQuarters",(function(){return be})),n.d(t,"faBed",(function(){return Le})),n.d(t,"faBeer",(function(){return ge})),n.d(t,"faBell",(function(){return ze})),n.d(t,"faBellSlash",(function(){return we})),n.d(t,"faBezierCurve",(function(){return He})),n.d(t,"faBible",(function(){return ke})),n.d(t,"faBicycle",(function(){return xe})),n.d(t,"faBiking",(function(){return Se})),n.d(t,"faBinoculars",(function(){return Ce})),n.d(t,"faBiohazard",(function(){return Ye})),n.d(t,"faBirthdayCake",(function(){return Te})),n.d(t,"faBlender",(function(){return De})),n.d(t,"faBlenderPhone",(function(){return Ve})),n.d(t,"faBlind",(function(){return Ne})),n.d(t,"faBlog",(function(){return Ae})),n.d(t,"faBold",(function(){return je})),n.d(t,"faBolt",(function(){return Ee})),n.d(t,"faBomb",(function(){return Oe})),n.d(t,"faBone",(function(){return Pe})),n.d(t,"faBong",(function(){return Re})),n.d(t,"faBook",(function(){return Fe})),n.d(t,"faBookDead",(function(){return Ie})),n.d(t,"faBookMedical",(function(){return We})),n.d(t,"faBookOpen",(function(){return Be})),n.d(t,"faBookReader",(function(){return Ue})),n.d(t,"faBookmark",(function(){return qe})),n.d(t,"faBorderAll",(function(){return Ge})),n.d(t,"faBorderNone",(function(){return Ze})),n.d(t,"faBorderStyle",(function(){return Je})),n.d(t,"faBowlingBall",(function(){return $e})),n.d(t,"faBox",(function(){return Ke})),n.d(t,"faBoxOpen",(function(){return Qe})),n.d(t,"faBoxTissue",(function(){return Xe})),n.d(t,"faBoxes",(function(){return et})),n.d(t,"faBraille",(function(){return tt})),n.d(t,"faBrain",(function(){return nt})),n.d(t,"faBreadSlice",(function(){return rt})),n.d(t,"faBriefcase",(function(){return at})),n.d(t,"faBriefcaseMedical",(function(){return ct})),n.d(t,"faBroadcastTower",(function(){return it})),n.d(t,"faBroom",(function(){return ot})),n.d(t,"faBrush",(function(){return st})),n.d(t,"faBug",(function(){return lt})),n.d(t,"faBuilding",(function(){return ut})),n.d(t,"faBullhorn",(function(){return ft})),n.d(t,"faBullseye",(function(){return dt})),n.d(t,"faBurn",(function(){return ht})),n.d(t,"faBus",(function(){return mt})),n.d(t,"faBusAlt",(function(){return pt})),n.d(t,"faBusinessTime",(function(){return vt})),n.d(t,"faCalculator",(function(){return _t})),n.d(t,"faCalendar",(function(){return Mt})),n.d(t,"faCalendarAlt",(function(){return yt})),n.d(t,"faCalendarCheck",(function(){return bt})),n.d(t,"faCalendarDay",(function(){return Lt})),n.d(t,"faCalendarMinus",(function(){return gt})),n.d(t,"faCalendarPlus",(function(){return zt})),n.d(t,"faCalendarTimes",(function(){return wt})),n.d(t,"faCalendarWeek",(function(){return Ht})),n.d(t,"faCamera",(function(){return kt})),n.d(t,"faCameraRetro",(function(){return xt})),n.d(t,"faCampground",(function(){return St})),n.d(t,"faCandyCane",(function(){return Ct})),n.d(t,"faCannabis",(function(){return Yt})),n.d(t,"faCapsules",(function(){return Tt})),n.d(t,"faCar",(function(){return Dt})),n.d(t,"faCarAlt",(function(){return Vt})),n.d(t,"faCarBattery",(function(){return Nt})),n.d(t,"faCarCrash",(function(){return At})),n.d(t,"faCarSide",(function(){return jt})),n.d(t,"faCaravan",(function(){return Et})),n.d(t,"faCaretDown",(function(){return Ot})),n.d(t,"faCaretLeft",(function(){return Pt})),n.d(t,"faCaretRight",(function(){return Rt})),n.d(t,"faCaretSquareDown",(function(){return Ft})),n.d(t,"faCaretSquareLeft",(function(){return It})),n.d(t,"faCaretSquareRight",(function(){return Wt})),n.d(t,"faCaretSquareUp",(function(){return Bt})),n.d(t,"faCaretUp",(function(){return Ut})),n.d(t,"faCarrot",(function(){return qt})),n.d(t,"faCartArrowDown",(function(){return Gt})),n.d(t,"faCartPlus",(function(){return Zt})),n.d(t,"faCashRegister",(function(){return Jt})),n.d(t,"faCat",(function(){return $t})),n.d(t,"faCertificate",(function(){return Kt})),n.d(t,"faChair",(function(){return Qt})),n.d(t,"faChalkboard",(function(){return Xt})),n.d(t,"faChalkboardTeacher",(function(){return en})),n.d(t,"faChargingStation",(function(){return tn})),n.d(t,"faChartArea",(function(){return nn})),n.d(t,"faChartBar",(function(){return rn})),n.d(t,"faChartLine",(function(){return an})),n.d(t,"faChartPie",(function(){return cn})),n.d(t,"faCheck",(function(){return on})),n.d(t,"faCheckCircle",(function(){return sn})),n.d(t,"faCheckDouble",(function(){return ln})),n.d(t,"faCheckSquare",(function(){return un})),n.d(t,"faCheese",(function(){return fn})),n.d(t,"faChess",(function(){return dn})),n.d(t,"faChessBishop",(function(){return hn})),n.d(t,"faChessBoard",(function(){return mn})),n.d(t,"faChessKing",(function(){return pn})),n.d(t,"faChessKnight",(function(){return vn})),n.d(t,"faChessPawn",(function(){return _n})),n.d(t,"faChessQueen",(function(){return Mn})),n.d(t,"faChessRook",(function(){return yn})),n.d(t,"faChevronCircleDown",(function(){return bn})),n.d(t,"faChevronCircleLeft",(function(){return Ln})),n.d(t,"faChevronCircleRight",(function(){return gn})),n.d(t,"faChevronCircleUp",(function(){return zn})),n.d(t,"faChevronDown",(function(){return wn})),n.d(t,"faChevronLeft",(function(){return Hn})),n.d(t,"faChevronRight",(function(){return kn})),n.d(t,"faChevronUp",(function(){return xn})),n.d(t,"faChild",(function(){return Sn})),n.d(t,"faChurch",(function(){return Cn})),n.d(t,"faCircle",(function(){return Yn})),n.d(t,"faCircleNotch",(function(){return Tn})),n.d(t,"faCity",(function(){return Dn})),n.d(t,"faClinicMedical",(function(){return Vn})),n.d(t,"faClipboard",(function(){return Nn})),n.d(t,"faClipboardCheck",(function(){return An})),n.d(t,"faClipboardList",(function(){return jn})),n.d(t,"faClock",(function(){return En})),n.d(t,"faClone",(function(){return On})),n.d(t,"faClosedCaptioning",(function(){return Pn})),n.d(t,"faCloud",(function(){return Rn})),n.d(t,"faCloudDownloadAlt",(function(){return Fn})),n.d(t,"faCloudMeatball",(function(){return In})),n.d(t,"faCloudMoon",(function(){return Wn})),n.d(t,"faCloudMoonRain",(function(){return Bn})),n.d(t,"faCloudRain",(function(){return Un})),n.d(t,"faCloudShowersHeavy",(function(){return qn})),n.d(t,"faCloudSun",(function(){return Gn})),n.d(t,"faCloudSunRain",(function(){return Zn})),n.d(t,"faCloudUploadAlt",(function(){return Jn})),n.d(t,"faCocktail",(function(){return $n})),n.d(t,"faCode",(function(){return Kn})),n.d(t,"faCodeBranch",(function(){return Qn})),n.d(t,"faCoffee",(function(){return Xn})),n.d(t,"faCog",(function(){return er})),n.d(t,"faCogs",(function(){return tr})),n.d(t,"faCoins",(function(){return nr})),n.d(t,"faColumns",(function(){return rr})),n.d(t,"faComment",(function(){return ar})),n.d(t,"faCommentAlt",(function(){return cr})),n.d(t,"faCommentDollar",(function(){return ir})),n.d(t,"faCommentDots",(function(){return or})),n.d(t,"faCommentMedical",(function(){return sr})),n.d(t,"faCommentSlash",(function(){return lr})),n.d(t,"faComments",(function(){return ur})),n.d(t,"faCommentsDollar",(function(){return fr})),n.d(t,"faCompactDisc",(function(){return dr})),n.d(t,"faCompass",(function(){return hr})),n.d(t,"faCompress",(function(){return mr})),n.d(t,"faCompressAlt",(function(){return pr})),n.d(t,"faCompressArrowsAlt",(function(){return vr})),n.d(t,"faConciergeBell",(function(){return _r})),n.d(t,"faCookie",(function(){return Mr})),n.d(t,"faCookieBite",(function(){return yr})),n.d(t,"faCopy",(function(){return br})),n.d(t,"faCopyright",(function(){return Lr})),n.d(t,"faCouch",(function(){return gr})),n.d(t,"faCreditCard",(function(){return zr})),n.d(t,"faCrop",(function(){return wr})),n.d(t,"faCropAlt",(function(){return Hr})),n.d(t,"faCross",(function(){return kr})),n.d(t,"faCrosshairs",(function(){return xr})),n.d(t,"faCrow",(function(){return Sr})),n.d(t,"faCrown",(function(){return Cr})),n.d(t,"faCrutch",(function(){return Yr})),n.d(t,"faCube",(function(){return Tr})),n.d(t,"faCubes",(function(){return Dr})),n.d(t,"faCut",(function(){return Vr})),n.d(t,"faDatabase",(function(){return Nr})),n.d(t,"faDeaf",(function(){return Ar})),n.d(t,"faDemocrat",(function(){return jr})),n.d(t,"faDesktop",(function(){return Er})),n.d(t,"faDharmachakra",(function(){return Or})),n.d(t,"faDiagnoses",(function(){return Pr})),n.d(t,"faDice",(function(){return Rr})),n.d(t,"faDiceD20",(function(){return Fr})),n.d(t,"faDiceD6",(function(){return Ir})),n.d(t,"faDiceFive",(function(){return Wr})),n.d(t,"faDiceFour",(function(){return Br})),n.d(t,"faDiceOne",(function(){return Ur})),n.d(t,"faDiceSix",(function(){return qr})),n.d(t,"faDiceThree",(function(){return Gr})),n.d(t,"faDiceTwo",(function(){return Zr})),n.d(t,"faDigitalTachograph",(function(){return Jr})),n.d(t,"faDirections",(function(){return $r})),n.d(t,"faDisease",(function(){return Kr})),n.d(t,"faDivide",(function(){return Qr})),n.d(t,"faDizzy",(function(){return Xr})),n.d(t,"faDna",(function(){return ea})),n.d(t,"faDog",(function(){return ta})),n.d(t,"faDollarSign",(function(){return na})),n.d(t,"faDolly",(function(){return ra})),n.d(t,"faDollyFlatbed",(function(){return aa})),n.d(t,"faDonate",(function(){return ca})),n.d(t,"faDoorClosed",(function(){return ia})),n.d(t,"faDoorOpen",(function(){return oa})),n.d(t,"faDotCircle",(function(){return sa})),n.d(t,"faDove",(function(){return la})),n.d(t,"faDownload",(function(){return ua})),n.d(t,"faDraftingCompass",(function(){return fa})),n.d(t,"faDragon",(function(){return da})),n.d(t,"faDrawPolygon",(function(){return ha})),n.d(t,"faDrum",(function(){return ma})),n.d(t,"faDrumSteelpan",(function(){return pa})),n.d(t,"faDrumstickBite",(function(){return va})),n.d(t,"faDumbbell",(function(){return _a})),n.d(t,"faDumpster",(function(){return Ma})),n.d(t,"faDumpsterFire",(function(){return ya})),n.d(t,"faDungeon",(function(){return ba})),n.d(t,"faEdit",(function(){return La})),n.d(t,"faEgg",(function(){return ga})),n.d(t,"faEject",(function(){return za})),n.d(t,"faEllipsisH",(function(){return wa})),n.d(t,"faEllipsisV",(function(){return Ha})),n.d(t,"faEnvelope",(function(){return ka})),n.d(t,"faEnvelopeOpen",(function(){return xa})),n.d(t,"faEnvelopeOpenText",(function(){return Sa})),n.d(t,"faEnvelopeSquare",(function(){return Ca})),n.d(t,"faEquals",(function(){return Ya})),n.d(t,"faEraser",(function(){return Ta})),n.d(t,"faEthernet",(function(){return Da})),n.d(t,"faEuroSign",(function(){return Va})),n.d(t,"faExchangeAlt",(function(){return Na})),n.d(t,"faExclamation",(function(){return Aa})),n.d(t,"faExclamationCircle",(function(){return ja})),n.d(t,"faExclamationTriangle",(function(){return Ea})),n.d(t,"faExpand",(function(){return Oa})),n.d(t,"faExpandAlt",(function(){return Pa})),n.d(t,"faExpandArrowsAlt",(function(){return Ra})),n.d(t,"faExternalLinkAlt",(function(){return Fa})),n.d(t,"faExternalLinkSquareAlt",(function(){return Ia})),n.d(t,"faEye",(function(){return Wa})),n.d(t,"faEyeDropper",(function(){return Ba})),n.d(t,"faEyeSlash",(function(){return Ua})),n.d(t,"faFan",(function(){return qa})),n.d(t,"faFastBackward",(function(){return Ga})),n.d(t,"faFastForward",(function(){return Za})),n.d(t,"faFaucet",(function(){return Ja})),n.d(t,"faFax",(function(){return $a})),n.d(t,"faFeather",(function(){return Ka})),n.d(t,"faFeatherAlt",(function(){return Qa})),n.d(t,"faFemale",(function(){return Xa})),n.d(t,"faFighterJet",(function(){return ec})),n.d(t,"faFile",(function(){return tc})),n.d(t,"faFileAlt",(function(){return nc})),n.d(t,"faFileArchive",(function(){return rc})),n.d(t,"faFileAudio",(function(){return ac})),n.d(t,"faFileCode",(function(){return cc})),n.d(t,"faFileContract",(function(){return ic})),n.d(t,"faFileCsv",(function(){return oc})),n.d(t,"faFileDownload",(function(){return sc})),n.d(t,"faFileExcel",(function(){return lc})),n.d(t,"faFileExport",(function(){return uc})),n.d(t,"faFileImage",(function(){return fc})),n.d(t,"faFileImport",(function(){return dc})),n.d(t,"faFileInvoice",(function(){return hc})),n.d(t,"faFileInvoiceDollar",(function(){return mc})),n.d(t,"faFileMedical",(function(){return pc})),n.d(t,"faFileMedicalAlt",(function(){return vc})),n.d(t,"faFilePdf",(function(){return _c})),n.d(t,"faFilePowerpoint",(function(){return Mc})),n.d(t,"faFilePrescription",(function(){return yc})),n.d(t,"faFileSignature",(function(){return bc})),n.d(t,"faFileUpload",(function(){return Lc})),n.d(t,"faFileVideo",(function(){return gc})),n.d(t,"faFileWord",(function(){return zc})),n.d(t,"faFill",(function(){return wc})),n.d(t,"faFillDrip",(function(){return Hc})),n.d(t,"faFilm",(function(){return kc})),n.d(t,"faFilter",(function(){return xc})),n.d(t,"faFingerprint",(function(){return Sc})),n.d(t,"faFire",(function(){return Cc})),n.d(t,"faFireAlt",(function(){return Yc})),n.d(t,"faFireExtinguisher",(function(){return Tc})),n.d(t,"faFirstAid",(function(){return Dc})),n.d(t,"faFish",(function(){return Vc})),n.d(t,"faFistRaised",(function(){return Nc})),n.d(t,"faFlag",(function(){return Ac})),n.d(t,"faFlagCheckered",(function(){return jc})),n.d(t,"faFlagUsa",(function(){return Ec})),n.d(t,"faFlask",(function(){return Oc})),n.d(t,"faFlushed",(function(){return Pc})),n.d(t,"faFolder",(function(){return Rc})),n.d(t,"faFolderMinus",(function(){return Fc})),n.d(t,"faFolderOpen",(function(){return Ic})),n.d(t,"faFolderPlus",(function(){return Wc})),n.d(t,"faFont",(function(){return Bc})),n.d(t,"faFontAwesomeLogoFull",(function(){return Uc})),n.d(t,"faFootballBall",(function(){return qc})),n.d(t,"faForward",(function(){return Gc})),n.d(t,"faFrog",(function(){return Zc})),n.d(t,"faFrown",(function(){return Jc})),n.d(t,"faFrownOpen",(function(){return $c})),n.d(t,"faFunnelDollar",(function(){return Kc})),n.d(t,"faFutbol",(function(){return Qc})),n.d(t,"faGamepad",(function(){return Xc})),n.d(t,"faGasPump",(function(){return ei})),n.d(t,"faGavel",(function(){return ti})),n.d(t,"faGem",(function(){return ni})),n.d(t,"faGenderless",(function(){return ri})),n.d(t,"faGhost",(function(){return ai})),n.d(t,"faGift",(function(){return ci})),n.d(t,"faGifts",(function(){return ii})),n.d(t,"faGlassCheers",(function(){return oi})),n.d(t,"faGlassMartini",(function(){return si})),n.d(t,"faGlassMartiniAlt",(function(){return li})),n.d(t,"faGlassWhiskey",(function(){return ui})),n.d(t,"faGlasses",(function(){return fi})),n.d(t,"faGlobe",(function(){return di})),n.d(t,"faGlobeAfrica",(function(){return hi})),n.d(t,"faGlobeAmericas",(function(){return mi})),n.d(t,"faGlobeAsia",(function(){return pi})),n.d(t,"faGlobeEurope",(function(){return vi})),n.d(t,"faGolfBall",(function(){return _i})),n.d(t,"faGopuram",(function(){return Mi})),n.d(t,"faGraduationCap",(function(){return yi})),n.d(t,"faGreaterThan",(function(){return bi})),n.d(t,"faGreaterThanEqual",(function(){return Li})),n.d(t,"faGrimace",(function(){return gi})),n.d(t,"faGrin",(function(){return zi})),n.d(t,"faGrinAlt",(function(){return wi})),n.d(t,"faGrinBeam",(function(){return Hi})),n.d(t,"faGrinBeamSweat",(function(){return ki})),n.d(t,"faGrinHearts",(function(){return xi})),n.d(t,"faGrinSquint",(function(){return Si})),n.d(t,"faGrinSquintTears",(function(){return Ci})),n.d(t,"faGrinStars",(function(){return Yi})),n.d(t,"faGrinTears",(function(){return Ti})),n.d(t,"faGrinTongue",(function(){return Di})),n.d(t,"faGrinTongueSquint",(function(){return Vi})),n.d(t,"faGrinTongueWink",(function(){return Ni})),n.d(t,"faGrinWink",(function(){return Ai})),n.d(t,"faGripHorizontal",(function(){return ji})),n.d(t,"faGripLines",(function(){return Ei})),n.d(t,"faGripLinesVertical",(function(){return Oi})),n.d(t,"faGripVertical",(function(){return Pi})),n.d(t,"faGuitar",(function(){return Ri})),n.d(t,"faHSquare",(function(){return Fi})),n.d(t,"faHamburger",(function(){return Ii})),n.d(t,"faHammer",(function(){return Wi})),n.d(t,"faHamsa",(function(){return Bi})),n.d(t,"faHandHolding",(function(){return Ui})),n.d(t,"faHandHoldingHeart",(function(){return qi})),n.d(t,"faHandHoldingMedical",(function(){return Gi})),n.d(t,"faHandHoldingUsd",(function(){return Zi})),n.d(t,"faHandHoldingWater",(function(){return Ji})),n.d(t,"faHandLizard",(function(){return $i})),n.d(t,"faHandMiddleFinger",(function(){return Ki})),n.d(t,"faHandPaper",(function(){return Qi})),n.d(t,"faHandPeace",(function(){return Xi})),n.d(t,"faHandPointDown",(function(){return eo})),n.d(t,"faHandPointLeft",(function(){return to})),n.d(t,"faHandPointRight",(function(){return no})),n.d(t,"faHandPointUp",(function(){return ro})),n.d(t,"faHandPointer",(function(){return ao})),n.d(t,"faHandRock",(function(){return co})),n.d(t,"faHandScissors",(function(){return io})),n.d(t,"faHandSparkles",(function(){return oo})),n.d(t,"faHandSpock",(function(){return so})),n.d(t,"faHands",(function(){return lo})),n.d(t,"faHandsHelping",(function(){return uo})),n.d(t,"faHandsWash",(function(){return fo})),n.d(t,"faHandshake",(function(){return ho})),n.d(t,"faHandshakeAltSlash",(function(){return mo})),n.d(t,"faHandshakeSlash",(function(){return po})),n.d(t,"faHanukiah",(function(){return vo})),n.d(t,"faHardHat",(function(){return _o})),n.d(t,"faHashtag",(function(){return Mo})),n.d(t,"faHatCowboy",(function(){return yo})),n.d(t,"faHatCowboySide",(function(){return bo})),n.d(t,"faHatWizard",(function(){return Lo})),n.d(t,"faHdd",(function(){return go})),n.d(t,"faHeadSideCough",(function(){return zo})),n.d(t,"faHeadSideCoughSlash",(function(){return wo})),n.d(t,"faHeadSideMask",(function(){return Ho})),n.d(t,"faHeadSideVirus",(function(){return ko})),n.d(t,"faHeading",(function(){return xo})),n.d(t,"faHeadphones",(function(){return So})),n.d(t,"faHeadphonesAlt",(function(){return Co})),n.d(t,"faHeadset",(function(){return Yo})),n.d(t,"faHeart",(function(){return To})),n.d(t,"faHeartBroken",(function(){return Do})),n.d(t,"faHeartbeat",(function(){return Vo})),n.d(t,"faHelicopter",(function(){return No})),n.d(t,"faHighlighter",(function(){return Ao})),n.d(t,"faHiking",(function(){return jo})),n.d(t,"faHippo",(function(){return Eo})),n.d(t,"faHistory",(function(){return Oo})),n.d(t,"faHockeyPuck",(function(){return Po})),n.d(t,"faHollyBerry",(function(){return Ro})),n.d(t,"faHome",(function(){return Fo})),n.d(t,"faHorse",(function(){return Io})),n.d(t,"faHorseHead",(function(){return Wo})),n.d(t,"faHospital",(function(){return Bo})),n.d(t,"faHospitalAlt",(function(){return Uo})),n.d(t,"faHospitalSymbol",(function(){return qo})),n.d(t,"faHospitalUser",(function(){return Go})),n.d(t,"faHotTub",(function(){return Zo})),n.d(t,"faHotdog",(function(){return Jo})),n.d(t,"faHotel",(function(){return $o})),n.d(t,"faHourglass",(function(){return Ko})),n.d(t,"faHourglassEnd",(function(){return Qo})),n.d(t,"faHourglassHalf",(function(){return Xo})),n.d(t,"faHourglassStart",(function(){return es})),n.d(t,"faHouseDamage",(function(){return ts})),n.d(t,"faHouseUser",(function(){return ns})),n.d(t,"faHryvnia",(function(){return rs})),n.d(t,"faICursor",(function(){return as})),n.d(t,"faIceCream",(function(){return cs})),n.d(t,"faIcicles",(function(){return is})),n.d(t,"faIcons",(function(){return os})),n.d(t,"faIdBadge",(function(){return ss})),n.d(t,"faIdCard",(function(){return ls})),n.d(t,"faIdCardAlt",(function(){return us})),n.d(t,"faIgloo",(function(){return fs})),n.d(t,"faImage",(function(){return ds})),n.d(t,"faImages",(function(){return hs})),n.d(t,"faInbox",(function(){return ms})),n.d(t,"faIndent",(function(){return ps})),n.d(t,"faIndustry",(function(){return vs})),n.d(t,"faInfinity",(function(){return _s})),n.d(t,"faInfo",(function(){return Ms})),n.d(t,"faInfoCircle",(function(){return ys})),n.d(t,"faItalic",(function(){return bs})),n.d(t,"faJedi",(function(){return Ls})),n.d(t,"faJoint",(function(){return gs})),n.d(t,"faJournalWhills",(function(){return zs})),n.d(t,"faKaaba",(function(){return ws})),n.d(t,"faKey",(function(){return Hs})),n.d(t,"faKeyboard",(function(){return ks})),n.d(t,"faKhanda",(function(){return xs})),n.d(t,"faKiss",(function(){return Ss})),n.d(t,"faKissBeam",(function(){return Cs})),n.d(t,"faKissWinkHeart",(function(){return Ys})),n.d(t,"faKiwiBird",(function(){return Ts})),n.d(t,"faLandmark",(function(){return Ds})),n.d(t,"faLanguage",(function(){return Vs})),n.d(t,"faLaptop",(function(){return Ns})),n.d(t,"faLaptopCode",(function(){return As})),n.d(t,"faLaptopHouse",(function(){return js})),n.d(t,"faLaptopMedical",(function(){return Es})),n.d(t,"faLaugh",(function(){return Os})),n.d(t,"faLaughBeam",(function(){return Ps})),n.d(t,"faLaughSquint",(function(){return Rs})),n.d(t,"faLaughWink",(function(){return Fs})),n.d(t,"faLayerGroup",(function(){return Is})),n.d(t,"faLeaf",(function(){return Ws})),n.d(t,"faLemon",(function(){return Bs})),n.d(t,"faLessThan",(function(){return Us})),n.d(t,"faLessThanEqual",(function(){return qs})),n.d(t,"faLevelDownAlt",(function(){return Gs})),n.d(t,"faLevelUpAlt",(function(){return Zs})),n.d(t,"faLifeRing",(function(){return Js})),n.d(t,"faLightbulb",(function(){return $s})),n.d(t,"faLink",(function(){return Ks})),n.d(t,"faLiraSign",(function(){return Qs})),n.d(t,"faList",(function(){return Xs})),n.d(t,"faListAlt",(function(){return el})),n.d(t,"faListOl",(function(){return tl})),n.d(t,"faListUl",(function(){return nl})),n.d(t,"faLocationArrow",(function(){return rl})),n.d(t,"faLock",(function(){return al})),n.d(t,"faLockOpen",(function(){return cl})),n.d(t,"faLongArrowAltDown",(function(){return il})),n.d(t,"faLongArrowAltLeft",(function(){return ol})),n.d(t,"faLongArrowAltRight",(function(){return sl})),n.d(t,"faLongArrowAltUp",(function(){return ll})),n.d(t,"faLowVision",(function(){return ul})),n.d(t,"faLuggageCart",(function(){return fl})),n.d(t,"faLungs",(function(){return dl})),n.d(t,"faLungsVirus",(function(){return hl})),n.d(t,"faMagic",(function(){return ml})),n.d(t,"faMagnet",(function(){return pl})),n.d(t,"faMailBulk",(function(){return vl})),n.d(t,"faMale",(function(){return _l})),n.d(t,"faMap",(function(){return Ml})),n.d(t,"faMapMarked",(function(){return yl})),n.d(t,"faMapMarkedAlt",(function(){return bl})),n.d(t,"faMapMarker",(function(){return Ll})),n.d(t,"faMapMarkerAlt",(function(){return gl})),n.d(t,"faMapPin",(function(){return zl})),n.d(t,"faMapSigns",(function(){return wl})),n.d(t,"faMarker",(function(){return Hl})),n.d(t,"faMars",(function(){return kl})),n.d(t,"faMarsDouble",(function(){return xl})),n.d(t,"faMarsStroke",(function(){return Sl})),n.d(t,"faMarsStrokeH",(function(){return Cl})),n.d(t,"faMarsStrokeV",(function(){return Yl})),n.d(t,"faMask",(function(){return Tl})),n.d(t,"faMedal",(function(){return Dl})),n.d(t,"faMedkit",(function(){return Vl})),n.d(t,"faMeh",(function(){return Nl})),n.d(t,"faMehBlank",(function(){return Al})),n.d(t,"faMehRollingEyes",(function(){return jl})),n.d(t,"faMemory",(function(){return El})),n.d(t,"faMenorah",(function(){return Ol})),n.d(t,"faMercury",(function(){return Pl})),n.d(t,"faMeteor",(function(){return Rl})),n.d(t,"faMicrochip",(function(){return Fl})),n.d(t,"faMicrophone",(function(){return Il})),n.d(t,"faMicrophoneAlt",(function(){return Wl})),n.d(t,"faMicrophoneAltSlash",(function(){return Bl})),n.d(t,"faMicrophoneSlash",(function(){return Ul})),n.d(t,"faMicroscope",(function(){return ql})),n.d(t,"faMinus",(function(){return Gl})),n.d(t,"faMinusCircle",(function(){return Zl})),n.d(t,"faMinusSquare",(function(){return Jl})),n.d(t,"faMitten",(function(){return $l})),n.d(t,"faMobile",(function(){return Kl})),n.d(t,"faMobileAlt",(function(){return Ql})),n.d(t,"faMoneyBill",(function(){return Xl})),n.d(t,"faMoneyBillAlt",(function(){return eu})),n.d(t,"faMoneyBillWave",(function(){return tu})),n.d(t,"faMoneyBillWaveAlt",(function(){return nu})),n.d(t,"faMoneyCheck",(function(){return ru})),n.d(t,"faMoneyCheckAlt",(function(){return au})),n.d(t,"faMonument",(function(){return cu})),n.d(t,"faMoon",(function(){return iu})),n.d(t,"faMortarPestle",(function(){return ou})),n.d(t,"faMosque",(function(){return su})),n.d(t,"faMotorcycle",(function(){return lu})),n.d(t,"faMountain",(function(){return uu})),n.d(t,"faMouse",(function(){return fu})),n.d(t,"faMousePointer",(function(){return du})),n.d(t,"faMugHot",(function(){return hu})),n.d(t,"faMusic",(function(){return mu})),n.d(t,"faNetworkWired",(function(){return pu})),n.d(t,"faNeuter",(function(){return vu})),n.d(t,"faNewspaper",(function(){return _u})),n.d(t,"faNotEqual",(function(){return Mu})),n.d(t,"faNotesMedical",(function(){return yu})),n.d(t,"faObjectGroup",(function(){return bu})),n.d(t,"faObjectUngroup",(function(){return Lu})),n.d(t,"faOilCan",(function(){return gu})),n.d(t,"faOm",(function(){return zu})),n.d(t,"faOtter",(function(){return wu})),n.d(t,"faOutdent",(function(){return Hu})),n.d(t,"faPager",(function(){return ku})),n.d(t,"faPaintBrush",(function(){return xu})),n.d(t,"faPaintRoller",(function(){return Su})),n.d(t,"faPalette",(function(){return Cu})),n.d(t,"faPallet",(function(){return Yu})),n.d(t,"faPaperPlane",(function(){return Tu})),n.d(t,"faPaperclip",(function(){return Du})),n.d(t,"faParachuteBox",(function(){return Vu})),n.d(t,"faParagraph",(function(){return Nu})),n.d(t,"faParking",(function(){return Au})),n.d(t,"faPassport",(function(){return ju})),n.d(t,"faPastafarianism",(function(){return Eu})),n.d(t,"faPaste",(function(){return Ou})),n.d(t,"faPause",(function(){return Pu})),n.d(t,"faPauseCircle",(function(){return Ru})),n.d(t,"faPaw",(function(){return Fu})),n.d(t,"faPeace",(function(){return Iu})),n.d(t,"faPen",(function(){return Wu})),n.d(t,"faPenAlt",(function(){return Bu})),n.d(t,"faPenFancy",(function(){return Uu})),n.d(t,"faPenNib",(function(){return qu})),n.d(t,"faPenSquare",(function(){return Gu})),n.d(t,"faPencilAlt",(function(){return Zu})),n.d(t,"faPencilRuler",(function(){return Ju})),n.d(t,"faPeopleArrows",(function(){return $u})),n.d(t,"faPeopleCarry",(function(){return Ku})),n.d(t,"faPepperHot",(function(){return Qu})),n.d(t,"faPercent",(function(){return Xu})),n.d(t,"faPercentage",(function(){return ef})),n.d(t,"faPersonBooth",(function(){return tf})),n.d(t,"faPhone",(function(){return nf})),n.d(t,"faPhoneAlt",(function(){return rf})),n.d(t,"faPhoneSlash",(function(){return af})),n.d(t,"faPhoneSquare",(function(){return cf})),n.d(t,"faPhoneSquareAlt",(function(){return of})),n.d(t,"faPhoneVolume",(function(){return sf})),n.d(t,"faPhotoVideo",(function(){return lf})),n.d(t,"faPiggyBank",(function(){return uf})),n.d(t,"faPills",(function(){return ff})),n.d(t,"faPizzaSlice",(function(){return df})),n.d(t,"faPlaceOfWorship",(function(){return hf})),n.d(t,"faPlane",(function(){return mf})),n.d(t,"faPlaneArrival",(function(){return pf})),n.d(t,"faPlaneDeparture",(function(){return vf})),n.d(t,"faPlaneSlash",(function(){return _f})),n.d(t,"faPlay",(function(){return Mf})),n.d(t,"faPlayCircle",(function(){return yf})),n.d(t,"faPlug",(function(){return bf})),n.d(t,"faPlus",(function(){return Lf})),n.d(t,"faPlusCircle",(function(){return gf})),n.d(t,"faPlusSquare",(function(){return zf})),n.d(t,"faPodcast",(function(){return wf})),n.d(t,"faPoll",(function(){return Hf})),n.d(t,"faPollH",(function(){return kf})),n.d(t,"faPoo",(function(){return xf})),n.d(t,"faPooStorm",(function(){return Sf})),n.d(t,"faPoop",(function(){return Cf})),n.d(t,"faPortrait",(function(){return Yf})),n.d(t,"faPoundSign",(function(){return Tf})),n.d(t,"faPowerOff",(function(){return Df})),n.d(t,"faPray",(function(){return Vf})),n.d(t,"faPrayingHands",(function(){return Nf})),n.d(t,"faPrescription",(function(){return Af})),n.d(t,"faPrescriptionBottle",(function(){return jf})),n.d(t,"faPrescriptionBottleAlt",(function(){return Ef})),n.d(t,"faPrint",(function(){return Of})),n.d(t,"faProcedures",(function(){return Pf})),n.d(t,"faProjectDiagram",(function(){return Rf})),n.d(t,"faPumpMedical",(function(){return Ff})),n.d(t,"faPumpSoap",(function(){return If})),n.d(t,"faPuzzlePiece",(function(){return Wf})),n.d(t,"faQrcode",(function(){return Bf})),n.d(t,"faQuestion",(function(){return Uf})),n.d(t,"faQuestionCircle",(function(){return qf})),n.d(t,"faQuidditch",(function(){return Gf})),n.d(t,"faQuoteLeft",(function(){return Zf})),n.d(t,"faQuoteRight",(function(){return Jf})),n.d(t,"faQuran",(function(){return $f})),n.d(t,"faRadiation",(function(){return Kf})),n.d(t,"faRadiationAlt",(function(){return Qf})),n.d(t,"faRainbow",(function(){return Xf})),n.d(t,"faRandom",(function(){return ed})),n.d(t,"faReceipt",(function(){return td})),n.d(t,"faRecordVinyl",(function(){return nd})),n.d(t,"faRecycle",(function(){return rd})),n.d(t,"faRedo",(function(){return ad})),n.d(t,"faRedoAlt",(function(){return cd})),n.d(t,"faRegistered",(function(){return id})),n.d(t,"faRemoveFormat",(function(){return od})),n.d(t,"faReply",(function(){return sd})),n.d(t,"faReplyAll",(function(){return ld})),n.d(t,"faRepublican",(function(){return ud})),n.d(t,"faRestroom",(function(){return fd})),n.d(t,"faRetweet",(function(){return dd})),n.d(t,"faRibbon",(function(){return hd})),n.d(t,"faRing",(function(){return md})),n.d(t,"faRoad",(function(){return pd})),n.d(t,"faRobot",(function(){return vd})),n.d(t,"faRocket",(function(){return _d})),n.d(t,"faRoute",(function(){return Md})),n.d(t,"faRss",(function(){return yd})),n.d(t,"faRssSquare",(function(){return bd})),n.d(t,"faRubleSign",(function(){return Ld})),n.d(t,"faRuler",(function(){return gd})),n.d(t,"faRulerCombined",(function(){return zd})),n.d(t,"faRulerHorizontal",(function(){return wd})),n.d(t,"faRulerVertical",(function(){return Hd})),n.d(t,"faRunning",(function(){return kd})),n.d(t,"faRupeeSign",(function(){return xd})),n.d(t,"faSadCry",(function(){return Sd})),n.d(t,"faSadTear",(function(){return Cd})),n.d(t,"faSatellite",(function(){return Yd})),n.d(t,"faSatelliteDish",(function(){return Td})),n.d(t,"faSave",(function(){return Dd})),n.d(t,"faSchool",(function(){return Vd})),n.d(t,"faScrewdriver",(function(){return Nd})),n.d(t,"faScroll",(function(){return Ad})),n.d(t,"faSdCard",(function(){return jd})),n.d(t,"faSearch",(function(){return Ed})),n.d(t,"faSearchDollar",(function(){return Od})),n.d(t,"faSearchLocation",(function(){return Pd})),n.d(t,"faSearchMinus",(function(){return Rd})),n.d(t,"faSearchPlus",(function(){return Fd})),n.d(t,"faSeedling",(function(){return Id})),n.d(t,"faServer",(function(){return Wd})),n.d(t,"faShapes",(function(){return Bd})),n.d(t,"faShare",(function(){return Ud})),n.d(t,"faShareAlt",(function(){return qd})),n.d(t,"faShareAltSquare",(function(){return Gd})),n.d(t,"faShareSquare",(function(){return Zd})),n.d(t,"faShekelSign",(function(){return Jd})),n.d(t,"faShieldAlt",(function(){return $d})),n.d(t,"faShieldVirus",(function(){return Kd})),n.d(t,"faShip",(function(){return Qd})),n.d(t,"faShippingFast",(function(){return Xd})),n.d(t,"faShoePrints",(function(){return eh})),n.d(t,"faShoppingBag",(function(){return th})),n.d(t,"faShoppingBasket",(function(){return nh})),n.d(t,"faShoppingCart",(function(){return rh})),n.d(t,"faShower",(function(){return ah})),n.d(t,"faShuttleVan",(function(){return ch})),n.d(t,"faSign",(function(){return ih})),n.d(t,"faSignInAlt",(function(){return oh})),n.d(t,"faSignLanguage",(function(){return sh})),n.d(t,"faSignOutAlt",(function(){return lh})),n.d(t,"faSignal",(function(){return uh})),n.d(t,"faSignature",(function(){return fh})),n.d(t,"faSimCard",(function(){return dh})),n.d(t,"faSink",(function(){return hh})),n.d(t,"faSitemap",(function(){return mh})),n.d(t,"faSkating",(function(){return ph})),n.d(t,"faSkiing",(function(){return vh})),n.d(t,"faSkiingNordic",(function(){return _h})),n.d(t,"faSkull",(function(){return Mh})),n.d(t,"faSkullCrossbones",(function(){return yh})),n.d(t,"faSlash",(function(){return bh})),n.d(t,"faSleigh",(function(){return Lh})),n.d(t,"faSlidersH",(function(){return gh})),n.d(t,"faSmile",(function(){return zh})),n.d(t,"faSmileBeam",(function(){return wh})),n.d(t,"faSmileWink",(function(){return Hh})),n.d(t,"faSmog",(function(){return kh})),n.d(t,"faSmoking",(function(){return xh})),n.d(t,"faSmokingBan",(function(){return Sh})),n.d(t,"faSms",(function(){return Ch})),n.d(t,"faSnowboarding",(function(){return Yh})),n.d(t,"faSnowflake",(function(){return Th})),n.d(t,"faSnowman",(function(){return Dh})),n.d(t,"faSnowplow",(function(){return Vh})),n.d(t,"faSoap",(function(){return Nh})),n.d(t,"faSocks",(function(){return Ah})),n.d(t,"faSolarPanel",(function(){return jh})),n.d(t,"faSort",(function(){return Eh})),n.d(t,"faSortAlphaDown",(function(){return Oh})),n.d(t,"faSortAlphaDownAlt",(function(){return Ph})),n.d(t,"faSortAlphaUp",(function(){return Rh})),n.d(t,"faSortAlphaUpAlt",(function(){return Fh})),n.d(t,"faSortAmountDown",(function(){return Ih})),n.d(t,"faSortAmountDownAlt",(function(){return Wh})),n.d(t,"faSortAmountUp",(function(){return Bh})),n.d(t,"faSortAmountUpAlt",(function(){return Uh})),n.d(t,"faSortDown",(function(){return qh})),n.d(t,"faSortNumericDown",(function(){return Gh}));n.d(t,"faSortNumericDownAlt",(function(){return Zh})),n.d(t,"faSortNumericUp",(function(){return Jh})),n.d(t,"faSortNumericUpAlt",(function(){return $h})),n.d(t,"faSortUp",(function(){return Kh})),n.d(t,"faSpa",(function(){return Qh})),n.d(t,"faSpaceShuttle",(function(){return Xh})),n.d(t,"faSpellCheck",(function(){return em})),n.d(t,"faSpider",(function(){return tm})),n.d(t,"faSpinner",(function(){return nm})),n.d(t,"faSplotch",(function(){return rm})),n.d(t,"faSprayCan",(function(){return am})),n.d(t,"faSquare",(function(){return cm})),n.d(t,"faSquareFull",(function(){return im})),n.d(t,"faSquareRootAlt",(function(){return om})),n.d(t,"faStamp",(function(){return sm})),n.d(t,"faStar",(function(){return lm})),n.d(t,"faStarAndCrescent",(function(){return um})),n.d(t,"faStarHalf",(function(){return fm})),n.d(t,"faStarHalfAlt",(function(){return dm})),n.d(t,"faStarOfDavid",(function(){return hm})),n.d(t,"faStarOfLife",(function(){return mm})),n.d(t,"faStepBackward",(function(){return pm})),n.d(t,"faStepForward",(function(){return vm})),n.d(t,"faStethoscope",(function(){return _m})),n.d(t,"faStickyNote",(function(){return Mm})),n.d(t,"faStop",(function(){return ym})),n.d(t,"faStopCircle",(function(){return bm})),n.d(t,"faStopwatch",(function(){return Lm})),n.d(t,"faStopwatch20",(function(){return gm})),n.d(t,"faStore",(function(){return zm})),n.d(t,"faStoreAlt",(function(){return wm})),n.d(t,"faStoreAltSlash",(function(){return Hm})),n.d(t,"faStoreSlash",(function(){return km})),n.d(t,"faStream",(function(){return xm})),n.d(t,"faStreetView",(function(){return Sm})),n.d(t,"faStrikethrough",(function(){return Cm})),n.d(t,"faStroopwafel",(function(){return Ym})),n.d(t,"faSubscript",(function(){return Tm})),n.d(t,"faSubway",(function(){return Dm})),n.d(t,"faSuitcase",(function(){return Vm})),n.d(t,"faSuitcaseRolling",(function(){return Nm})),n.d(t,"faSun",(function(){return Am})),n.d(t,"faSuperscript",(function(){return jm})),n.d(t,"faSurprise",(function(){return Em})),n.d(t,"faSwatchbook",(function(){return Om})),n.d(t,"faSwimmer",(function(){return Pm})),n.d(t,"faSwimmingPool",(function(){return Rm})),n.d(t,"faSynagogue",(function(){return Fm})),n.d(t,"faSync",(function(){return Im})),n.d(t,"faSyncAlt",(function(){return Wm})),n.d(t,"faSyringe",(function(){return Bm})),n.d(t,"faTable",(function(){return Um})),n.d(t,"faTableTennis",(function(){return qm})),n.d(t,"faTablet",(function(){return Gm})),n.d(t,"faTabletAlt",(function(){return Zm})),n.d(t,"faTablets",(function(){return Jm})),n.d(t,"faTachometerAlt",(function(){return $m})),n.d(t,"faTag",(function(){return Km})),n.d(t,"faTags",(function(){return Qm})),n.d(t,"faTape",(function(){return Xm})),n.d(t,"faTasks",(function(){return ep})),n.d(t,"faTaxi",(function(){return tp})),n.d(t,"faTeeth",(function(){return np})),n.d(t,"faTeethOpen",(function(){return rp})),n.d(t,"faTemperatureHigh",(function(){return ap})),n.d(t,"faTemperatureLow",(function(){return cp})),n.d(t,"faTenge",(function(){return ip})),n.d(t,"faTerminal",(function(){return op})),n.d(t,"faTextHeight",(function(){return sp})),n.d(t,"faTextWidth",(function(){return lp})),n.d(t,"faTh",(function(){return up})),n.d(t,"faThLarge",(function(){return fp})),n.d(t,"faThList",(function(){return dp})),n.d(t,"faTheaterMasks",(function(){return hp})),n.d(t,"faThermometer",(function(){return mp})),n.d(t,"faThermometerEmpty",(function(){return pp})),n.d(t,"faThermometerFull",(function(){return vp})),n.d(t,"faThermometerHalf",(function(){return _p})),n.d(t,"faThermometerQuarter",(function(){return Mp})),n.d(t,"faThermometerThreeQuarters",(function(){return yp})),n.d(t,"faThumbsDown",(function(){return bp})),n.d(t,"faThumbsUp",(function(){return Lp})),n.d(t,"faThumbtack",(function(){return gp})),n.d(t,"faTicketAlt",(function(){return zp})),n.d(t,"faTimes",(function(){return wp})),n.d(t,"faTimesCircle",(function(){return Hp})),n.d(t,"faTint",(function(){return kp})),n.d(t,"faTintSlash",(function(){return xp})),n.d(t,"faTired",(function(){return Sp})),n.d(t,"faToggleOff",(function(){return Cp})),n.d(t,"faToggleOn",(function(){return Yp})),n.d(t,"faToilet",(function(){return Tp})),n.d(t,"faToiletPaper",(function(){return Dp})),n.d(t,"faToiletPaperSlash",(function(){return Vp})),n.d(t,"faToolbox",(function(){return Np})),n.d(t,"faTools",(function(){return Ap})),n.d(t,"faTooth",(function(){return jp})),n.d(t,"faTorah",(function(){return Ep})),n.d(t,"faToriiGate",(function(){return Op})),n.d(t,"faTractor",(function(){return Pp})),n.d(t,"faTrademark",(function(){return Rp})),n.d(t,"faTrafficLight",(function(){return Fp})),n.d(t,"faTrailer",(function(){return Ip})),n.d(t,"faTrain",(function(){return Wp})),n.d(t,"faTram",(function(){return Bp})),n.d(t,"faTransgender",(function(){return Up})),n.d(t,"faTransgenderAlt",(function(){return qp})),n.d(t,"faTrash",(function(){return Gp})),n.d(t,"faTrashAlt",(function(){return Zp})),n.d(t,"faTrashRestore",(function(){return Jp})),n.d(t,"faTrashRestoreAlt",(function(){return $p})),n.d(t,"faTree",(function(){return Kp})),n.d(t,"faTrophy",(function(){return Qp})),n.d(t,"faTruck",(function(){return Xp})),n.d(t,"faTruckLoading",(function(){return ev})),n.d(t,"faTruckMonster",(function(){return tv})),n.d(t,"faTruckMoving",(function(){return nv})),n.d(t,"faTruckPickup",(function(){return rv})),n.d(t,"faTshirt",(function(){return av})),n.d(t,"faTty",(function(){return cv})),n.d(t,"faTv",(function(){return iv})),n.d(t,"faUmbrella",(function(){return ov})),n.d(t,"faUmbrellaBeach",(function(){return sv})),n.d(t,"faUnderline",(function(){return lv})),n.d(t,"faUndo",(function(){return uv})),n.d(t,"faUndoAlt",(function(){return fv})),n.d(t,"faUniversalAccess",(function(){return dv})),n.d(t,"faUniversity",(function(){return hv})),n.d(t,"faUnlink",(function(){return mv})),n.d(t,"faUnlock",(function(){return pv})),n.d(t,"faUnlockAlt",(function(){return vv})),n.d(t,"faUpload",(function(){return _v})),n.d(t,"faUser",(function(){return Mv})),n.d(t,"faUserAlt",(function(){return yv})),n.d(t,"faUserAltSlash",(function(){return bv})),n.d(t,"faUserAstronaut",(function(){return Lv})),n.d(t,"faUserCheck",(function(){return gv})),n.d(t,"faUserCircle",(function(){return zv})),n.d(t,"faUserClock",(function(){return wv})),n.d(t,"faUserCog",(function(){return Hv})),n.d(t,"faUserEdit",(function(){return kv})),n.d(t,"faUserFriends",(function(){return xv})),n.d(t,"faUserGraduate",(function(){return Sv})),n.d(t,"faUserInjured",(function(){return Cv})),n.d(t,"faUserLock",(function(){return Yv})),n.d(t,"faUserMd",(function(){return Tv})),n.d(t,"faUserMinus",(function(){return Dv})),n.d(t,"faUserNinja",(function(){return Vv})),n.d(t,"faUserNurse",(function(){return Nv})),n.d(t,"faUserPlus",(function(){return Av})),n.d(t,"faUserSecret",(function(){return jv})),n.d(t,"faUserShield",(function(){return Ev})),n.d(t,"faUserSlash",(function(){return Ov})),n.d(t,"faUserTag",(function(){return Pv})),n.d(t,"faUserTie",(function(){return Rv})),n.d(t,"faUserTimes",(function(){return Fv})),n.d(t,"faUsers",(function(){return Iv})),n.d(t,"faUsersCog",(function(){return Wv})),n.d(t,"faUsersSlash",(function(){return Bv})),n.d(t,"faUtensilSpoon",(function(){return Uv})),n.d(t,"faUtensils",(function(){return qv})),n.d(t,"faVectorSquare",(function(){return Gv})),n.d(t,"faVenus",(function(){return Zv})),n.d(t,"faVenusDouble",(function(){return Jv})),n.d(t,"faVenusMars",(function(){return $v})),n.d(t,"faVest",(function(){return Kv})),n.d(t,"faVestPatches",(function(){return Qv})),n.d(t,"faVial",(function(){return Xv})),n.d(t,"faVials",(function(){return e_})),n.d(t,"faVideo",(function(){return t_})),n.d(t,"faVideoSlash",(function(){return n_})),n.d(t,"faVihara",(function(){return r_})),n.d(t,"faVirus",(function(){return a_})),n.d(t,"faVirusSlash",(function(){return c_})),n.d(t,"faViruses",(function(){return i_})),n.d(t,"faVoicemail",(function(){return o_})),n.d(t,"faVolleyballBall",(function(){return s_})),n.d(t,"faVolumeDown",(function(){return l_})),n.d(t,"faVolumeMute",(function(){return u_})),n.d(t,"faVolumeOff",(function(){return f_})),n.d(t,"faVolumeUp",(function(){return d_})),n.d(t,"faVoteYea",(function(){return h_})),n.d(t,"faVrCardboard",(function(){return m_})),n.d(t,"faWalking",(function(){return p_})),n.d(t,"faWallet",(function(){return v_})),n.d(t,"faWarehouse",(function(){return __})),n.d(t,"faWater",(function(){return M_})),n.d(t,"faWaveSquare",(function(){return y_})),n.d(t,"faWeight",(function(){return b_})),n.d(t,"faWeightHanging",(function(){return L_})),n.d(t,"faWheelchair",(function(){return g_})),n.d(t,"faWifi",(function(){return z_})),n.d(t,"faWind",(function(){return w_})),n.d(t,"faWindowClose",(function(){return H_})),n.d(t,"faWindowMaximize",(function(){return k_})),n.d(t,"faWindowMinimize",(function(){return x_})),n.d(t,"faWindowRestore",(function(){return S_})),n.d(t,"faWineBottle",(function(){return C_})),n.d(t,"faWineGlass",(function(){return Y_})),n.d(t,"faWineGlassAlt",(function(){return T_})),n.d(t,"faWonSign",(function(){return D_})),n.d(t,"faWrench",(function(){return V_})),n.d(t,"faXRay",(function(){return N_})),n.d(t,"faYenSign",(function(){return A_})),n.d(t,"faYinYang",(function(){return j_})); +/*! + * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +var r="fas",a={prefix:"fas",iconName:"ad",icon:[512,512,[],"f641","M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"]},c={prefix:"fas",iconName:"address-book",icon:[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},i={prefix:"fas",iconName:"address-card",icon:[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},o={prefix:"fas",iconName:"adjust",icon:[512,512,[],"f042","M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"]},s={prefix:"fas",iconName:"air-freshener",icon:[384,512,[],"f5d0","M378.94 321.41L284.7 224h49.22c15.3 0 23.66-16.6 13.86-27.53L234.45 69.96c3.43-6.61 5.55-14 5.55-21.96 0-26.51-21.49-48-48-48s-48 21.49-48 48c0 7.96 2.12 15.35 5.55 21.96L36.22 196.47C26.42 207.4 34.78 224 50.08 224H99.3L5.06 321.41C-6.69 333.56 3.34 352 21.7 352H160v32H48c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h288c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16H224v-32h138.3c18.36 0 28.39-18.44 16.64-30.59zM192 31.98c8.85 0 16.02 7.17 16.02 16.02 0 8.84-7.17 16.02-16.02 16.02S175.98 56.84 175.98 48c0-8.85 7.17-16.02 16.02-16.02zM304 432v32H80v-32h224z"]},l={prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"]},u={prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},f={prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},d={prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"]},h={prefix:"fas",iconName:"allergies",icon:[448,512,[],"f461","M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},m={prefix:"fas",iconName:"ambulance",icon:[640,512,[],"f0f9","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},p={prefix:"fas",iconName:"american-sign-language-interpreting",icon:[640,512,[],"f2a3","M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"]},v={prefix:"fas",iconName:"anchor",icon:[576,512,[],"f13d","M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"]},_={prefix:"fas",iconName:"angle-double-down",icon:[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]},M={prefix:"fas",iconName:"angle-double-left",icon:[448,512,[],"f100","M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"]},y={prefix:"fas",iconName:"angle-double-right",icon:[448,512,[],"f101","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"]},b={prefix:"fas",iconName:"angle-double-up",icon:[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]},L={prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},g={prefix:"fas",iconName:"angle-left",icon:[256,512,[],"f104","M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"]},z={prefix:"fas",iconName:"angle-right",icon:[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"]},w={prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},H={prefix:"fas",iconName:"angry",icon:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"]},k={prefix:"fas",iconName:"ankh",icon:[320,512,[],"f644","M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"]},x={prefix:"fas",iconName:"apple-alt",icon:[448,512,[],"f5d1","M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"]},S={prefix:"fas",iconName:"archive",icon:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]},C={prefix:"fas",iconName:"archway",icon:[576,512,[],"f557","M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},Y={prefix:"fas",iconName:"arrow-alt-circle-down",icon:[512,512,[],"f358","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"]},T={prefix:"fas",iconName:"arrow-alt-circle-left",icon:[512,512,[],"f359","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"]},D={prefix:"fas",iconName:"arrow-alt-circle-right",icon:[512,512,[],"f35a","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"]},V={prefix:"fas",iconName:"arrow-alt-circle-up",icon:[512,512,[],"f35b","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"]},N={prefix:"fas",iconName:"arrow-circle-down",icon:[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]},A={prefix:"fas",iconName:"arrow-circle-left",icon:[512,512,[],"f0a8","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"]},j={prefix:"fas",iconName:"arrow-circle-right",icon:[512,512,[],"f0a9","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"]},E={prefix:"fas",iconName:"arrow-circle-up",icon:[512,512,[],"f0aa","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"]},O={prefix:"fas",iconName:"arrow-down",icon:[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"]},P={prefix:"fas",iconName:"arrow-left",icon:[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"]},R={prefix:"fas",iconName:"arrow-right",icon:[448,512,[],"f061","M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"]},F={prefix:"fas",iconName:"arrow-up",icon:[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"]},I={prefix:"fas",iconName:"arrows-alt",icon:[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"]},W={prefix:"fas",iconName:"arrows-alt-h",icon:[512,512,[],"f337","M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"]},B={prefix:"fas",iconName:"arrows-alt-v",icon:[256,512,[],"f338","M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"]},U={prefix:"fas",iconName:"assistive-listening-systems",icon:[512,512,[],"f2a2","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"]},q={prefix:"fas",iconName:"asterisk",icon:[512,512,[],"f069","M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"]},G={prefix:"fas",iconName:"at",icon:[512,512,[],"f1fa","M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"]},Z={prefix:"fas",iconName:"atlas",icon:[448,512,[],"f558","M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"]},J={prefix:"fas",iconName:"atom",icon:[448,512,[],"f5d2","M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"]},$={prefix:"fas",iconName:"audio-description",icon:[512,512,[],"f29e","M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"]},K={prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"]},Q={prefix:"fas",iconName:"baby",icon:[384,512,[],"f77c","M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"]},X={prefix:"fas",iconName:"baby-carriage",icon:[512,512,[],"f77d","M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"]},ee={prefix:"fas",iconName:"backspace",icon:[640,512,[],"f55a","M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"]},te={prefix:"fas",iconName:"backward",icon:[512,512,[],"f04a","M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"]},ne={prefix:"fas",iconName:"bacon",icon:[576,512,[],"f7e5","M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"]},re={prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z"]},ae={prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z"]},ce={prefix:"fas",iconName:"bahai",icon:[512,512,[],"f666","M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"]},ie={prefix:"fas",iconName:"balance-scale",icon:[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},oe={prefix:"fas",iconName:"balance-scale-left",icon:[640,512,[],"f515","M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"]},se={prefix:"fas",iconName:"balance-scale-right",icon:[640,512,[],"f516","M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"]},le={prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},ue={prefix:"fas",iconName:"band-aid",icon:[640,512,[],"f462","M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"]},fe={prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"]},de={prefix:"fas",iconName:"bars",icon:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]},he={prefix:"fas",iconName:"baseball-ball",icon:[496,512,[],"f433","M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"]},me={prefix:"fas",iconName:"basketball-ball",icon:[496,512,[],"f434","M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"]},pe={prefix:"fas",iconName:"bath",icon:[512,512,[],"f2cd","M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"]},ve={prefix:"fas",iconName:"battery-empty",icon:[640,512,[],"f244","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"]},_e={prefix:"fas",iconName:"battery-full",icon:[640,512,[],"f240","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"]},Me={prefix:"fas",iconName:"battery-half",icon:[640,512,[],"f242","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"]},ye={prefix:"fas",iconName:"battery-quarter",icon:[640,512,[],"f243","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"]},be={prefix:"fas",iconName:"battery-three-quarters",icon:[640,512,[],"f241","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"]},Le={prefix:"fas",iconName:"bed",icon:[640,512,[],"f236","M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"]},ge={prefix:"fas",iconName:"beer",icon:[448,512,[],"f0fc","M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"]},ze={prefix:"fas",iconName:"bell",icon:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"]},we={prefix:"fas",iconName:"bell-slash",icon:[640,512,[],"f1f6","M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"]},He={prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},ke={prefix:"fas",iconName:"bible",icon:[448,512,[],"f647","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},xe={prefix:"fas",iconName:"bicycle",icon:[640,512,[],"f206","M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"]},Se={prefix:"fas",iconName:"biking",icon:[640,512,[],"f84a","M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"]},Ce={prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"]},Ye={prefix:"fas",iconName:"biohazard",icon:[576,512,[],"f780","M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},Te={prefix:"fas",iconName:"birthday-cake",icon:[448,512,[],"f1fd","M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"]},De={prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"]},Ve={prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Ne={prefix:"fas",iconName:"blind",icon:[384,512,[],"f29d","M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"]},Ae={prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"]},je={prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"]},Ee={prefix:"fas",iconName:"bolt",icon:[320,512,[],"f0e7","M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]},Oe={prefix:"fas",iconName:"bomb",icon:[512,512,[],"f1e2","M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"]},Pe={prefix:"fas",iconName:"bone",icon:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"]},Re={prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"]},Fe={prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},Ie={prefix:"fas",iconName:"book-dead",icon:[448,512,[],"f6b7","M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"]},We={prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"]},Be={prefix:"fas",iconName:"book-open",icon:[576,512,[],"f518","M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"]},Ue={prefix:"fas",iconName:"book-reader",icon:[512,512,[],"f5da","M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"]},qe={prefix:"fas",iconName:"bookmark",icon:[384,512,[],"f02e","M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"]},Ge={prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"]},Ze={prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Je={prefix:"fas",iconName:"border-style",icon:[448,512,[],"f853","M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},$e={prefix:"fas",iconName:"bowling-ball",icon:[496,512,[],"f436","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Ke={prefix:"fas",iconName:"box",icon:[512,512,[],"f466","M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"]},Qe={prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"]},Xe={prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"]},et={prefix:"fas",iconName:"boxes",icon:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"]},tt={prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},nt={prefix:"fas",iconName:"brain",icon:[576,512,[],"f5dc","M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"]},rt={prefix:"fas",iconName:"bread-slice",icon:[576,512,[],"f7ec","M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"]},at={prefix:"fas",iconName:"briefcase",icon:[512,512,[],"f0b1","M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"]},ct={prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"]},it={prefix:"fas",iconName:"broadcast-tower",icon:[640,512,[],"f519","M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"]},ot={prefix:"fas",iconName:"broom",icon:[640,512,[],"f51a","M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"]},st={prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"]},lt={prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"]},ut={prefix:"fas",iconName:"building",icon:[448,512,[],"f1ad","M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"]},ft={prefix:"fas",iconName:"bullhorn",icon:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"]},dt={prefix:"fas",iconName:"bullseye",icon:[496,512,[],"f140","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"]},ht={prefix:"fas",iconName:"burn",icon:[384,512,[],"f46a","M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"]},mt={prefix:"fas",iconName:"bus",icon:[512,512,[],"f207","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},pt={prefix:"fas",iconName:"bus-alt",icon:[512,512,[],"f55e","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},vt={prefix:"fas",iconName:"business-time",icon:[640,512,[],"f64a","M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"]},_t={prefix:"fas",iconName:"calculator",icon:[448,512,[],"f1ec","M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"]},Mt={prefix:"fas",iconName:"calendar",icon:[448,512,[],"f133","M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"]},yt={prefix:"fas",iconName:"calendar-alt",icon:[448,512,[],"f073","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},bt={prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"]},Lt={prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},gt={prefix:"fas",iconName:"calendar-minus",icon:[448,512,[],"f272","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"]},zt={prefix:"fas",iconName:"calendar-plus",icon:[448,512,[],"f271","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"]},wt={prefix:"fas",iconName:"calendar-times",icon:[448,512,[],"f273","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"]},Ht={prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},kt={prefix:"fas",iconName:"camera",icon:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"]},xt={prefix:"fas",iconName:"camera-retro",icon:[512,512,[],"f083","M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"]},St={prefix:"fas",iconName:"campground",icon:[640,512,[],"f6bb","M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"]},Ct={prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"]},Yt={prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"]},Tt={prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"]},Dt={prefix:"fas",iconName:"car",icon:[512,512,[],"f1b9","M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},Vt={prefix:"fas",iconName:"car-alt",icon:[480,512,[],"f5de","M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},Nt={prefix:"fas",iconName:"car-battery",icon:[512,512,[],"f5df","M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"]},At={prefix:"fas",iconName:"car-crash",icon:[640,512,[],"f5e1","M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"]},jt={prefix:"fas",iconName:"car-side",icon:[640,512,[],"f5e4","M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},Et={prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"]},Ot={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"]},Pt={prefix:"fas",iconName:"caret-left",icon:[192,512,[],"f0d9","M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"]},Rt={prefix:"fas",iconName:"caret-right",icon:[192,512,[],"f0da","M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"]},Ft={prefix:"fas",iconName:"caret-square-down",icon:[448,512,[],"f150","M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"]},It={prefix:"fas",iconName:"caret-square-left",icon:[448,512,[],"f191","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"]},Wt={prefix:"fas",iconName:"caret-square-right",icon:[448,512,[],"f152","M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"]},Bt={prefix:"fas",iconName:"caret-square-up",icon:[448,512,[],"f151","M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"]},Ut={prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"]},qt={prefix:"fas",iconName:"carrot",icon:[512,512,[],"f787","M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"]},Gt={prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"]},Zt={prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"]},Jt={prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"]},$t={prefix:"fas",iconName:"cat",icon:[512,512,[],"f6be","M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},Kt={prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"]},Qt={prefix:"fas",iconName:"chair",icon:[448,512,[],"f6c0","M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"]},Xt={prefix:"fas",iconName:"chalkboard",icon:[640,512,[],"f51b","M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},en={prefix:"fas",iconName:"chalkboard-teacher",icon:[640,512,[],"f51c","M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"]},tn={prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"]},nn={prefix:"fas",iconName:"chart-area",icon:[512,512,[],"f1fe","M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"]},rn={prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},an={prefix:"fas",iconName:"chart-line",icon:[512,512,[],"f201","M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"]},cn={prefix:"fas",iconName:"chart-pie",icon:[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]},on={prefix:"fas",iconName:"check",icon:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]},sn={prefix:"fas",iconName:"check-circle",icon:[512,512,[],"f058","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"]},ln={prefix:"fas",iconName:"check-double",icon:[512,512,[],"f560","M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"]},un={prefix:"fas",iconName:"check-square",icon:[448,512,[],"f14a","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"]},fn={prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"]},dn={prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"]},hn={prefix:"fas",iconName:"chess-bishop",icon:[320,512,[],"f43a","M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},mn={prefix:"fas",iconName:"chess-board",icon:[512,512,[],"f43c","M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"]},pn={prefix:"fas",iconName:"chess-king",icon:[448,512,[],"f43f","M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"]},vn={prefix:"fas",iconName:"chess-knight",icon:[384,512,[],"f441","M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},_n={prefix:"fas",iconName:"chess-pawn",icon:[320,512,[],"f443","M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},Mn={prefix:"fas",iconName:"chess-queen",icon:[512,512,[],"f445","M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"]},yn={prefix:"fas",iconName:"chess-rook",icon:[384,512,[],"f447","M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},bn={prefix:"fas",iconName:"chevron-circle-down",icon:[512,512,[],"f13a","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"]},Ln={prefix:"fas",iconName:"chevron-circle-left",icon:[512,512,[],"f137","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"]},gn={prefix:"fas",iconName:"chevron-circle-right",icon:[512,512,[],"f138","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"]},zn={prefix:"fas",iconName:"chevron-circle-up",icon:[512,512,[],"f139","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"]},wn={prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"]},Hn={prefix:"fas",iconName:"chevron-left",icon:[320,512,[],"f053","M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"]},kn={prefix:"fas",iconName:"chevron-right",icon:[320,512,[],"f054","M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"]},xn={prefix:"fas",iconName:"chevron-up",icon:[448,512,[],"f077","M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"]},Sn={prefix:"fas",iconName:"child",icon:[384,512,[],"f1ae","M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"]},Cn={prefix:"fas",iconName:"church",icon:[640,512,[],"f51d","M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"]},Yn={prefix:"fas",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]},Tn={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"]},Dn={prefix:"fas",iconName:"city",icon:[640,512,[],"f64f","M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"]},Vn={prefix:"fas",iconName:"clinic-medical",icon:[576,512,[],"f7f2","M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"]},Nn={prefix:"fas",iconName:"clipboard",icon:[384,512,[],"f328","M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"]},An={prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"]},jn={prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},En={prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"]},On={prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"]},Pn={prefix:"fas",iconName:"closed-captioning",icon:[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"]},Rn={prefix:"fas",iconName:"cloud",icon:[640,512,[],"f0c2","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"]},Fn={prefix:"fas",iconName:"cloud-download-alt",icon:[640,512,[],"f381","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"]},In={prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"]},Wn={prefix:"fas",iconName:"cloud-moon",icon:[576,512,[],"f6c3","M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"]},Bn={prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},Un={prefix:"fas",iconName:"cloud-rain",icon:[512,512,[],"f73d","M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"]},qn={prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"]},Gn={prefix:"fas",iconName:"cloud-sun",icon:[640,512,[],"f6c4","M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"]},Zn={prefix:"fas",iconName:"cloud-sun-rain",icon:[576,512,[],"f743","M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},Jn={prefix:"fas",iconName:"cloud-upload-alt",icon:[640,512,[],"f382","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"]},$n={prefix:"fas",iconName:"cocktail",icon:[576,512,[],"f561","M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"]},Kn={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"]},Qn={prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},Xn={prefix:"fas",iconName:"coffee",icon:[640,512,[],"f0f4","M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"]},er={prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},tr={prefix:"fas",iconName:"cogs",icon:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"]},nr={prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"]},rr={prefix:"fas",iconName:"columns",icon:[512,512,[],"f0db","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"]},ar={prefix:"fas",iconName:"comment",icon:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"]},cr={prefix:"fas",iconName:"comment-alt",icon:[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"]},ir={prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"]},or={prefix:"fas",iconName:"comment-dots",icon:[512,512,[],"f4ad","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},sr={prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"]},lr={prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},ur={prefix:"fas",iconName:"comments",icon:[576,512,[],"f086","M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"]},fr={prefix:"fas",iconName:"comments-dollar",icon:[576,512,[],"f653","M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"]},dr={prefix:"fas",iconName:"compact-disc",icon:[496,512,[],"f51f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},hr={prefix:"fas",iconName:"compass",icon:[496,512,[],"f14e","M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"]},mr={prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},pr={prefix:"fas",iconName:"compress-alt",icon:[448,512,[],"f422","M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"]},vr={prefix:"fas",iconName:"compress-arrows-alt",icon:[512,512,[],"f78c","M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"]},_r={prefix:"fas",iconName:"concierge-bell",icon:[512,512,[],"f562","M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},Mr={prefix:"fas",iconName:"cookie",icon:[512,512,[],"f563","M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},yr={prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},br={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},Lr={prefix:"fas",iconName:"copyright",icon:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"]},gr={prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"]},zr={prefix:"fas",iconName:"credit-card",icon:[576,512,[],"f09d","M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"]},wr={prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},Hr={prefix:"fas",iconName:"crop-alt",icon:[512,512,[],"f565","M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"]},kr={prefix:"fas",iconName:"cross",icon:[384,512,[],"f654","M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},xr={prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"]},Sr={prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},Cr={prefix:"fas",iconName:"crown",icon:[640,512,[],"f521","M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"]},Yr={prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"]},Tr={prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]},Dr={prefix:"fas",iconName:"cubes",icon:[512,512,[],"f1b3","M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"]},Vr={prefix:"fas",iconName:"cut",icon:[448,512,[],"f0c4","M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},Nr={prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"]},Ar={prefix:"fas",iconName:"deaf",icon:[512,512,[],"f2a4","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"]},jr={prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"]},Er={prefix:"fas",iconName:"desktop",icon:[576,512,[],"f108","M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"]},Or={prefix:"fas",iconName:"dharmachakra",icon:[512,512,[],"f655","M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"]},Pr={prefix:"fas",iconName:"diagnoses",icon:[640,512,[],"f470","M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},Rr={prefix:"fas",iconName:"dice",icon:[640,512,[],"f522","M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},Fr={prefix:"fas",iconName:"dice-d20",icon:[480,512,[],"f6cf","M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"]},Ir={prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"]},Wr={prefix:"fas",iconName:"dice-five",icon:[448,512,[],"f523","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Br={prefix:"fas",iconName:"dice-four",icon:[448,512,[],"f524","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Ur={prefix:"fas",iconName:"dice-one",icon:[448,512,[],"f525","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},qr={prefix:"fas",iconName:"dice-six",icon:[448,512,[],"f526","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Gr={prefix:"fas",iconName:"dice-three",icon:[448,512,[],"f527","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Zr={prefix:"fas",iconName:"dice-two",icon:[448,512,[],"f528","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Jr={prefix:"fas",iconName:"digital-tachograph",icon:[640,512,[],"f566","M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"]},$r={prefix:"fas",iconName:"directions",icon:[512,512,[],"f5eb","M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"]},Kr={prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"]},Qr={prefix:"fas",iconName:"divide",icon:[448,512,[],"f529","M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},Xr={prefix:"fas",iconName:"dizzy",icon:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"]},ea={prefix:"fas",iconName:"dna",icon:[448,512,[],"f471","M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"]},ta={prefix:"fas",iconName:"dog",icon:[576,512,[],"f6d3","M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"]},na={prefix:"fas",iconName:"dollar-sign",icon:[288,512,[],"f155","M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"]},ra={prefix:"fas",iconName:"dolly",icon:[576,512,[],"f472","M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},aa={prefix:"fas",iconName:"dolly-flatbed",icon:[640,512,[],"f474","M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},ca={prefix:"fas",iconName:"donate",icon:[512,512,[],"f4b9","M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"]},ia={prefix:"fas",iconName:"door-closed",icon:[640,512,[],"f52a","M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"]},oa={prefix:"fas",iconName:"door-open",icon:[640,512,[],"f52b","M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"]},sa={prefix:"fas",iconName:"dot-circle",icon:[512,512,[],"f192","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"]},la={prefix:"fas",iconName:"dove",icon:[512,512,[],"f4ba","M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},ua={prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},fa={prefix:"fas",iconName:"drafting-compass",icon:[512,512,[],"f568","M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"]},da={prefix:"fas",iconName:"dragon",icon:[640,512,[],"f6d5","M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"]},ha={prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"]},ma={prefix:"fas",iconName:"drum",icon:[512,512,[],"f569","M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"]},pa={prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"]},va={prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"]},_a={prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]},Ma={prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},ya={prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"]},ba={prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"]},La={prefix:"fas",iconName:"edit",icon:[576,512,[],"f044","M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"]},ga={prefix:"fas",iconName:"egg",icon:[384,512,[],"f7fb","M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"]},za={prefix:"fas",iconName:"eject",icon:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]},wa={prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},Ha={prefix:"fas",iconName:"ellipsis-v",icon:[192,512,[],"f142","M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"]},ka={prefix:"fas",iconName:"envelope",icon:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]},xa={prefix:"fas",iconName:"envelope-open",icon:[512,512,[],"f2b6","M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"]},Sa={prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"]},Ca={prefix:"fas",iconName:"envelope-square",icon:[448,512,[],"f199","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"]},Ya={prefix:"fas",iconName:"equals",icon:[448,512,[],"f52c","M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},Ta={prefix:"fas",iconName:"eraser",icon:[512,512,[],"f12d","M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"]},Da={prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},Va={prefix:"fas",iconName:"euro-sign",icon:[320,512,[],"f153","M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"]},Na={prefix:"fas",iconName:"exchange-alt",icon:[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]},Aa={prefix:"fas",iconName:"exclamation",icon:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"]},ja={prefix:"fas",iconName:"exclamation-circle",icon:[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},Ea={prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},Oa={prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"]},Pa={prefix:"fas",iconName:"expand-alt",icon:[448,512,[],"f424","M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"]},Ra={prefix:"fas",iconName:"expand-arrows-alt",icon:[448,512,[],"f31e","M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"]},Fa={prefix:"fas",iconName:"external-link-alt",icon:[512,512,[],"f35d","M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"]},Ia={prefix:"fas",iconName:"external-link-square-alt",icon:[448,512,[],"f360","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"]},Wa={prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},Ba={prefix:"fas",iconName:"eye-dropper",icon:[512,512,[],"f1fb","M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"]},Ua={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},qa={prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},Ga={prefix:"fas",iconName:"fast-backward",icon:[512,512,[],"f049","M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"]},Za={prefix:"fas",iconName:"fast-forward",icon:[512,512,[],"f050","M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"]},Ja={prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"]},$a={prefix:"fas",iconName:"fax",icon:[512,512,[],"f1ac","M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"]},Ka={prefix:"fas",iconName:"feather",icon:[512,512,[],"f52d","M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"]},Qa={prefix:"fas",iconName:"feather-alt",icon:[512,512,[],"f56b","M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"]},Xa={prefix:"fas",iconName:"female",icon:[256,512,[],"f182","M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"]},ec={prefix:"fas",iconName:"fighter-jet",icon:[640,512,[],"f0fb","M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"]},tc={prefix:"fas",iconName:"file",icon:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},nc={prefix:"fas",iconName:"file-alt",icon:[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},rc={prefix:"fas",iconName:"file-archive",icon:[384,512,[],"f1c6","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"]},ac={prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},cc={prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"]},ic={prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},oc={prefix:"fas",iconName:"file-csv",icon:[384,512,[],"f6dd","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},sc={prefix:"fas",iconName:"file-download",icon:[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},lc={prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},uc={prefix:"fas",iconName:"file-export",icon:[576,512,[],"f56e","M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"]},fc={prefix:"fas",iconName:"file-image",icon:[384,512,[],"f1c5","M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"]},dc={prefix:"fas",iconName:"file-import",icon:[512,512,[],"f56f","M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"]},hc={prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"]},mc={prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"]},pc={prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"]},vc={prefix:"fas",iconName:"file-medical-alt",icon:[448,512,[],"f478","M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},_c={prefix:"fas",iconName:"file-pdf",icon:[384,512,[],"f1c1","M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"]},Mc={prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"]},yc={prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},bc={prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"]},Lc={prefix:"fas",iconName:"file-upload",icon:[384,512,[],"f574","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},gc={prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"]},zc={prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},wc={prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"]},Hc={prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"]},kc={prefix:"fas",iconName:"film",icon:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},xc={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"]},Sc={prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"]},Cc={prefix:"fas",iconName:"fire",icon:[384,512,[],"f06d","M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"]},Yc={prefix:"fas",iconName:"fire-alt",icon:[448,512,[],"f7e4","M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"]},Tc={prefix:"fas",iconName:"fire-extinguisher",icon:[448,512,[],"f134","M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"]},Dc={prefix:"fas",iconName:"first-aid",icon:[576,512,[],"f479","M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},Vc={prefix:"fas",iconName:"fish",icon:[576,512,[],"f578","M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},Nc={prefix:"fas",iconName:"fist-raised",icon:[384,512,[],"f6de","M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"]},Ac={prefix:"fas",iconName:"flag",icon:[512,512,[],"f024","M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"]},jc={prefix:"fas",iconName:"flag-checkered",icon:[512,512,[],"f11e","M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"]},Ec={prefix:"fas",iconName:"flag-usa",icon:[512,512,[],"f74d","M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"]},Oc={prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"]},Pc={prefix:"fas",iconName:"flushed",icon:[496,512,[],"f579","M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"]},Rc={prefix:"fas",iconName:"folder",icon:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"]},Fc={prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"]},Ic={prefix:"fas",iconName:"folder-open",icon:[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"]},Wc={prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"]},Bc={prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"]},Uc={prefix:"fas",iconName:"font-awesome-logo-full",icon:[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"]},qc={prefix:"fas",iconName:"football-ball",icon:[496,512,[],"f44e","M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"]},Gc={prefix:"fas",iconName:"forward",icon:[512,512,[],"f04e","M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"]},Zc={prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},Jc={prefix:"fas",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"]},$c={prefix:"fas",iconName:"frown-open",icon:[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Kc={prefix:"fas",iconName:"funnel-dollar",icon:[640,512,[],"f662","M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"]},Qc={prefix:"fas",iconName:"futbol",icon:[512,512,[],"f1e3","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"]},Xc={prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"]},ei={prefix:"fas",iconName:"gas-pump",icon:[512,512,[],"f52f","M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"]},ti={prefix:"fas",iconName:"gavel",icon:[512,512,[],"f0e3","M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"]},ni={prefix:"fas",iconName:"gem",icon:[576,512,[],"f3a5","M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"]},ri={prefix:"fas",iconName:"genderless",icon:[288,512,[],"f22d","M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"]},ai={prefix:"fas",iconName:"ghost",icon:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},ci={prefix:"fas",iconName:"gift",icon:[512,512,[],"f06b","M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"]},ii={prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"]},oi={prefix:"fas",iconName:"glass-cheers",icon:[640,512,[],"f79f","M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"]},si={prefix:"fas",iconName:"glass-martini",icon:[512,512,[],"f000","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"]},li={prefix:"fas",iconName:"glass-martini-alt",icon:[512,512,[],"f57b","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"]},ui={prefix:"fas",iconName:"glass-whiskey",icon:[512,512,[],"f7a0","M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"]},fi={prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"]},di={prefix:"fas",iconName:"globe",icon:[496,512,[],"f0ac","M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"]},hi={prefix:"fas",iconName:"globe-africa",icon:[496,512,[],"f57c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"]},mi={prefix:"fas",iconName:"globe-americas",icon:[496,512,[],"f57d","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"]},pi={prefix:"fas",iconName:"globe-asia",icon:[496,512,[],"f57e","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"]},vi={prefix:"fas",iconName:"globe-europe",icon:[496,512,[],"f7a2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"]},_i={prefix:"fas",iconName:"golf-ball",icon:[416,512,[],"f450","M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"]},Mi={prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]},yi={prefix:"fas",iconName:"graduation-cap",icon:[640,512,[],"f19d","M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"]},bi={prefix:"fas",iconName:"greater-than",icon:[384,512,[],"f531","M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"]},Li={prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},gi={prefix:"fas",iconName:"grimace",icon:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"]},zi={prefix:"fas",iconName:"grin",icon:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},wi={prefix:"fas",iconName:"grin-alt",icon:[496,512,[],"f581","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},Hi={prefix:"fas",iconName:"grin-beam",icon:[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},ki={prefix:"fas",iconName:"grin-beam-sweat",icon:[504,512,[],"f583","M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},xi={prefix:"fas",iconName:"grin-hearts",icon:[496,512,[],"f584","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"]},Si={prefix:"fas",iconName:"grin-squint",icon:[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},Ci={prefix:"fas",iconName:"grin-squint-tears",icon:[512,512,[],"f586","M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"]},Yi={prefix:"fas",iconName:"grin-stars",icon:[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"]},Ti={prefix:"fas",iconName:"grin-tears",icon:[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},Di={prefix:"fas",iconName:"grin-tongue",icon:[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},Vi={prefix:"fas",iconName:"grin-tongue-squint",icon:[496,512,[],"f58a","M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"]},Ni={prefix:"fas",iconName:"grin-tongue-wink",icon:[496,512,[],"f58b","M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},Ai={prefix:"fas",iconName:"grin-wink",icon:[496,512,[],"f58c","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"]},ji={prefix:"fas",iconName:"grip-horizontal",icon:[448,512,[],"f58d","M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},Ei={prefix:"fas",iconName:"grip-lines",icon:[512,512,[],"f7a4","M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},Oi={prefix:"fas",iconName:"grip-lines-vertical",icon:[256,512,[],"f7a5","M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"]},Pi={prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},Ri={prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"]},Fi={prefix:"fas",iconName:"h-square",icon:[448,512,[],"f0fd","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"]},Ii={prefix:"fas",iconName:"hamburger",icon:[512,512,[],"f805","M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"]},Wi={prefix:"fas",iconName:"hammer",icon:[576,512,[],"f6e3","M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"]},Bi={prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},Ui={prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},qi={prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},Gi={prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"]},Zi={prefix:"fas",iconName:"hand-holding-usd",icon:[576,512,[],"f4c0","M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"]},Ji={prefix:"fas",iconName:"hand-holding-water",icon:[576,512,[],"f4c1","M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},$i={prefix:"fas",iconName:"hand-lizard",icon:[576,512,[],"f258","M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"]},Ki={prefix:"fas",iconName:"hand-middle-finger",icon:[512,512,[],"f806","M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"]},Qi={prefix:"fas",iconName:"hand-paper",icon:[448,512,[],"f256","M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"]},Xi={prefix:"fas",iconName:"hand-peace",icon:[448,512,[],"f25b","M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"]},eo={prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},to={prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"]},no={prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},ro={prefix:"fas",iconName:"hand-point-up",icon:[384,512,[],"f0a6","M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"]},ao={prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"]},co={prefix:"fas",iconName:"hand-rock",icon:[512,512,[],"f255","M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"]},io={prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"]},oo={prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"]},so={prefix:"fas",iconName:"hand-spock",icon:[512,512,[],"f259","M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"]},lo={prefix:"fas",iconName:"hands",icon:[640,512,[],"f4c2","M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"]},uo={prefix:"fas",iconName:"hands-helping",icon:[640,512,[],"f4c4","M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"]},fo={prefix:"fas",iconName:"hands-wash",icon:[576,512,[],"e05e","M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"]},ho={prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"]},mo={prefix:"fas",iconName:"handshake-alt-slash",icon:[640,512,[],"e05f","M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"]},po={prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"]},vo={prefix:"fas",iconName:"hanukiah",icon:[640,512,[],"f6e6","M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"]},_o={prefix:"fas",iconName:"hard-hat",icon:[512,512,[],"f807","M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},Mo={prefix:"fas",iconName:"hashtag",icon:[448,512,[],"f292","M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"]},yo={prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"]},bo={prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"]},Lo={prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"]},go={prefix:"fas",iconName:"hdd",icon:[576,512,[],"f0a0","M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},zo={prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"]},wo={prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"]},Ho={prefix:"fas",iconName:"head-side-mask",icon:[512,512,[],"e063","M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"]},ko={prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"]},xo={prefix:"fas",iconName:"heading",icon:[512,512,[],"f1dc","M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"]},So={prefix:"fas",iconName:"headphones",icon:[512,512,[],"f025","M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"]},Co={prefix:"fas",iconName:"headphones-alt",icon:[512,512,[],"f58f","M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"]},Yo={prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"]},To={prefix:"fas",iconName:"heart",icon:[512,512,[],"f004","M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"]},Do={prefix:"fas",iconName:"heart-broken",icon:[512,512,[],"f7a9","M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"]},Vo={prefix:"fas",iconName:"heartbeat",icon:[512,512,[],"f21e","M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"]},No={prefix:"fas",iconName:"helicopter",icon:[640,512,[],"f533","M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"]},Ao={prefix:"fas",iconName:"highlighter",icon:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"]},jo={prefix:"fas",iconName:"hiking",icon:[384,512,[],"f6ec","M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"]},Eo={prefix:"fas",iconName:"hippo",icon:[640,512,[],"f6ed","M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},Oo={prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},Po={prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"]},Ro={prefix:"fas",iconName:"holly-berry",icon:[448,512,[],"f7aa","M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"]},Fo={prefix:"fas",iconName:"home",icon:[576,512,[],"f015","M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"]},Io={prefix:"fas",iconName:"horse",icon:[576,512,[],"f6f0","M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},Wo={prefix:"fas",iconName:"horse-head",icon:[512,512,[],"f7ab","M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"]},Bo={prefix:"fas",iconName:"hospital",icon:[448,512,[],"f0f8","M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"]},Uo={prefix:"fas",iconName:"hospital-alt",icon:[576,512,[],"f47d","M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},qo={prefix:"fas",iconName:"hospital-symbol",icon:[512,512,[],"f47e","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"]},Go={prefix:"fas",iconName:"hospital-user",icon:[640,512,[],"f80d","M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"]},Zo={prefix:"fas",iconName:"hot-tub",icon:[512,512,[],"f593","M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"]},Jo={prefix:"fas",iconName:"hotdog",icon:[512,512,[],"f80f","M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"]},$o={prefix:"fas",iconName:"hotel",icon:[576,512,[],"f594","M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},Ko={prefix:"fas",iconName:"hourglass",icon:[384,512,[],"f254","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"]},Qo={prefix:"fas",iconName:"hourglass-end",icon:[384,512,[],"f253","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"]},Xo={prefix:"fas",iconName:"hourglass-half",icon:[384,512,[],"f252","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"]},es={prefix:"fas",iconName:"hourglass-start",icon:[384,512,[],"f251","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"]},ts={prefix:"fas",iconName:"house-damage",icon:[576,512,[],"f6f1","M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"]},ns={prefix:"fas",iconName:"house-user",icon:[576,512,[],"e065","M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"]},rs={prefix:"fas",iconName:"hryvnia",icon:[384,512,[],"f6f2","M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"]},as={prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"]},cs={prefix:"fas",iconName:"ice-cream",icon:[448,512,[],"f810","M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"]},is={prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"]},os={prefix:"fas",iconName:"icons",icon:[512,512,[],"f86d","M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"]},ss={prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},ls={prefix:"fas",iconName:"id-card",icon:[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"]},us={prefix:"fas",iconName:"id-card-alt",icon:[576,512,[],"f47f","M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"]},fs={prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"]},ds={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]},hs={prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"]},ms={prefix:"fas",iconName:"inbox",icon:[576,512,[],"f01c","M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"]},ps={prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},vs={prefix:"fas",iconName:"industry",icon:[512,512,[],"f275","M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"]},_s={prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},Ms={prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"]},ys={prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},bs={prefix:"fas",iconName:"italic",icon:[320,512,[],"f033","M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"]},Ls={prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"]},gs={prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"]},zs={prefix:"fas",iconName:"journal-whills",icon:[448,512,[],"f66a","M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"]},ws={prefix:"fas",iconName:"kaaba",icon:[576,512,[],"f66b","M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"]},Hs={prefix:"fas",iconName:"key",icon:[512,512,[],"f084","M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"]},ks={prefix:"fas",iconName:"keyboard",icon:[576,512,[],"f11c","M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},xs={prefix:"fas",iconName:"khanda",icon:[512,512,[],"f66d","M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"]},Ss={prefix:"fas",iconName:"kiss",icon:[496,512,[],"f596","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Cs={prefix:"fas",iconName:"kiss-beam",icon:[496,512,[],"f597","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"]},Ys={prefix:"fas",iconName:"kiss-wink-heart",icon:[504,512,[],"f598","M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"]},Ts={prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"]},Ds={prefix:"fas",iconName:"landmark",icon:[512,512,[],"f66f","M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},Vs={prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"]},Ns={prefix:"fas",iconName:"laptop",icon:[640,512,[],"f109","M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},As={prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},js={prefix:"fas",iconName:"laptop-house",icon:[640,512,[],"e066","M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"]},Es={prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"]},Os={prefix:"fas",iconName:"laugh",icon:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"]},Ps={prefix:"fas",iconName:"laugh-beam",icon:[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},Rs={prefix:"fas",iconName:"laugh-squint",icon:[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},Fs={prefix:"fas",iconName:"laugh-wink",icon:[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},Is={prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},Ws={prefix:"fas",iconName:"leaf",icon:[576,512,[],"f06c","M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"]},Bs={prefix:"fas",iconName:"lemon",icon:[512,512,[],"f094","M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"]},Us={prefix:"fas",iconName:"less-than",icon:[384,512,[],"f536","M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"]},qs={prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},Gs={prefix:"fas",iconName:"level-down-alt",icon:[320,512,[],"f3be","M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"]},Zs={prefix:"fas",iconName:"level-up-alt",icon:[320,512,[],"f3bf","M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"]},Js={prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]},$s={prefix:"fas",iconName:"lightbulb",icon:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},Ks={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},Qs={prefix:"fas",iconName:"lira-sign",icon:[384,512,[],"f195","M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"]},Xs={prefix:"fas",iconName:"list",icon:[512,512,[],"f03a","M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},el={prefix:"fas",iconName:"list-alt",icon:[512,512,[],"f022","M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"]},tl={prefix:"fas",iconName:"list-ol",icon:[512,512,[],"f0cb","M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]},nl={prefix:"fas",iconName:"list-ul",icon:[512,512,[],"f0ca","M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},rl={prefix:"fas",iconName:"location-arrow",icon:[512,512,[],"f124","M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"]},al={prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},cl={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"]},il={prefix:"fas",iconName:"long-arrow-alt-down",icon:[256,512,[],"f309","M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"]},ol={prefix:"fas",iconName:"long-arrow-alt-left",icon:[448,512,[],"f30a","M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"]},sl={prefix:"fas",iconName:"long-arrow-alt-right",icon:[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"]},ll={prefix:"fas",iconName:"long-arrow-alt-up",icon:[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"]},ul={prefix:"fas",iconName:"low-vision",icon:[576,512,[],"f2a8","M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"]},fl={prefix:"fas",iconName:"luggage-cart",icon:[640,512,[],"f59d","M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"]},dl={prefix:"fas",iconName:"lungs",icon:[640,512,[],"f604","M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"]},hl={prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"]},ml={prefix:"fas",iconName:"magic",icon:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"]},pl={prefix:"fas",iconName:"magnet",icon:[512,512,[],"f076","M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"]},vl={prefix:"fas",iconName:"mail-bulk",icon:[576,512,[],"f674","M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"]},_l={prefix:"fas",iconName:"male",icon:[192,512,[],"f183","M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"]},Ml={prefix:"fas",iconName:"map",icon:[576,512,[],"f279","M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"]},yl={prefix:"fas",iconName:"map-marked",icon:[576,512,[],"f59f","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},bl={prefix:"fas",iconName:"map-marked-alt",icon:[576,512,[],"f5a0","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},Ll={prefix:"fas",iconName:"map-marker",icon:[384,512,[],"f041","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"]},gl={prefix:"fas",iconName:"map-marker-alt",icon:[384,512,[],"f3c5","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"]},zl={prefix:"fas",iconName:"map-pin",icon:[288,512,[],"f276","M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"]},wl={prefix:"fas",iconName:"map-signs",icon:[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]},Hl={prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"]},kl={prefix:"fas",iconName:"mars",icon:[384,512,[],"f222","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},xl={prefix:"fas",iconName:"mars-double",icon:[512,512,[],"f227","M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"]},Sl={prefix:"fas",iconName:"mars-stroke",icon:[384,512,[],"f229","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},Cl={prefix:"fas",iconName:"mars-stroke-h",icon:[480,512,[],"f22b","M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},Yl={prefix:"fas",iconName:"mars-stroke-v",icon:[288,512,[],"f22a","M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},Tl={prefix:"fas",iconName:"mask",icon:[640,512,[],"f6fa","M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"]},Dl={prefix:"fas",iconName:"medal",icon:[512,512,[],"f5a2","M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"]},Vl={prefix:"fas",iconName:"medkit",icon:[512,512,[],"f0fa","M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"]},Nl={prefix:"fas",iconName:"meh",icon:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Al={prefix:"fas",iconName:"meh-blank",icon:[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},jl={prefix:"fas",iconName:"meh-rolling-eyes",icon:[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"]},El={prefix:"fas",iconName:"memory",icon:[640,512,[],"f538","M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"]},Ol={prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"]},Pl={prefix:"fas",iconName:"mercury",icon:[288,512,[],"f223","M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},Rl={prefix:"fas",iconName:"meteor",icon:[512,512,[],"f753","M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"]},Fl={prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]},Il={prefix:"fas",iconName:"microphone",icon:[352,512,[],"f130","M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"]},Wl={prefix:"fas",iconName:"microphone-alt",icon:[352,512,[],"f3c9","M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"]},Bl={prefix:"fas",iconName:"microphone-alt-slash",icon:[640,512,[],"f539","M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},Ul={prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},ql={prefix:"fas",iconName:"microscope",icon:[512,512,[],"f610","M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"]},Gl={prefix:"fas",iconName:"minus",icon:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},Zl={prefix:"fas",iconName:"minus-circle",icon:[512,512,[],"f056","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"]},Jl={prefix:"fas",iconName:"minus-square",icon:[448,512,[],"f146","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"]},$l={prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"]},Kl={prefix:"fas",iconName:"mobile",icon:[320,512,[],"f10b","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Ql={prefix:"fas",iconName:"mobile-alt",icon:[320,512,[],"f3cd","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"]},Xl={prefix:"fas",iconName:"money-bill",icon:[640,512,[],"f0d6","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},eu={prefix:"fas",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},tu={prefix:"fas",iconName:"money-bill-wave",icon:[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]},nu={prefix:"fas",iconName:"money-bill-wave-alt",icon:[640,512,[],"f53b","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"]},ru={prefix:"fas",iconName:"money-check",icon:[640,512,[],"f53c","M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"]},au={prefix:"fas",iconName:"money-check-alt",icon:[640,512,[],"f53d","M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"]},cu={prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},iu={prefix:"fas",iconName:"moon",icon:[512,512,[],"f186","M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"]},ou={prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},su={prefix:"fas",iconName:"mosque",icon:[640,512,[],"f678","M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"]},lu={prefix:"fas",iconName:"motorcycle",icon:[640,512,[],"f21c","M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"]},uu={prefix:"fas",iconName:"mountain",icon:[640,512,[],"f6fc","M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"]},fu={prefix:"fas",iconName:"mouse",icon:[384,512,[],"f8cc","M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"]},du={prefix:"fas",iconName:"mouse-pointer",icon:[320,512,[],"f245","M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"]},hu={prefix:"fas",iconName:"mug-hot",icon:[512,512,[],"f7b6","M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},mu={prefix:"fas",iconName:"music",icon:[512,512,[],"f001","M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"]},pu={prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]},vu={prefix:"fas",iconName:"neuter",icon:[288,512,[],"f22c","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},_u={prefix:"fas",iconName:"newspaper",icon:[576,512,[],"f1ea","M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"]},Mu={prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"]},yu={prefix:"fas",iconName:"notes-medical",icon:[384,512,[],"f481","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"]},bu={prefix:"fas",iconName:"object-group",icon:[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"]},Lu={prefix:"fas",iconName:"object-ungroup",icon:[576,512,[],"f248","M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"]},gu={prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"]},zu={prefix:"fas",iconName:"om",icon:[512,512,[],"f679","M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"]},wu={prefix:"fas",iconName:"otter",icon:[640,512,[],"f700","M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"]},Hu={prefix:"fas",iconName:"outdent",icon:[448,512,[],"f03b","M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},ku={prefix:"fas",iconName:"pager",icon:[512,512,[],"f815","M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"]},xu={prefix:"fas",iconName:"paint-brush",icon:[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]},Su={prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"]},Cu={prefix:"fas",iconName:"palette",icon:[512,512,[],"f53f","M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Yu={prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"]},Tu={prefix:"fas",iconName:"paper-plane",icon:[512,512,[],"f1d8","M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"]},Du={prefix:"fas",iconName:"paperclip",icon:[448,512,[],"f0c6","M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"]},Vu={prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"]},Nu={prefix:"fas",iconName:"paragraph",icon:[448,512,[],"f1dd","M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"]},Au={prefix:"fas",iconName:"parking",icon:[448,512,[],"f540","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"]},ju={prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"]},Eu={prefix:"fas",iconName:"pastafarianism",icon:[640,512,[],"f67b","M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"]},Ou={prefix:"fas",iconName:"paste",icon:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"]},Pu={prefix:"fas",iconName:"pause",icon:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"]},Ru={prefix:"fas",iconName:"pause-circle",icon:[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"]},Fu={prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"]},Iu={prefix:"fas",iconName:"peace",icon:[496,512,[],"f67c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"]},Wu={prefix:"fas",iconName:"pen",icon:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"]},Bu={prefix:"fas",iconName:"pen-alt",icon:[512,512,[],"f305","M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"]},Uu={prefix:"fas",iconName:"pen-fancy",icon:[512,512,[],"f5ac","M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"]},qu={prefix:"fas",iconName:"pen-nib",icon:[512,512,[],"f5ad","M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"]},Gu={prefix:"fas",iconName:"pen-square",icon:[448,512,[],"f14b","M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"]},Zu={prefix:"fas",iconName:"pencil-alt",icon:[512,512,[],"f303","M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"]},Ju={prefix:"fas",iconName:"pencil-ruler",icon:[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"]},$u={prefix:"fas",iconName:"people-arrows",icon:[576,512,[],"e068","M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"]},Ku={prefix:"fas",iconName:"people-carry",icon:[640,512,[],"f4ce","M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"]},Qu={prefix:"fas",iconName:"pepper-hot",icon:[512,512,[],"f816","M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"]},Xu={prefix:"fas",iconName:"percent",icon:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]},ef={prefix:"fas",iconName:"percentage",icon:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]},tf={prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"]},nf={prefix:"fas",iconName:"phone",icon:[512,512,[],"f095","M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"]},rf={prefix:"fas",iconName:"phone-alt",icon:[512,512,[],"f879","M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"]},af={prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},cf={prefix:"fas",iconName:"phone-square",icon:[448,512,[],"f098","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"]},of={prefix:"fas",iconName:"phone-square-alt",icon:[448,512,[],"f87b","M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"]},sf={prefix:"fas",iconName:"phone-volume",icon:[384,512,[],"f2a0","M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"]},lf={prefix:"fas",iconName:"photo-video",icon:[640,512,[],"f87c","M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"]},uf={prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"]},ff={prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"]},df={prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},hf={prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"]},mf={prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"]},pf={prefix:"fas",iconName:"plane-arrival",icon:[640,512,[],"f5af","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"]},vf={prefix:"fas",iconName:"plane-departure",icon:[640,512,[],"f5b0","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"]},_f={prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"]},Mf={prefix:"fas",iconName:"play",icon:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"]},yf={prefix:"fas",iconName:"play-circle",icon:[512,512,[],"f144","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"]},bf={prefix:"fas",iconName:"plug",icon:[384,512,[],"f1e6","M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"]},Lf={prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},gf={prefix:"fas",iconName:"plus-circle",icon:[512,512,[],"f055","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},zf={prefix:"fas",iconName:"plus-square",icon:[448,512,[],"f0fe","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},wf={prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"]},Hf={prefix:"fas",iconName:"poll",icon:[448,512,[],"f681","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"]},kf={prefix:"fas",iconName:"poll-h",icon:[448,512,[],"f682","M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"]},xf={prefix:"fas",iconName:"poo",icon:[512,512,[],"f2fe","M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Sf={prefix:"fas",iconName:"poo-storm",icon:[448,512,[],"f75a","M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"]},Cf={prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"]},Yf={prefix:"fas",iconName:"portrait",icon:[384,512,[],"f3e0","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},Tf={prefix:"fas",iconName:"pound-sign",icon:[320,512,[],"f154","M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"]},Df={prefix:"fas",iconName:"power-off",icon:[512,512,[],"f011","M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"]},Vf={prefix:"fas",iconName:"pray",icon:[384,512,[],"f683","M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"]},Nf={prefix:"fas",iconName:"praying-hands",icon:[640,512,[],"f684","M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"]},Af={prefix:"fas",iconName:"prescription",icon:[384,512,[],"f5b1","M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"]},jf={prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"]},Ef={prefix:"fas",iconName:"prescription-bottle-alt",icon:[384,512,[],"f486","M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"]},Of={prefix:"fas",iconName:"print",icon:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},Pf={prefix:"fas",iconName:"procedures",icon:[640,512,[],"f487","M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"]},Rf={prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},Ff={prefix:"fas",iconName:"pump-medical",icon:[384,512,[],"e06a","M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"]},If={prefix:"fas",iconName:"pump-soap",icon:[384,512,[],"e06b","M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"]},Wf={prefix:"fas",iconName:"puzzle-piece",icon:[576,512,[],"f12e","M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"]},Bf={prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"]},Uf={prefix:"fas",iconName:"question",icon:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]},qf={prefix:"fas",iconName:"question-circle",icon:[512,512,[],"f059","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"]},Gf={prefix:"fas",iconName:"quidditch",icon:[640,512,[],"f458","M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"]},Zf={prefix:"fas",iconName:"quote-left",icon:[512,512,[],"f10d","M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},Jf={prefix:"fas",iconName:"quote-right",icon:[512,512,[],"f10e","M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"]},$f={prefix:"fas",iconName:"quran",icon:[448,512,[],"f687","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},Kf={prefix:"fas",iconName:"radiation",icon:[496,512,[],"f7b9","M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"]},Qf={prefix:"fas",iconName:"radiation-alt",icon:[496,512,[],"f7ba","M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},Xf={prefix:"fas",iconName:"rainbow",icon:[576,512,[],"f75b","M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"]},ed={prefix:"fas",iconName:"random",icon:[512,512,[],"f074","M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"]},td={prefix:"fas",iconName:"receipt",icon:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]},nd={prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"]},rd={prefix:"fas",iconName:"recycle",icon:[512,512,[],"f1b8","M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"]},ad={prefix:"fas",iconName:"redo",icon:[512,512,[],"f01e","M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"]},cd={prefix:"fas",iconName:"redo-alt",icon:[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"]},id={prefix:"fas",iconName:"registered",icon:[512,512,[],"f25d","M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"]},od={prefix:"fas",iconName:"remove-format",icon:[640,512,[],"f87d","M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"]},sd={prefix:"fas",iconName:"reply",icon:[512,512,[],"f3e5","M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"]},ld={prefix:"fas",iconName:"reply-all",icon:[576,512,[],"f122","M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"]},ud={prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"]},fd={prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"]},dd={prefix:"fas",iconName:"retweet",icon:[640,512,[],"f079","M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"]},hd={prefix:"fas",iconName:"ribbon",icon:[448,512,[],"f4d6","M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"]},md={prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"]},pd={prefix:"fas",iconName:"road",icon:[576,512,[],"f018","M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"]},vd={prefix:"fas",iconName:"robot",icon:[640,512,[],"f544","M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"]},_d={prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"]},Md={prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},yd={prefix:"fas",iconName:"rss",icon:[448,512,[],"f09e","M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"]},bd={prefix:"fas",iconName:"rss-square",icon:[448,512,[],"f143","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"]},Ld={prefix:"fas",iconName:"ruble-sign",icon:[384,512,[],"f158","M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"]},gd={prefix:"fas",iconName:"ruler",icon:[640,512,[],"f545","M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"]},zd={prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},wd={prefix:"fas",iconName:"ruler-horizontal",icon:[576,512,[],"f547","M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"]},Hd={prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"]},kd={prefix:"fas",iconName:"running",icon:[416,512,[],"f70c","M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"]},xd={prefix:"fas",iconName:"rupee-sign",icon:[320,512,[],"f156","M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"]},Sd={prefix:"fas",iconName:"sad-cry",icon:[496,512,[],"f5b3","M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"]},Cd={prefix:"fas",iconName:"sad-tear",icon:[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"]},Yd={prefix:"fas",iconName:"satellite",icon:[512,512,[],"f7bf","M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"]},Td={prefix:"fas",iconName:"satellite-dish",icon:[512,512,[],"f7c0","M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"]},Dd={prefix:"fas",iconName:"save",icon:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"]},Vd={prefix:"fas",iconName:"school",icon:[640,512,[],"f549","M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"]},Nd={prefix:"fas",iconName:"screwdriver",icon:[512,512,[],"f54a","M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"]},Ad={prefix:"fas",iconName:"scroll",icon:[640,512,[],"f70e","M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"]},jd={prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"]},Ed={prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},Od={prefix:"fas",iconName:"search-dollar",icon:[512,512,[],"f688","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"]},Pd={prefix:"fas",iconName:"search-location",icon:[512,512,[],"f689","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},Rd={prefix:"fas",iconName:"search-minus",icon:[512,512,[],"f010","M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},Fd={prefix:"fas",iconName:"search-plus",icon:[512,512,[],"f00e","M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},Id={prefix:"fas",iconName:"seedling",icon:[512,512,[],"f4d8","M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"]},Wd={prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]},Bd={prefix:"fas",iconName:"shapes",icon:[512,512,[],"f61f","M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"]},Ud={prefix:"fas",iconName:"share",icon:[512,512,[],"f064","M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"]},qd={prefix:"fas",iconName:"share-alt",icon:[448,512,[],"f1e0","M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"]},Gd={prefix:"fas",iconName:"share-alt-square",icon:[448,512,[],"f1e1","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"]},Zd={prefix:"fas",iconName:"share-square",icon:[576,512,[],"f14d","M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"]},Jd={prefix:"fas",iconName:"shekel-sign",icon:[448,512,[],"f20b","M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"]},$d={prefix:"fas",iconName:"shield-alt",icon:[512,512,[],"f3ed","M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"]},Kd={prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"]},Qd={prefix:"fas",iconName:"ship",icon:[640,512,[],"f21a","M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"]},Xd={prefix:"fas",iconName:"shipping-fast",icon:[640,512,[],"f48b","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},eh={prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"]},th={prefix:"fas",iconName:"shopping-bag",icon:[448,512,[],"f290","M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"]},nh={prefix:"fas",iconName:"shopping-basket",icon:[576,512,[],"f291","M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"]},rh={prefix:"fas",iconName:"shopping-cart",icon:[576,512,[],"f07a","M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"]},ah={prefix:"fas",iconName:"shower",icon:[512,512,[],"f2cc","M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"]},ch={prefix:"fas",iconName:"shuttle-van",icon:[640,512,[],"f5b6","M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"]},ih={prefix:"fas",iconName:"sign",icon:[512,512,[],"f4d9","M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"]},oh={prefix:"fas",iconName:"sign-in-alt",icon:[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]},sh={prefix:"fas",iconName:"sign-language",icon:[448,512,[],"f2a7","M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"]},lh={prefix:"fas",iconName:"sign-out-alt",icon:[512,512,[],"f2f5","M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"]},uh={prefix:"fas",iconName:"signal",icon:[640,512,[],"f012","M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},fh={prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"]},dh={prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"]},hh={prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z"]},mh={prefix:"fas",iconName:"sitemap",icon:[640,512,[],"f0e8","M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},ph={prefix:"fas",iconName:"skating",icon:[448,512,[],"f7c5","M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},vh={prefix:"fas",iconName:"skiing",icon:[512,512,[],"f7c9","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"]},_h={prefix:"fas",iconName:"skiing-nordic",icon:[576,512,[],"f7ca","M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"]},Mh={prefix:"fas",iconName:"skull",icon:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"]},yh={prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[],"f714","M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"]},bh={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"]},Lh={prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"]},gh={prefix:"fas",iconName:"sliders-h",icon:[512,512,[],"f1de","M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"]},zh={prefix:"fas",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"]},wh={prefix:"fas",iconName:"smile-beam",icon:[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"]},Hh={prefix:"fas",iconName:"smile-wink",icon:[496,512,[],"f4da","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"]},kh={prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"]},xh={prefix:"fas",iconName:"smoking",icon:[640,512,[],"f48d","M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"]},Sh={prefix:"fas",iconName:"smoking-ban",icon:[512,512,[],"f54d","M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"]},Ch={prefix:"fas",iconName:"sms",icon:[512,512,[],"f7cd","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"]},Yh={prefix:"fas",iconName:"snowboarding",icon:[512,512,[],"f7ce","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"]},Th={prefix:"fas",iconName:"snowflake",icon:[448,512,[],"f2dc","M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"]},Dh={prefix:"fas",iconName:"snowman",icon:[512,512,[],"f7d0","M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},Vh={prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},Nh={prefix:"fas",iconName:"soap",icon:[512,512,[],"e06e","M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"]},Ah={prefix:"fas",iconName:"socks",icon:[512,512,[],"f696","M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"]},jh={prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"]},Eh={prefix:"fas",iconName:"sort",icon:[320,512,[],"f0dc","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"]},Oh={prefix:"fas",iconName:"sort-alpha-down",icon:[448,512,[],"f15d","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},Ph={prefix:"fas",iconName:"sort-alpha-down-alt",icon:[448,512,[],"f881","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},Rh={prefix:"fas",iconName:"sort-alpha-up",icon:[448,512,[],"f15e","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},Fh={prefix:"fas",iconName:"sort-alpha-up-alt",icon:[448,512,[],"f882","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},Ih={prefix:"fas",iconName:"sort-amount-down",icon:[512,512,[],"f160","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Wh={prefix:"fas",iconName:"sort-amount-down-alt",icon:[512,512,[],"f884","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},Bh={prefix:"fas",iconName:"sort-amount-up",icon:[512,512,[],"f161","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Uh={prefix:"fas",iconName:"sort-amount-up-alt",icon:[512,512,[],"f885","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"]},qh={prefix:"fas",iconName:"sort-down",icon:[320,512,[],"f0dd","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"]},Gh={prefix:"fas",iconName:"sort-numeric-down",icon:[448,512,[],"f162","M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},Zh={prefix:"fas",iconName:"sort-numeric-down-alt",icon:[448,512,[],"f886","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},Jh={prefix:"fas",iconName:"sort-numeric-up",icon:[448,512,[],"f163","M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"]},$h={prefix:"fas",iconName:"sort-numeric-up-alt",icon:[448,512,[],"f887","M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},Kh={prefix:"fas",iconName:"sort-up",icon:[320,512,[],"f0de","M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"]},Qh={prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"]},Xh={prefix:"fas",iconName:"space-shuttle",icon:[640,512,[],"f197","M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"]},em={prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"]},tm={prefix:"fas",iconName:"spider",icon:[576,512,[],"f717","M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"]},nm={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"]},rm={prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"]},am={prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},cm={prefix:"fas",iconName:"square",icon:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},im={prefix:"fas",iconName:"square-full",icon:[512,512,[],"f45c","M512 512H0V0h512v512z"]},om={prefix:"fas",iconName:"square-root-alt",icon:[576,512,[],"f698","M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"]},sm={prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"]},lm={prefix:"fas",iconName:"star",icon:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"]},um={prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[],"f699","M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"]},fm={prefix:"fas",iconName:"star-half",icon:[576,512,[],"f089","M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"]},dm={prefix:"fas",iconName:"star-half-alt",icon:[536,512,[],"f5c0","M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"]},hm={prefix:"fas",iconName:"star-of-david",icon:[464,512,[],"f69a","M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"]},mm={prefix:"fas",iconName:"star-of-life",icon:[480,512,[],"f621","M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"]},pm={prefix:"fas",iconName:"step-backward",icon:[448,512,[],"f048","M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"]},vm={prefix:"fas",iconName:"step-forward",icon:[448,512,[],"f051","M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"]},_m={prefix:"fas",iconName:"stethoscope",icon:[512,512,[],"f0f1","M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},Mm={prefix:"fas",iconName:"sticky-note",icon:[448,512,[],"f249","M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"]},ym={prefix:"fas",iconName:"stop",icon:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},bm={prefix:"fas",iconName:"stop-circle",icon:[512,512,[],"f28d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"]},Lm={prefix:"fas",iconName:"stopwatch",icon:[448,512,[],"f2f2","M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},gm={prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"]},zm={prefix:"fas",iconName:"store",icon:[616,512,[],"f54e","M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"]},wm={prefix:"fas",iconName:"store-alt",icon:[640,512,[],"f54f","M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"]},Hm={prefix:"fas",iconName:"store-alt-slash",icon:[640,512,[],"e070","M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"]},km={prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"]},xm={prefix:"fas",iconName:"stream",icon:[512,512,[],"f550","M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"]},Sm={prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"]},Cm={prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"]},Ym={prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"]},Tm={prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},Dm={prefix:"fas",iconName:"subway",icon:[448,512,[],"f239","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},Vm={prefix:"fas",iconName:"suitcase",icon:[512,512,[],"f0f2","M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"]},Nm={prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"]},Am={prefix:"fas",iconName:"sun",icon:[512,512,[],"f185","M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"]},jm={prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},Em={prefix:"fas",iconName:"surprise",icon:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Om={prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"]},Pm={prefix:"fas",iconName:"swimmer",icon:[640,512,[],"f5c4","M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"]},Rm={prefix:"fas",iconName:"swimming-pool",icon:[640,512,[],"f5c5","M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"]},Fm={prefix:"fas",iconName:"synagogue",icon:[640,512,[],"f69b","M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"]},Im={prefix:"fas",iconName:"sync",icon:[512,512,[],"f021","M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"]},Wm={prefix:"fas",iconName:"sync-alt",icon:[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"]},Bm={prefix:"fas",iconName:"syringe",icon:[512,512,[],"f48e","M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"]},Um={prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"]},qm={prefix:"fas",iconName:"table-tennis",icon:[512,512,[],"f45d","M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"]},Gm={prefix:"fas",iconName:"tablet",icon:[448,512,[],"f10a","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},Zm={prefix:"fas",iconName:"tablet-alt",icon:[448,512,[],"f3fa","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"]},Jm={prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"]},$m={prefix:"fas",iconName:"tachometer-alt",icon:[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},Km={prefix:"fas",iconName:"tag",icon:[512,512,[],"f02b","M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},Qm={prefix:"fas",iconName:"tags",icon:[640,512,[],"f02c","M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"]},Xm={prefix:"fas",iconName:"tape",icon:[640,512,[],"f4db","M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"]},ep={prefix:"fas",iconName:"tasks",icon:[512,512,[],"f0ae","M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},tp={prefix:"fas",iconName:"taxi",icon:[512,512,[],"f1ba","M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},np={prefix:"fas",iconName:"teeth",icon:[640,512,[],"f62e","M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"]},rp={prefix:"fas",iconName:"teeth-open",icon:[640,512,[],"f62f","M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"]},ap={prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},cp={prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},ip={prefix:"fas",iconName:"tenge",icon:[384,512,[],"f7d7","M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"]},op={prefix:"fas",iconName:"terminal",icon:[640,512,[],"f120","M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"]},sp={prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"]},lp={prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"]},up={prefix:"fas",iconName:"th",icon:[512,512,[],"f00a","M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"]},fp={prefix:"fas",iconName:"th-large",icon:[512,512,[],"f009","M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"]},dp={prefix:"fas",iconName:"th-list",icon:[512,512,[],"f00b","M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"]},hp={prefix:"fas",iconName:"theater-masks",icon:[640,512,[],"f630","M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"]},mp={prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"]},pp={prefix:"fas",iconName:"thermometer-empty",icon:[256,512,[],"f2cb","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},vp={prefix:"fas",iconName:"thermometer-full",icon:[256,512,[],"f2c7","M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"]},_p={prefix:"fas",iconName:"thermometer-half",icon:[256,512,[],"f2c9","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},Mp={prefix:"fas",iconName:"thermometer-quarter",icon:[256,512,[],"f2ca","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},yp={prefix:"fas",iconName:"thermometer-three-quarters",icon:[256,512,[],"f2c8","M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},bp={prefix:"fas",iconName:"thumbs-down",icon:[512,512,[],"f165","M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"]},Lp={prefix:"fas",iconName:"thumbs-up",icon:[512,512,[],"f164","M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"]},gp={prefix:"fas",iconName:"thumbtack",icon:[384,512,[],"f08d","M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"]},zp={prefix:"fas",iconName:"ticket-alt",icon:[576,512,[],"f3ff","M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"]},wp={prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},Hp={prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},kp={prefix:"fas",iconName:"tint",icon:[352,512,[],"f043","M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},xp={prefix:"fas",iconName:"tint-slash",icon:[640,512,[],"f5c7","M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"]},Sp={prefix:"fas",iconName:"tired",icon:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"]},Cp={prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"]},Yp={prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"]},Tp={prefix:"fas",iconName:"toilet",icon:[384,512,[],"f7d8","M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"]},Dp={prefix:"fas",iconName:"toilet-paper",icon:[576,512,[],"f71e","M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"]},Vp={prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"]},Np={prefix:"fas",iconName:"toolbox",icon:[512,512,[],"f552","M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"]},Ap={prefix:"fas",iconName:"tools",icon:[512,512,[],"f7d9","M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]},jp={prefix:"fas",iconName:"tooth",icon:[448,512,[],"f5c9","M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"]},Ep={prefix:"fas",iconName:"torah",icon:[640,512,[],"f6a0","M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"]},Op={prefix:"fas",iconName:"torii-gate",icon:[512,512,[],"f6a1","M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"]},Pp={prefix:"fas",iconName:"tractor",icon:[640,512,[],"f722","M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"]},Rp={prefix:"fas",iconName:"trademark",icon:[640,512,[],"f25c","M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"]},Fp={prefix:"fas",iconName:"traffic-light",icon:[384,512,[],"f637","M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},Ip={prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"]},Wp={prefix:"fas",iconName:"train",icon:[448,512,[],"f238","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"]},Bp={prefix:"fas",iconName:"tram",icon:[512,512,[],"f7da","M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},Up={prefix:"fas",iconName:"transgender",icon:[384,512,[],"f224","M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},qp={prefix:"fas",iconName:"transgender-alt",icon:[480,512,[],"f225","M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},Gp={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]},Zp={prefix:"fas",iconName:"trash-alt",icon:[448,512,[],"f2ed","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Jp={prefix:"fas",iconName:"trash-restore",icon:[448,512,[],"f829","M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},$p={prefix:"fas",iconName:"trash-restore-alt",icon:[448,512,[],"f82a","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},Kp={prefix:"fas",iconName:"tree",icon:[384,512,[],"f1bb","M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"]},Qp={prefix:"fas",iconName:"trophy",icon:[576,512,[],"f091","M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"]},Xp={prefix:"fas",iconName:"truck",icon:[640,512,[],"f0d1","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},ev={prefix:"fas",iconName:"truck-loading",icon:[640,512,[],"f4de","M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},tv={prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},nv={prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"]},rv={prefix:"fas",iconName:"truck-pickup",icon:[640,512,[],"f63c","M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},av={prefix:"fas",iconName:"tshirt",icon:[640,512,[],"f553","M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"]},cv={prefix:"fas",iconName:"tty",icon:[512,512,[],"f1e4","M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},iv={prefix:"fas",iconName:"tv",icon:[640,512,[],"f26c","M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"]},ov={prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"]},sv={prefix:"fas",iconName:"umbrella-beach",icon:[640,512,[],"f5ca","M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"]},lv={prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},uv={prefix:"fas",iconName:"undo",icon:[512,512,[],"f0e2","M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"]},fv={prefix:"fas",iconName:"undo-alt",icon:[512,512,[],"f2ea","M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"]},dv={prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"]},hv={prefix:"fas",iconName:"university",icon:[512,512,[],"f19c","M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"]},mv={prefix:"fas",iconName:"unlink",icon:[512,512,[],"f127","M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"]},pv={prefix:"fas",iconName:"unlock",icon:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},vv={prefix:"fas",iconName:"unlock-alt",icon:[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]},_v={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},Mv={prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},yv={prefix:"fas",iconName:"user-alt",icon:[512,512,[],"f406","M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"]},bv={prefix:"fas",iconName:"user-alt-slash",icon:[640,512,[],"f4fa","M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"]},Lv={prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"]},gv={prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]},zv={prefix:"fas",iconName:"user-circle",icon:[496,512,[],"f2bd","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"]},wv={prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]},Hv={prefix:"fas",iconName:"user-cog",icon:[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]},kv={prefix:"fas",iconName:"user-edit",icon:[640,512,[],"f4ff","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"]},xv={prefix:"fas",iconName:"user-friends",icon:[640,512,[],"f500","M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"]},Sv={prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"]},Cv={prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"]},Yv={prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},Tv={prefix:"fas",iconName:"user-md",icon:[448,512,[],"f0f0","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"]},Dv={prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},Vv={prefix:"fas",iconName:"user-ninja",icon:[448,512,[],"f504","M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"]},Nv={prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"]},Av={prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},jv={prefix:"fas",iconName:"user-secret",icon:[448,512,[],"f21b","M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"]},Ev={prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"]},Ov={prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"]},Pv={prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"]},Rv={prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"]},Fv={prefix:"fas",iconName:"user-times",icon:[640,512,[],"f235","M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},Iv={prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},Wv={prefix:"fas",iconName:"users-cog",icon:[640,512,[],"f509","M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},Bv={prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z"]},Uv={prefix:"fas",iconName:"utensil-spoon",icon:[512,512,[],"f2e5","M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"]},qv={prefix:"fas",iconName:"utensils",icon:[416,512,[],"f2e7","M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"]},Gv={prefix:"fas",iconName:"vector-square",icon:[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"]},Zv={prefix:"fas",iconName:"venus",icon:[288,512,[],"f221","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},Jv={prefix:"fas",iconName:"venus-double",icon:[512,512,[],"f226","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"]},$v={prefix:"fas",iconName:"venus-mars",icon:[576,512,[],"f228","M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},Kv={prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z"]},Qv={prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z"]},Xv={prefix:"fas",iconName:"vial",icon:[480,512,[],"f492","M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"]},e_={prefix:"fas",iconName:"vials",icon:[640,512,[],"f493","M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"]},t_={prefix:"fas",iconName:"video",icon:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"]},n_={prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"]},r_={prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"]},a_={prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"]},c_={prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z"]},i_={prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"]},o_={prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"]},s_={prefix:"fas",iconName:"volleyball-ball",icon:[512,512,[],"f45f","M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"]},l_={prefix:"fas",iconName:"volume-down",icon:[384,512,[],"f027","M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"]},u_={prefix:"fas",iconName:"volume-mute",icon:[512,512,[],"f6a9","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"]},f_={prefix:"fas",iconName:"volume-off",icon:[256,512,[],"f026","M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"]},d_={prefix:"fas",iconName:"volume-up",icon:[576,512,[],"f028","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"]},h_={prefix:"fas",iconName:"vote-yea",icon:[640,512,[],"f772","M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"]},m_={prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"]},p_={prefix:"fas",iconName:"walking",icon:[320,512,[],"f554","M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"]},v_={prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},__={prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"]},M_={prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"]},y_={prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"]},b_={prefix:"fas",iconName:"weight",icon:[512,512,[],"f496","M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"]},L_={prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},g_={prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"]},z_={prefix:"fas",iconName:"wifi",icon:[640,512,[],"f1eb","M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"]},w_={prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"]},H_={prefix:"fas",iconName:"window-close",icon:[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"]},k_={prefix:"fas",iconName:"window-maximize",icon:[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"]},x_={prefix:"fas",iconName:"window-minimize",icon:[512,512,[],"f2d1","M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"]},S_={prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]},C_={prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"]},Y_={prefix:"fas",iconName:"wine-glass",icon:[288,512,[],"f4e3","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"]},T_={prefix:"fas",iconName:"wine-glass-alt",icon:[288,512,[],"f5ce","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"]},D_={prefix:"fas",iconName:"won-sign",icon:[576,512,[],"f159","M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"]},V_={prefix:"fas",iconName:"wrench",icon:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},N_={prefix:"fas",iconName:"x-ray",icon:[640,512,[],"f497","M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"]},A_={prefix:"fas",iconName:"yen-sign",icon:[384,512,[],"f157","M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"]},j_={prefix:"fas",iconName:"yin-yang",icon:[496,512,[],"f6ad","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},E_={faAd:a,faAddressBook:c,faAddressCard:i,faAdjust:o,faAirFreshener:s,faAlignCenter:l,faAlignJustify:u,faAlignLeft:f,faAlignRight:d,faAllergies:h,faAmbulance:m,faAmericanSignLanguageInterpreting:p,faAnchor:v,faAngleDoubleDown:_,faAngleDoubleLeft:M,faAngleDoubleRight:y,faAngleDoubleUp:b,faAngleDown:L,faAngleLeft:g,faAngleRight:z,faAngleUp:w,faAngry:H,faAnkh:k,faAppleAlt:x,faArchive:S,faArchway:C,faArrowAltCircleDown:Y,faArrowAltCircleLeft:T,faArrowAltCircleRight:D,faArrowAltCircleUp:V,faArrowCircleDown:N,faArrowCircleLeft:A,faArrowCircleRight:j,faArrowCircleUp:E,faArrowDown:O,faArrowLeft:P,faArrowRight:R,faArrowUp:F,faArrowsAlt:I,faArrowsAltH:W,faArrowsAltV:B,faAssistiveListeningSystems:U,faAsterisk:q,faAt:G,faAtlas:Z,faAtom:J,faAudioDescription:$,faAward:K,faBaby:Q,faBabyCarriage:X,faBackspace:ee,faBackward:te,faBacon:ne,faBacteria:re,faBacterium:ae,faBahai:ce,faBalanceScale:ie,faBalanceScaleLeft:oe,faBalanceScaleRight:se,faBan:le,faBandAid:ue,faBarcode:fe,faBars:de,faBaseballBall:he,faBasketballBall:me,faBath:pe,faBatteryEmpty:ve,faBatteryFull:_e,faBatteryHalf:Me,faBatteryQuarter:ye,faBatteryThreeQuarters:be,faBed:Le,faBeer:ge,faBell:ze,faBellSlash:we,faBezierCurve:He,faBible:ke,faBicycle:xe,faBiking:Se,faBinoculars:Ce,faBiohazard:Ye,faBirthdayCake:Te,faBlender:De,faBlenderPhone:Ve,faBlind:Ne,faBlog:Ae,faBold:je,faBolt:Ee,faBomb:Oe,faBone:Pe,faBong:Re,faBook:Fe,faBookDead:Ie,faBookMedical:We,faBookOpen:Be,faBookReader:Ue,faBookmark:qe,faBorderAll:Ge,faBorderNone:Ze,faBorderStyle:Je,faBowlingBall:$e,faBox:Ke,faBoxOpen:Qe,faBoxTissue:Xe,faBoxes:et,faBraille:tt,faBrain:nt,faBreadSlice:rt,faBriefcase:at,faBriefcaseMedical:ct,faBroadcastTower:it,faBroom:ot,faBrush:st,faBug:lt,faBuilding:ut,faBullhorn:ft,faBullseye:dt,faBurn:ht,faBus:mt,faBusAlt:pt,faBusinessTime:vt,faCalculator:_t,faCalendar:Mt,faCalendarAlt:yt,faCalendarCheck:bt,faCalendarDay:Lt,faCalendarMinus:gt,faCalendarPlus:zt,faCalendarTimes:wt,faCalendarWeek:Ht,faCamera:kt,faCameraRetro:xt,faCampground:St,faCandyCane:Ct,faCannabis:Yt,faCapsules:Tt,faCar:Dt,faCarAlt:Vt,faCarBattery:Nt,faCarCrash:At,faCarSide:jt,faCaravan:Et,faCaretDown:Ot,faCaretLeft:Pt,faCaretRight:Rt,faCaretSquareDown:Ft,faCaretSquareLeft:It,faCaretSquareRight:Wt,faCaretSquareUp:Bt,faCaretUp:Ut,faCarrot:qt,faCartArrowDown:Gt,faCartPlus:Zt,faCashRegister:Jt,faCat:$t,faCertificate:Kt,faChair:Qt,faChalkboard:Xt,faChalkboardTeacher:en,faChargingStation:tn,faChartArea:nn,faChartBar:rn,faChartLine:an,faChartPie:cn,faCheck:on,faCheckCircle:sn,faCheckDouble:ln,faCheckSquare:un,faCheese:fn,faChess:dn,faChessBishop:hn,faChessBoard:mn,faChessKing:pn,faChessKnight:vn,faChessPawn:_n,faChessQueen:Mn,faChessRook:yn,faChevronCircleDown:bn,faChevronCircleLeft:Ln,faChevronCircleRight:gn,faChevronCircleUp:zn,faChevronDown:wn,faChevronLeft:Hn,faChevronRight:kn,faChevronUp:xn,faChild:Sn,faChurch:Cn,faCircle:Yn,faCircleNotch:Tn,faCity:Dn,faClinicMedical:Vn,faClipboard:Nn,faClipboardCheck:An,faClipboardList:jn,faClock:En,faClone:On,faClosedCaptioning:Pn,faCloud:Rn,faCloudDownloadAlt:Fn,faCloudMeatball:In,faCloudMoon:Wn,faCloudMoonRain:Bn,faCloudRain:Un,faCloudShowersHeavy:qn,faCloudSun:Gn,faCloudSunRain:Zn,faCloudUploadAlt:Jn,faCocktail:$n,faCode:Kn,faCodeBranch:Qn,faCoffee:Xn,faCog:er,faCogs:tr,faCoins:nr,faColumns:rr,faComment:ar,faCommentAlt:cr,faCommentDollar:ir,faCommentDots:or,faCommentMedical:sr,faCommentSlash:lr,faComments:ur,faCommentsDollar:fr,faCompactDisc:dr,faCompass:hr,faCompress:mr,faCompressAlt:pr,faCompressArrowsAlt:vr,faConciergeBell:_r,faCookie:Mr,faCookieBite:yr,faCopy:br,faCopyright:Lr,faCouch:gr,faCreditCard:zr,faCrop:wr,faCropAlt:Hr,faCross:kr,faCrosshairs:xr,faCrow:Sr,faCrown:Cr,faCrutch:Yr,faCube:Tr,faCubes:Dr,faCut:Vr,faDatabase:Nr,faDeaf:Ar,faDemocrat:jr,faDesktop:Er,faDharmachakra:Or,faDiagnoses:Pr,faDice:Rr,faDiceD20:Fr,faDiceD6:Ir,faDiceFive:Wr,faDiceFour:Br,faDiceOne:Ur,faDiceSix:qr,faDiceThree:Gr,faDiceTwo:Zr,faDigitalTachograph:Jr,faDirections:$r,faDisease:Kr,faDivide:Qr,faDizzy:Xr,faDna:ea,faDog:ta,faDollarSign:na,faDolly:ra,faDollyFlatbed:aa,faDonate:ca,faDoorClosed:ia,faDoorOpen:oa,faDotCircle:sa,faDove:la,faDownload:ua,faDraftingCompass:fa,faDragon:da,faDrawPolygon:ha,faDrum:ma,faDrumSteelpan:pa,faDrumstickBite:va,faDumbbell:_a,faDumpster:Ma,faDumpsterFire:ya,faDungeon:ba,faEdit:La,faEgg:ga,faEject:za,faEllipsisH:wa,faEllipsisV:Ha,faEnvelope:ka,faEnvelopeOpen:xa,faEnvelopeOpenText:Sa,faEnvelopeSquare:Ca,faEquals:Ya,faEraser:Ta,faEthernet:Da,faEuroSign:Va,faExchangeAlt:Na,faExclamation:Aa,faExclamationCircle:ja,faExclamationTriangle:Ea,faExpand:Oa,faExpandAlt:Pa,faExpandArrowsAlt:Ra,faExternalLinkAlt:Fa,faExternalLinkSquareAlt:Ia,faEye:Wa,faEyeDropper:Ba,faEyeSlash:Ua,faFan:qa,faFastBackward:Ga,faFastForward:Za,faFaucet:Ja,faFax:$a,faFeather:Ka,faFeatherAlt:Qa,faFemale:Xa,faFighterJet:ec,faFile:tc,faFileAlt:nc,faFileArchive:rc,faFileAudio:ac,faFileCode:cc,faFileContract:ic,faFileCsv:oc,faFileDownload:sc,faFileExcel:lc,faFileExport:uc,faFileImage:fc,faFileImport:dc,faFileInvoice:hc,faFileInvoiceDollar:mc,faFileMedical:pc,faFileMedicalAlt:vc,faFilePdf:_c,faFilePowerpoint:Mc,faFilePrescription:yc,faFileSignature:bc,faFileUpload:Lc,faFileVideo:gc,faFileWord:zc,faFill:wc,faFillDrip:Hc,faFilm:kc,faFilter:xc,faFingerprint:Sc,faFire:Cc,faFireAlt:Yc,faFireExtinguisher:Tc,faFirstAid:Dc,faFish:Vc,faFistRaised:Nc,faFlag:Ac,faFlagCheckered:jc,faFlagUsa:Ec,faFlask:Oc,faFlushed:Pc,faFolder:Rc,faFolderMinus:Fc,faFolderOpen:Ic,faFolderPlus:Wc,faFont:Bc,faFontAwesomeLogoFull:Uc,faFootballBall:qc,faForward:Gc,faFrog:Zc,faFrown:Jc,faFrownOpen:$c,faFunnelDollar:Kc,faFutbol:Qc,faGamepad:Xc,faGasPump:ei,faGavel:ti,faGem:ni,faGenderless:ri,faGhost:ai,faGift:ci,faGifts:ii,faGlassCheers:oi,faGlassMartini:si,faGlassMartiniAlt:li,faGlassWhiskey:ui,faGlasses:fi,faGlobe:di,faGlobeAfrica:hi,faGlobeAmericas:mi,faGlobeAsia:pi,faGlobeEurope:vi,faGolfBall:_i,faGopuram:Mi,faGraduationCap:yi,faGreaterThan:bi,faGreaterThanEqual:Li,faGrimace:gi,faGrin:zi,faGrinAlt:wi,faGrinBeam:Hi,faGrinBeamSweat:ki,faGrinHearts:xi,faGrinSquint:Si,faGrinSquintTears:Ci,faGrinStars:Yi,faGrinTears:Ti,faGrinTongue:Di,faGrinTongueSquint:Vi,faGrinTongueWink:Ni,faGrinWink:Ai,faGripHorizontal:ji,faGripLines:Ei,faGripLinesVertical:Oi,faGripVertical:Pi,faGuitar:Ri,faHSquare:Fi,faHamburger:Ii,faHammer:Wi,faHamsa:Bi,faHandHolding:Ui,faHandHoldingHeart:qi,faHandHoldingMedical:Gi,faHandHoldingUsd:Zi,faHandHoldingWater:Ji,faHandLizard:$i,faHandMiddleFinger:Ki,faHandPaper:Qi,faHandPeace:Xi,faHandPointDown:eo,faHandPointLeft:to,faHandPointRight:no,faHandPointUp:ro,faHandPointer:ao,faHandRock:co,faHandScissors:io,faHandSparkles:oo,faHandSpock:so,faHands:lo,faHandsHelping:uo,faHandsWash:fo,faHandshake:ho,faHandshakeAltSlash:mo,faHandshakeSlash:po,faHanukiah:vo,faHardHat:_o,faHashtag:Mo,faHatCowboy:yo,faHatCowboySide:bo,faHatWizard:Lo,faHdd:go,faHeadSideCough:zo,faHeadSideCoughSlash:wo,faHeadSideMask:Ho,faHeadSideVirus:ko,faHeading:xo,faHeadphones:So,faHeadphonesAlt:Co,faHeadset:Yo,faHeart:To,faHeartBroken:Do,faHeartbeat:Vo,faHelicopter:No,faHighlighter:Ao,faHiking:jo,faHippo:Eo,faHistory:Oo,faHockeyPuck:Po,faHollyBerry:Ro,faHome:Fo,faHorse:Io,faHorseHead:Wo,faHospital:Bo,faHospitalAlt:Uo,faHospitalSymbol:qo,faHospitalUser:Go,faHotTub:Zo,faHotdog:Jo,faHotel:$o,faHourglass:Ko,faHourglassEnd:Qo,faHourglassHalf:Xo,faHourglassStart:es,faHouseDamage:ts,faHouseUser:ns,faHryvnia:rs,faICursor:as,faIceCream:cs,faIcicles:is,faIcons:os,faIdBadge:ss,faIdCard:ls,faIdCardAlt:us,faIgloo:fs,faImage:ds,faImages:hs,faInbox:ms,faIndent:ps,faIndustry:vs,faInfinity:_s,faInfo:Ms,faInfoCircle:ys,faItalic:bs,faJedi:Ls,faJoint:gs,faJournalWhills:zs,faKaaba:ws,faKey:Hs,faKeyboard:ks,faKhanda:xs,faKiss:Ss,faKissBeam:Cs,faKissWinkHeart:Ys,faKiwiBird:Ts,faLandmark:Ds,faLanguage:Vs,faLaptop:Ns,faLaptopCode:As,faLaptopHouse:js,faLaptopMedical:Es,faLaugh:Os,faLaughBeam:Ps,faLaughSquint:Rs,faLaughWink:Fs,faLayerGroup:Is,faLeaf:Ws,faLemon:Bs,faLessThan:Us,faLessThanEqual:qs,faLevelDownAlt:Gs,faLevelUpAlt:Zs,faLifeRing:Js,faLightbulb:$s,faLink:Ks,faLiraSign:Qs,faList:Xs,faListAlt:el,faListOl:tl,faListUl:nl,faLocationArrow:rl,faLock:al,faLockOpen:cl,faLongArrowAltDown:il,faLongArrowAltLeft:ol,faLongArrowAltRight:sl,faLongArrowAltUp:ll,faLowVision:ul,faLuggageCart:fl,faLungs:dl,faLungsVirus:hl,faMagic:ml,faMagnet:pl,faMailBulk:vl,faMale:_l,faMap:Ml,faMapMarked:yl,faMapMarkedAlt:bl,faMapMarker:Ll,faMapMarkerAlt:gl,faMapPin:zl,faMapSigns:wl,faMarker:Hl,faMars:kl,faMarsDouble:xl,faMarsStroke:Sl,faMarsStrokeH:Cl,faMarsStrokeV:Yl,faMask:Tl,faMedal:Dl,faMedkit:Vl,faMeh:Nl,faMehBlank:Al,faMehRollingEyes:jl,faMemory:El,faMenorah:Ol,faMercury:Pl,faMeteor:Rl,faMicrochip:Fl,faMicrophone:Il,faMicrophoneAlt:Wl,faMicrophoneAltSlash:Bl,faMicrophoneSlash:Ul,faMicroscope:ql,faMinus:Gl,faMinusCircle:Zl,faMinusSquare:Jl,faMitten:$l,faMobile:Kl,faMobileAlt:Ql,faMoneyBill:Xl,faMoneyBillAlt:eu,faMoneyBillWave:tu,faMoneyBillWaveAlt:nu,faMoneyCheck:ru,faMoneyCheckAlt:au,faMonument:cu,faMoon:iu,faMortarPestle:ou,faMosque:su,faMotorcycle:lu,faMountain:uu,faMouse:fu,faMousePointer:du,faMugHot:hu,faMusic:mu,faNetworkWired:pu,faNeuter:vu,faNewspaper:_u,faNotEqual:Mu,faNotesMedical:yu,faObjectGroup:bu,faObjectUngroup:Lu,faOilCan:gu,faOm:zu,faOtter:wu,faOutdent:Hu,faPager:ku,faPaintBrush:xu,faPaintRoller:Su,faPalette:Cu,faPallet:Yu,faPaperPlane:Tu,faPaperclip:Du,faParachuteBox:Vu,faParagraph:Nu,faParking:Au,faPassport:ju,faPastafarianism:Eu,faPaste:Ou,faPause:Pu,faPauseCircle:Ru,faPaw:Fu,faPeace:Iu,faPen:Wu,faPenAlt:Bu,faPenFancy:Uu,faPenNib:qu,faPenSquare:Gu,faPencilAlt:Zu,faPencilRuler:Ju,faPeopleArrows:$u,faPeopleCarry:Ku,faPepperHot:Qu,faPercent:Xu,faPercentage:ef,faPersonBooth:tf,faPhone:nf,faPhoneAlt:rf,faPhoneSlash:af,faPhoneSquare:cf,faPhoneSquareAlt:of,faPhoneVolume:sf,faPhotoVideo:lf,faPiggyBank:uf,faPills:ff,faPizzaSlice:df,faPlaceOfWorship:hf,faPlane:mf,faPlaneArrival:pf,faPlaneDeparture:vf,faPlaneSlash:_f,faPlay:Mf,faPlayCircle:yf,faPlug:bf,faPlus:Lf,faPlusCircle:gf,faPlusSquare:zf,faPodcast:wf,faPoll:Hf,faPollH:kf,faPoo:xf,faPooStorm:Sf,faPoop:Cf,faPortrait:Yf,faPoundSign:Tf,faPowerOff:Df,faPray:Vf,faPrayingHands:Nf,faPrescription:Af,faPrescriptionBottle:jf,faPrescriptionBottleAlt:Ef,faPrint:Of,faProcedures:Pf,faProjectDiagram:Rf,faPumpMedical:Ff,faPumpSoap:If,faPuzzlePiece:Wf,faQrcode:Bf,faQuestion:Uf,faQuestionCircle:qf,faQuidditch:Gf,faQuoteLeft:Zf,faQuoteRight:Jf,faQuran:$f,faRadiation:Kf,faRadiationAlt:Qf,faRainbow:Xf,faRandom:ed,faReceipt:td,faRecordVinyl:nd,faRecycle:rd,faRedo:ad,faRedoAlt:cd,faRegistered:id,faRemoveFormat:od,faReply:sd,faReplyAll:ld,faRepublican:ud,faRestroom:fd,faRetweet:dd,faRibbon:hd,faRing:md,faRoad:pd,faRobot:vd,faRocket:_d,faRoute:Md,faRss:yd,faRssSquare:bd,faRubleSign:Ld,faRuler:gd,faRulerCombined:zd,faRulerHorizontal:wd,faRulerVertical:Hd,faRunning:kd,faRupeeSign:xd,faSadCry:Sd,faSadTear:Cd,faSatellite:Yd,faSatelliteDish:Td,faSave:Dd,faSchool:Vd,faScrewdriver:Nd,faScroll:Ad,faSdCard:jd,faSearch:Ed,faSearchDollar:Od,faSearchLocation:Pd,faSearchMinus:Rd,faSearchPlus:Fd,faSeedling:Id,faServer:Wd,faShapes:Bd,faShare:Ud,faShareAlt:qd,faShareAltSquare:Gd,faShareSquare:Zd,faShekelSign:Jd,faShieldAlt:$d,faShieldVirus:Kd,faShip:Qd,faShippingFast:Xd,faShoePrints:eh,faShoppingBag:th,faShoppingBasket:nh,faShoppingCart:rh,faShower:ah,faShuttleVan:ch,faSign:ih,faSignInAlt:oh,faSignLanguage:sh,faSignOutAlt:lh,faSignal:uh,faSignature:fh,faSimCard:dh,faSink:hh,faSitemap:mh,faSkating:ph,faSkiing:vh,faSkiingNordic:_h,faSkull:Mh,faSkullCrossbones:yh,faSlash:bh,faSleigh:Lh,faSlidersH:gh,faSmile:zh,faSmileBeam:wh,faSmileWink:Hh,faSmog:kh,faSmoking:xh,faSmokingBan:Sh,faSms:Ch,faSnowboarding:Yh,faSnowflake:Th,faSnowman:Dh,faSnowplow:Vh,faSoap:Nh,faSocks:Ah,faSolarPanel:jh,faSort:Eh,faSortAlphaDown:Oh,faSortAlphaDownAlt:Ph,faSortAlphaUp:Rh,faSortAlphaUpAlt:Fh,faSortAmountDown:Ih,faSortAmountDownAlt:Wh,faSortAmountUp:Bh,faSortAmountUpAlt:Uh,faSortDown:qh,faSortNumericDown:Gh,faSortNumericDownAlt:Zh,faSortNumericUp:Jh,faSortNumericUpAlt:$h,faSortUp:Kh,faSpa:Qh,faSpaceShuttle:Xh,faSpellCheck:em,faSpider:tm,faSpinner:nm,faSplotch:rm,faSprayCan:am,faSquare:cm,faSquareFull:im,faSquareRootAlt:om,faStamp:sm,faStar:lm,faStarAndCrescent:um,faStarHalf:fm,faStarHalfAlt:dm,faStarOfDavid:hm,faStarOfLife:mm,faStepBackward:pm,faStepForward:vm,faStethoscope:_m,faStickyNote:Mm,faStop:ym,faStopCircle:bm,faStopwatch:Lm,faStopwatch20:gm,faStore:zm,faStoreAlt:wm,faStoreAltSlash:Hm,faStoreSlash:km,faStream:xm,faStreetView:Sm,faStrikethrough:Cm,faStroopwafel:Ym,faSubscript:Tm,faSubway:Dm,faSuitcase:Vm,faSuitcaseRolling:Nm,faSun:Am,faSuperscript:jm,faSurprise:Em,faSwatchbook:Om,faSwimmer:Pm,faSwimmingPool:Rm,faSynagogue:Fm,faSync:Im,faSyncAlt:Wm,faSyringe:Bm,faTable:Um,faTableTennis:qm,faTablet:Gm,faTabletAlt:Zm,faTablets:Jm,faTachometerAlt:$m,faTag:Km,faTags:Qm,faTape:Xm,faTasks:ep,faTaxi:tp,faTeeth:np,faTeethOpen:rp,faTemperatureHigh:ap,faTemperatureLow:cp,faTenge:ip,faTerminal:op,faTextHeight:sp,faTextWidth:lp,faTh:up,faThLarge:fp,faThList:dp,faTheaterMasks:hp,faThermometer:mp,faThermometerEmpty:pp,faThermometerFull:vp,faThermometerHalf:_p,faThermometerQuarter:Mp,faThermometerThreeQuarters:yp,faThumbsDown:bp,faThumbsUp:Lp,faThumbtack:gp,faTicketAlt:zp,faTimes:wp,faTimesCircle:Hp,faTint:kp,faTintSlash:xp,faTired:Sp,faToggleOff:Cp,faToggleOn:Yp,faToilet:Tp,faToiletPaper:Dp,faToiletPaperSlash:Vp,faToolbox:Np,faTools:Ap,faTooth:jp,faTorah:Ep,faToriiGate:Op,faTractor:Pp,faTrademark:Rp,faTrafficLight:Fp,faTrailer:Ip,faTrain:Wp,faTram:Bp,faTransgender:Up,faTransgenderAlt:qp,faTrash:Gp,faTrashAlt:Zp,faTrashRestore:Jp,faTrashRestoreAlt:$p,faTree:Kp,faTrophy:Qp,faTruck:Xp,faTruckLoading:ev,faTruckMonster:tv,faTruckMoving:nv,faTruckPickup:rv,faTshirt:av,faTty:cv,faTv:iv,faUmbrella:ov,faUmbrellaBeach:sv,faUnderline:lv,faUndo:uv,faUndoAlt:fv,faUniversalAccess:dv,faUniversity:hv,faUnlink:mv,faUnlock:pv,faUnlockAlt:vv,faUpload:_v,faUser:Mv,faUserAlt:yv,faUserAltSlash:bv,faUserAstronaut:Lv,faUserCheck:gv,faUserCircle:zv,faUserClock:wv,faUserCog:Hv,faUserEdit:kv,faUserFriends:xv,faUserGraduate:Sv,faUserInjured:Cv,faUserLock:Yv,faUserMd:Tv,faUserMinus:Dv,faUserNinja:Vv,faUserNurse:Nv,faUserPlus:Av,faUserSecret:jv,faUserShield:Ev,faUserSlash:Ov,faUserTag:Pv,faUserTie:Rv,faUserTimes:Fv,faUsers:Iv,faUsersCog:Wv,faUsersSlash:Bv,faUtensilSpoon:Uv,faUtensils:qv,faVectorSquare:Gv,faVenus:Zv,faVenusDouble:Jv,faVenusMars:$v,faVest:Kv,faVestPatches:Qv,faVial:Xv,faVials:e_,faVideo:t_,faVideoSlash:n_,faVihara:r_,faVirus:a_,faVirusSlash:c_,faViruses:i_,faVoicemail:o_,faVolleyballBall:s_,faVolumeDown:l_,faVolumeMute:u_,faVolumeOff:f_,faVolumeUp:d_,faVoteYea:h_,faVrCardboard:m_,faWalking:p_,faWallet:v_,faWarehouse:__,faWater:M_,faWaveSquare:y_,faWeight:b_,faWeightHanging:L_,faWheelchair:g_,faWifi:z_,faWind:w_,faWindowClose:H_,faWindowMaximize:k_,faWindowMinimize:x_,faWindowRestore:S_,faWineBottle:C_,faWineGlass:Y_,faWineGlassAlt:T_,faWonSign:D_,faWrench:V_,faXRay:N_,faYenSign:A_,faYinYang:j_}},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(44),a=n(75);function c(){for(var e=[],t=0;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function h(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0||!Array.isArray(t)&&t?l({},e,t):{}}function y(e){var t=e.forwardedRef,n=d(e,["forwardedRef"]),a=n.icon,c=n.mask,i=n.symbol,o=n.className,s=n.title,u=n.titleId,m=_(a),p=M("classes",[].concat(h(function(e){var t,n=e.spin,r=e.pulse,a=e.fixedWidth,c=e.inverse,i=e.border,o=e.listItem,s=e.flip,u=e.size,f=e.rotation,d=e.pull,h=(l(t={"fa-spin":n,"fa-pulse":r,"fa-fw":a,"fa-inverse":c,"fa-border":i,"fa-li":o,"fa-flip-horizontal":"horizontal"===s||"both"===s,"fa-flip-vertical":"vertical"===s||"both"===s},"fa-".concat(u),null!=u),l(t,"fa-rotate-".concat(f),null!=f&&0!==f),l(t,"fa-pull-".concat(d),null!=d),l(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(h).map((function(e){return h[e]?e:null})).filter((function(e){return e}))}(n)),h(o.split(" ")))),L=M("transform","string"==typeof n.transform?r.b.transform(n.transform):n.transform),g=M("mask",_(c)),z=Object(r.a)(m,f({},p,{},L,{},g,{symbol:i,title:s,titleId:u}));if(!z)return function(){var e;!v&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",m),null;var w=z.abstract,H={ref:t};return Object.keys(n).forEach((function(e){y.defaultProps.hasOwnProperty(e)||(H[e]=n[e])})),b(w[0],H)}y.displayName="FontAwesomeIcon",y.propTypes={border:c.a.bool,className:c.a.string,mask:c.a.oneOfType([c.a.object,c.a.array,c.a.string]),fixedWidth:c.a.bool,inverse:c.a.bool,flip:c.a.oneOf(["horizontal","vertical","both"]),icon:c.a.oneOfType([c.a.object,c.a.array,c.a.string]),listItem:c.a.bool,pull:c.a.oneOf(["right","left"]),pulse:c.a.bool,rotation:c.a.oneOf([0,90,180,270]),size:c.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:c.a.bool,symbol:c.a.oneOfType([c.a.bool,c.a.string]),title:c.a.string,transform:c.a.oneOfType([c.a.string,c.a.object]),swapOpacity:c.a.bool},y.defaultProps={border:!1,className:"",mask:null,fixedWidth:!1,inverse:!1,flip:null,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,symbol:!1,title:"",transform:null,swapOpacity:!1};var b=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var a=(n.children||[]).map((function(n){return e(t,n)})),c=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=p(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[m(t)]=r}return e}),{attrs:{}}),i=r.style,o=void 0===i?{}:i,s=d(r,["style"]);return c.attrs.style=f({},c.attrs.style,{},o),t.apply(void 0,[n.tag,f({},c.attrs,{},s)].concat(h(a)))}.bind(null,o.a.createElement)},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return c}));var r=n(18);function a(){for(var e=[],t=0;t0?e.prototype.requestAsyncId.call(this,t,n,r):(t.actions.push(this),t.scheduled||(t.scheduled=s(t.flush.bind(t,null))))},t.prototype.recycleAsyncId=function(t,n,r){if(void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0)return e.prototype.recycleAsyncId.call(this,t,n,r);0===t.actions.length&&(l(n),t.scheduled=void 0)},t}(n(38).a),f=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.a(t,e),t.prototype.flush=function(e){this.active=!0,this.scheduled=void 0;var t,n=this.actions,r=-1,a=n.length;e=e||n.shift();do{if(t=e.execute(e.state,e.delay))break}while(++r1)this.connection=null;else{var n=this.connection,r=e._connection;this.connection=null,!r||n&&r!==n||r.unsubscribe()}}else this.connection=null},t}(a.a)},function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var r=n(0),a=n(8),c=n(62),i=n(7),o=n(73),s=n(29),l=n(80),u=function(e){function t(t,n,r){void 0===t&&(t=Number.POSITIVE_INFINITY),void 0===n&&(n=Number.POSITIVE_INFINITY);var a=e.call(this)||this;return a.scheduler=r,a._events=[],a._infiniteTimeWindow=!1,a._bufferSize=t<1?1:t,a._windowTime=n<1?1:n,n===Number.POSITIVE_INFINITY?(a._infiniteTimeWindow=!0,a.next=a.nextInfiniteTimeWindow):a.next=a.nextTimeWindow,a}return r.a(t,e),t.prototype.nextInfiniteTimeWindow=function(t){if(!this.isStopped){var n=this._events;n.push(t),n.length>this._bufferSize&&n.shift()}e.prototype.next.call(this,t)},t.prototype.nextTimeWindow=function(t){this.isStopped||(this._events.push(new f(this._getNow(),t)),this._trimBufferThenGetEvents()),e.prototype.next.call(this,t)},t.prototype._subscribe=function(e){var t,n=this._infiniteTimeWindow,r=n?this._events:this._trimBufferThenGetEvents(),a=this.scheduler,c=r.length;if(this.closed)throw new s.a;if(this.isStopped||this.hasError?t=i.a.EMPTY:(this.observers.push(e),t=new l.a(this,e)),a&&e.add(e=new o.a(e,a)),n)for(var u=0;ut&&(c=Math.max(c,a-t)),c>0&&r.splice(0,c),r},t}(a.a),f=function(){return function(e,t){this.time=e,this.value=t}}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(5);function a(e,t){return t?new r.a((function(n){return t.schedule(c,0,{error:e,subscriber:n})})):new r.a((function(t){return t.error(e)}))}function c(e){var t=e.error;e.subscriber.error(t)}},function(e,t,n){"use strict";n.d(t,"b",(function(){return u})),n.d(t,"a",(function(){return f}));var r=n(0),a=n(12),c=n(10),i=n(19),o=n(16),s=n(35),l={};function u(){for(var e=[],t=0;tthis.index},e.prototype.hasCompleted=function(){return this.array.length===this.index},e}(),m=function(e){function t(t,n,r){var a=e.call(this,t)||this;return a.parent=n,a.observable=r,a.stillUnsubscribed=!0,a.buffer=[],a.isComplete=!1,a}return r.a(t,e),t.prototype[o.a]=function(){return this},t.prototype.next=function(){var e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}},t.prototype.hasValue=function(){return this.buffer.length>0},t.prototype.hasCompleted=function(){return 0===this.buffer.length&&this.isComplete},t.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},t.prototype.notifyNext=function(e){this.buffer.push(e),this.parent.checkIterators()},t.prototype.subscribe=function(){return Object(s.c)(this.observable,new s.a(this))},t}(s.b)},function(e,t,n){"use strict";function r(e){return null!==e&&"object"==typeof e}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(2);function a(e){for(;e;){var t=e,n=t.closed,a=t.destination,c=t.isStopped;if(n||c)return!1;e=a&&a instanceof r.a?a:null}return!0}},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(5),a=n(7);function c(e,t){return new r.a((function(n){var r=new a.a,c=0;return r.add(t.schedule((function(){c!==e.length?(n.next(e[c++]),n.closed||r.add(this.schedule())):n.complete()}))),r}))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var r=n(17),a=n(43),c={closed:!0,next:function(e){},error:function(e){if(r.a.useDeprecatedSynchronousErrorHandling)throw e;Object(a.a)(e)},complete:function(){}}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return i}));var r=n(0),a=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.scheduler=t,r.work=n,r}return r.a(t,e),t.prototype.schedule=function(t,n){return void 0===n&&(n=0),n>0?e.prototype.schedule.call(this,t,n):(this.delay=n,this.state=t,this.scheduler.flush(this),this)},t.prototype.execute=function(t,n){return n>0||this.closed?e.prototype.execute.call(this,t,n):this._execute(t,n)},t.prototype.requestAsyncId=function(t,n,r){return void 0===r&&(r=0),null!==r&&r>0||null===r&&this.delay>0?e.prototype.requestAsyncId.call(this,t,n,r):t.flush(this)},t}(n(38).a),c=new(function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return r.a(t,e),t}(n(36).a))(a),i=c},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){function e(t,n){void 0===n&&(n=e.now),this.SchedulerAction=t,this.now=n}return e.prototype.schedule=function(e,t,n){return void 0===t&&(t=0),new this.SchedulerAction(this,e).schedule(n,t)},e.now=function(){return Date.now()},e}()},function(e,t,n){"use strict";(function(e,r){ +/*! + * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n-1;a--){var c=n[a],i=(c.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=c)}return v.head.insertBefore(t,r),e}}function G(){for(var e=12,t="";e-- >0;)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[62*Math.random()|0];return t}function Z(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function J(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,": ").concat(e[n],";")}),"")}function $(e){return e.size!==U.size||e.x!==U.x||e.y!==U.y||e.rotate!==U.rotate||e.flipX||e.flipY}function K(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},c="translate(".concat(32*t.x,", ").concat(32*t.y,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),o="rotate(".concat(t.rotate," 0 0)");return{outer:a,inner:{transform:"".concat(c," ").concat(i," ").concat(o)},path:{transform:"translate(".concat(r/2*-1," -256)")}}}var Q={x:0,y:0,width:"100%",height:"100%"};function X(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function ee(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,c=e.iconName,i=e.transform,s=e.symbol,l=e.title,u=e.maskId,f=e.titleId,d=e.extra,h=e.watchable,m=void 0!==h&&h,p=r.found?r:n,v=p.width,_=p.height,M="fak"===a,y=M?"":"fa-w-".concat(Math.ceil(v/_*16)),b=[w.replacementClass,c?"".concat(w.familyPrefix,"-").concat(c):"",y].filter((function(e){return-1===d.classes.indexOf(e)})).filter((function(e){return""!==e||!!e})).concat(d.classes).join(" "),L={children:[],attributes:o({},d.attributes,{"data-prefix":a,"data-icon":c,class:b,role:d.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(v," ").concat(_)})},g=M&&!~d.classes.indexOf("fa-fw")?{width:"".concat(v/_*16*.0625,"em")}:{};m&&(L.attributes["data-fa-i2svg"]=""),l&&L.children.push({tag:"title",attributes:{id:L.attributes["aria-labelledby"]||"title-".concat(f||G())},children:[l]});var z=o({},L,{prefix:a,iconName:c,main:n,mask:r,maskId:u,transform:i,symbol:s,styles:o({},g,d.styles)}),H=r.found&&n.found?function(e){var t,n=e.children,r=e.attributes,a=e.main,c=e.mask,i=e.maskId,s=e.transform,l=a.width,u=a.icon,f=c.width,d=c.icon,h=K({transform:s,containerWidth:f,iconWidth:l}),m={tag:"rect",attributes:o({},Q,{fill:"white"})},p=u.children?{children:u.children.map(X)}:{},v={tag:"g",attributes:o({},h.inner),children:[X(o({tag:u.tag,attributes:o({},u.attributes,h.path)},p))]},_={tag:"g",attributes:o({},h.outer),children:[v]},M="mask-".concat(i||G()),y="clip-".concat(i||G()),b={tag:"mask",attributes:o({},Q,{id:M,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[m,_]},L={tag:"defs",children:[{tag:"clipPath",attributes:{id:y},children:(t=d,"g"===t.tag?t.children:[t])},b]};return n.push(L,{tag:"rect",attributes:o({fill:"currentColor","clip-path":"url(#".concat(y,")"),mask:"url(#".concat(M,")")},Q)}),{children:n,attributes:r}}(z):function(e){var t=e.children,n=e.attributes,r=e.main,a=e.transform,c=J(e.styles);if(c.length>0&&(n.style=c),$(a)){var i=K({transform:a,containerWidth:r.width,iconWidth:r.width});t.push({tag:"g",attributes:o({},i.outer),children:[{tag:"g",attributes:o({},i.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:o({},r.icon.attributes,i.path)}]}]})}else t.push(r.icon);return{children:t,attributes:n}}(z),k=H.children,x=H.attributes;return z.children=k,z.attributes=x,s?function(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,c=e.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:o({},a,{id:!0===c?"".concat(t,"-").concat(w.familyPrefix,"-").concat(n):c}),children:r}]}]}(z):function(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,c=e.styles,i=e.transform;if($(i)&&n.found&&!r.found){var s={x:n.width/n.height/2,y:.5};a.style=J(o({},c,{"transform-origin":"".concat(s.x+i.x/16,"em ").concat(s.y+i.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}(z)}var te=function(){},ne=(w.measurePerformance&&_&&_.mark&&_.measure,function(e,t,n,r){var a,c,i,o=Object.keys(e),s=o.length,l=void 0!==r?function(e,t){return function(n,r,a,c){return e.call(t,n,r,a,c)}}(t,r):t;for(void 0===n?(a=1,i=e[o[0]]):(a=0,i=n);a2&&void 0!==arguments[2]?arguments[2]:{},r=n.skipHooks,a=void 0!==r&&r,c=Object.keys(t).reduce((function(e,n){var r=t[n];return!!r.icon?e[r.iconName]=r.icon:e[n]=r,e}),{});"function"!=typeof k.hooks.addPack||a?k.styles[e]=o({},k.styles[e]||{},c):k.hooks.addPack(e,c),"fas"===e&&re("fa",t)}var ae=k.styles,ce=k.shims,ie=function(){var e=function(e){return ne(ae,(function(t,n,r){return t[r]=ne(n,e,{}),t}),{})};e((function(e,t,n){return t[3]&&(e[t[3]]=n),e})),e((function(e,t,n){var r=t[2];return e[n]=n,r.forEach((function(t){e[t]=n})),e}));var t="far"in ae;ne(ce,(function(e,n){var r=n[0],a=n[1],c=n[2];return"far"!==a||t||(a="fas"),e[r]={prefix:a,iconName:c},e}),{})};ie();k.styles;function oe(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}function se(e){var t=e.tag,n=e.attributes,r=void 0===n?{}:n,a=e.children,c=void 0===a?[]:a;return"string"==typeof e?Z(e):"<".concat(t," ").concat(function(e){return Object.keys(e||{}).reduce((function(t,n){return t+"".concat(n,'="').concat(Z(e[n]),'" ')}),"").trim()}(r),">").concat(c.map(se).join(""),"")}var le=function(e){var t={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return e?e.toLowerCase().split(" ").reduce((function(e,t){var n=t.toLowerCase().split("-"),r=n[0],a=n.slice(1).join("-");if(r&&"h"===a)return e.flipX=!0,e;if(r&&"v"===a)return e.flipY=!0,e;if(a=parseFloat(a),isNaN(a))return e;switch(r){case"grow":e.size=e.size+a;break;case"shrink":e.size=e.size-a;break;case"left":e.x=e.x-a;break;case"right":e.x=e.x+a;break;case"up":e.y=e.y-a;break;case"down":e.y=e.y+a;break;case"rotate":e.rotate=e.rotate+a}return e}),t):t};function ue(e){this.name="MissingIcon",this.message=e||"Icon unavailable",this.stack=(new Error).stack}ue.prototype=Object.create(Error.prototype),ue.prototype.constructor=ue;var fe={fill:"currentColor"},de={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},he={tag:"path",attributes:o({},fe,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})},me=o({},de,{attributeName:"opacity"});o({},fe,{cx:"256",cy:"364",r:"28"}),o({},de,{attributeName:"r",values:"28;14;28;28;14;28;"}),o({},me,{values:"1;0;1;1;0;1;"}),o({},fe,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),o({},me,{values:"1;0;0;0;0;1;"}),o({},fe,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),o({},me,{values:"0;0;1;1;0;0;"}),k.styles;function pe(e){var t=e[0],n=e[1],r=s(e.slice(4),1)[0];return{found:!0,width:t,height:n,icon:Array.isArray(r)?{tag:"g",attributes:{class:"".concat(w.familyPrefix,"-").concat(L.GROUP)},children:[{tag:"path",attributes:{class:"".concat(w.familyPrefix,"-").concat(L.SECONDARY),fill:"currentColor",d:r[0]}},{tag:"path",attributes:{class:"".concat(w.familyPrefix,"-").concat(L.PRIMARY),fill:"currentColor",d:r[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:r}}}}k.styles;function ve(){var e="svg-inline--fa",t=w.familyPrefix,n=w.replacementClass,r='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';if("fa"!==t||n!==e){var a=new RegExp("\\.".concat("fa","\\-"),"g"),c=new RegExp("\\--".concat("fa","\\-"),"g"),i=new RegExp("\\.".concat(e),"g");r=r.replace(a,".".concat(t,"-")).replace(c,"--".concat(t,"-")).replace(i,".".concat(n))}return r}function _e(){w.autoAddCss&&!ge&&(q(ve()),ge=!0)}function Me(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map((function(e){return se(e)}))}}),Object.defineProperty(e,"node",{get:function(){if(M){var t=v.createElement("div");return t.innerHTML=e.html,t.children}}}),e}function ye(e){var t=e.prefix,n=void 0===t?"fa":t,r=e.iconName;if(r)return oe(Le.definitions,n,r)||oe(k.styles,n,r)}var be,Le=new(function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.definitions={}}var t,n,r;return t=e,(n=[{key:"add",value:function(){for(var e=this,t=arguments.length,n=new Array(t),r=0;r1&&void 0!==arguments[1]?arguments[1]:{},n=t.transform,r=void 0===n?U:n,a=t.symbol,c=void 0!==a&&a,i=t.mask,s=void 0===i?null:i,l=t.maskId,u=void 0===l?null:l,f=t.title,d=void 0===f?null:f,h=t.titleId,m=void 0===h?null:h,p=t.classes,v=void 0===p?[]:p,_=t.attributes,M=void 0===_?{}:_,y=t.styles,b=void 0===y?{}:y;if(e){var L=e.prefix,g=e.iconName,z=e.icon;return Me(o({type:"icon"},e),(function(){return _e(),w.autoA11y&&(d?M["aria-labelledby"]="".concat(w.replacementClass,"-title-").concat(m||G()):(M["aria-hidden"]="true",M.focusable="false")),ee({icons:{main:pe(z),mask:s?pe(s.icon):{found:!1,width:null,height:null,icon:{}}},prefix:L,iconName:g,transform:o({},U,r),symbol:c,title:d,maskId:u,titleId:m,extra:{attributes:M,styles:b,classes:v}})}))}},function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=(e||{}).icon?e:ye(e||{}),r=t.mask;return r&&(r=(r||{}).icon?r:ye(r||{})),be(n,o({},t,{mask:r}))})}).call(this,n(50),n(261).setImmediate)},function(e,t,n){"use strict";var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(a,c){function i(e){try{s(r.next(e))}catch(e){c(e)}}function o(e){try{s(r.throw(e))}catch(e){c(e)}}function s(e){var t;e.done?a(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,o)}s((r=r.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ParseTagsFromReplicaSet=t.IconForTag=t.ImageTag=t.formatTimestamp=t.useServerData=void 0;const a=n(4),c=n(1),i=n(40);var o;t.useServerData=function(e){const[t,n]=a.useState({});return a.useEffect(()=>{(()=>{r(this,void 0,void 0,(function*(){const t=yield e();n(t)}))})()},[e]),t},t.formatTimestamp=function(e){const t=c(e,"YYYY-MM-DD HH:mm:ss Z z");return e&&t.isValid()?t.format("MMM D YYYY [at] hh:mm:ss"):"Never"},function(e){e.Canary="canary",e.Stable="stable",e.Active="active",e.Preview="preview"}(o=t.ImageTag||(t.ImageTag={}));t.IconForTag=e=>{switch(e){case o.Canary:return i.faDove;case o.Stable:return i.faThumbsUp;case o.Preview:return i.faSearch;case o.Active:return i.faRunning}};t.ParseTagsFromReplicaSet=e=>{const t=[];return e.canary&&t.push(o.Canary),e.stable&&t.push(o.Stable),e.active&&t.push(o.Active),e.preview&&t.push(o.Preview),t}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InfoItemRow=t.InfoItem=t.InfoItemKind=void 0;const r=n(45),a=n(4),c=n(32);n(264),function(e){e.Default="default",e.Colored="colored"}(t.InfoItemKind||(t.InfoItemKind={}));t.InfoItem=e=>a.createElement(c.ThemeDiv,{className:"info-item"+(e.kind?" info-item--"+e.kind:""),style:e.style},e.icon&&a.createElement("span",{style:{marginRight:"5px"}},a.createElement(r.FontAwesomeIcon,{icon:e.icon})),e.content&&e.content);t.InfoItemRow=e=>{let{label:n,content:r}=e;return Array.isArray(r)||(r=[r]),a.createElement("div",{className:"info-item--row"},e.label&&a.createElement("label",null,n),a.createElement("div",{style:{marginLeft:"auto",display:"flex"}},r.map((e,n)=>a.createElement(t.InfoItem,Object.assign({key:`${e} ${n}`},e)))))}},function(e,t,n){"use strict";n.r(t),n.d(t,"far",(function(){return Zt})),n.d(t,"prefix",(function(){return r})),n.d(t,"faAddressBook",(function(){return a})),n.d(t,"faAddressCard",(function(){return c})),n.d(t,"faAngry",(function(){return i})),n.d(t,"faArrowAltCircleDown",(function(){return o})),n.d(t,"faArrowAltCircleLeft",(function(){return s})),n.d(t,"faArrowAltCircleRight",(function(){return l})),n.d(t,"faArrowAltCircleUp",(function(){return u})),n.d(t,"faBell",(function(){return f})),n.d(t,"faBellSlash",(function(){return d})),n.d(t,"faBookmark",(function(){return h})),n.d(t,"faBuilding",(function(){return m})),n.d(t,"faCalendar",(function(){return p})),n.d(t,"faCalendarAlt",(function(){return v})),n.d(t,"faCalendarCheck",(function(){return _})),n.d(t,"faCalendarMinus",(function(){return M})),n.d(t,"faCalendarPlus",(function(){return y})),n.d(t,"faCalendarTimes",(function(){return b})),n.d(t,"faCaretSquareDown",(function(){return L})),n.d(t,"faCaretSquareLeft",(function(){return g})),n.d(t,"faCaretSquareRight",(function(){return z})),n.d(t,"faCaretSquareUp",(function(){return w})),n.d(t,"faChartBar",(function(){return H})),n.d(t,"faCheckCircle",(function(){return k})),n.d(t,"faCheckSquare",(function(){return x})),n.d(t,"faCircle",(function(){return S})),n.d(t,"faClipboard",(function(){return C})),n.d(t,"faClock",(function(){return Y})),n.d(t,"faClone",(function(){return T})),n.d(t,"faClosedCaptioning",(function(){return D})),n.d(t,"faComment",(function(){return V})),n.d(t,"faCommentAlt",(function(){return N})),n.d(t,"faCommentDots",(function(){return A})),n.d(t,"faComments",(function(){return j})),n.d(t,"faCompass",(function(){return E})),n.d(t,"faCopy",(function(){return O})),n.d(t,"faCopyright",(function(){return P})),n.d(t,"faCreditCard",(function(){return R})),n.d(t,"faDizzy",(function(){return F})),n.d(t,"faDotCircle",(function(){return I})),n.d(t,"faEdit",(function(){return W})),n.d(t,"faEnvelope",(function(){return B})),n.d(t,"faEnvelopeOpen",(function(){return U})),n.d(t,"faEye",(function(){return q})),n.d(t,"faEyeSlash",(function(){return G})),n.d(t,"faFile",(function(){return Z})),n.d(t,"faFileAlt",(function(){return J})),n.d(t,"faFileArchive",(function(){return $})),n.d(t,"faFileAudio",(function(){return K})),n.d(t,"faFileCode",(function(){return Q})),n.d(t,"faFileExcel",(function(){return X})),n.d(t,"faFileImage",(function(){return ee})),n.d(t,"faFilePdf",(function(){return te})),n.d(t,"faFilePowerpoint",(function(){return ne})),n.d(t,"faFileVideo",(function(){return re})),n.d(t,"faFileWord",(function(){return ae})),n.d(t,"faFlag",(function(){return ce})),n.d(t,"faFlushed",(function(){return ie})),n.d(t,"faFolder",(function(){return oe})),n.d(t,"faFolderOpen",(function(){return se})),n.d(t,"faFontAwesomeLogoFull",(function(){return le})),n.d(t,"faFrown",(function(){return ue})),n.d(t,"faFrownOpen",(function(){return fe})),n.d(t,"faFutbol",(function(){return de})),n.d(t,"faGem",(function(){return he})),n.d(t,"faGrimace",(function(){return me})),n.d(t,"faGrin",(function(){return pe})),n.d(t,"faGrinAlt",(function(){return ve})),n.d(t,"faGrinBeam",(function(){return _e})),n.d(t,"faGrinBeamSweat",(function(){return Me})),n.d(t,"faGrinHearts",(function(){return ye})),n.d(t,"faGrinSquint",(function(){return be})),n.d(t,"faGrinSquintTears",(function(){return Le})),n.d(t,"faGrinStars",(function(){return ge})),n.d(t,"faGrinTears",(function(){return ze})),n.d(t,"faGrinTongue",(function(){return we})),n.d(t,"faGrinTongueSquint",(function(){return He})),n.d(t,"faGrinTongueWink",(function(){return ke})),n.d(t,"faGrinWink",(function(){return xe})),n.d(t,"faHandLizard",(function(){return Se})),n.d(t,"faHandPaper",(function(){return Ce})),n.d(t,"faHandPeace",(function(){return Ye})),n.d(t,"faHandPointDown",(function(){return Te})),n.d(t,"faHandPointLeft",(function(){return De})),n.d(t,"faHandPointRight",(function(){return Ve})),n.d(t,"faHandPointUp",(function(){return Ne})),n.d(t,"faHandPointer",(function(){return Ae})),n.d(t,"faHandRock",(function(){return je})),n.d(t,"faHandScissors",(function(){return Ee})),n.d(t,"faHandSpock",(function(){return Oe})),n.d(t,"faHandshake",(function(){return Pe})),n.d(t,"faHdd",(function(){return Re})),n.d(t,"faHeart",(function(){return Fe})),n.d(t,"faHospital",(function(){return Ie})),n.d(t,"faHourglass",(function(){return We})),n.d(t,"faIdBadge",(function(){return Be})),n.d(t,"faIdCard",(function(){return Ue})),n.d(t,"faImage",(function(){return qe})),n.d(t,"faImages",(function(){return Ge})),n.d(t,"faKeyboard",(function(){return Ze})),n.d(t,"faKiss",(function(){return Je})),n.d(t,"faKissBeam",(function(){return $e})),n.d(t,"faKissWinkHeart",(function(){return Ke})),n.d(t,"faLaugh",(function(){return Qe})),n.d(t,"faLaughBeam",(function(){return Xe})),n.d(t,"faLaughSquint",(function(){return et})),n.d(t,"faLaughWink",(function(){return tt})),n.d(t,"faLemon",(function(){return nt})),n.d(t,"faLifeRing",(function(){return rt})),n.d(t,"faLightbulb",(function(){return at})),n.d(t,"faListAlt",(function(){return ct})),n.d(t,"faMap",(function(){return it})),n.d(t,"faMeh",(function(){return ot})),n.d(t,"faMehBlank",(function(){return st})),n.d(t,"faMehRollingEyes",(function(){return lt})),n.d(t,"faMinusSquare",(function(){return ut})),n.d(t,"faMoneyBillAlt",(function(){return ft})),n.d(t,"faMoon",(function(){return dt})),n.d(t,"faNewspaper",(function(){return ht})),n.d(t,"faObjectGroup",(function(){return mt})),n.d(t,"faObjectUngroup",(function(){return pt})),n.d(t,"faPaperPlane",(function(){return vt})),n.d(t,"faPauseCircle",(function(){return _t})),n.d(t,"faPlayCircle",(function(){return Mt})),n.d(t,"faPlusSquare",(function(){return yt})),n.d(t,"faQuestionCircle",(function(){return bt})),n.d(t,"faRegistered",(function(){return Lt})),n.d(t,"faSadCry",(function(){return gt})),n.d(t,"faSadTear",(function(){return zt})),n.d(t,"faSave",(function(){return wt})),n.d(t,"faShareSquare",(function(){return Ht})),n.d(t,"faSmile",(function(){return kt})),n.d(t,"faSmileBeam",(function(){return xt})),n.d(t,"faSmileWink",(function(){return St})),n.d(t,"faSnowflake",(function(){return Ct})),n.d(t,"faSquare",(function(){return Yt})),n.d(t,"faStar",(function(){return Tt})),n.d(t,"faStarHalf",(function(){return Dt})),n.d(t,"faStickyNote",(function(){return Vt})),n.d(t,"faStopCircle",(function(){return Nt})),n.d(t,"faSun",(function(){return At})),n.d(t,"faSurprise",(function(){return jt})),n.d(t,"faThumbsDown",(function(){return Et})),n.d(t,"faThumbsUp",(function(){return Ot})),n.d(t,"faTimesCircle",(function(){return Pt})),n.d(t,"faTired",(function(){return Rt})),n.d(t,"faTrashAlt",(function(){return Ft})),n.d(t,"faUser",(function(){return It})),n.d(t,"faUserCircle",(function(){return Wt})),n.d(t,"faWindowClose",(function(){return Bt})),n.d(t,"faWindowMaximize",(function(){return Ut})),n.d(t,"faWindowMinimize",(function(){return qt})),n.d(t,"faWindowRestore",(function(){return Gt})); +/*! + * Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + */ +var r="far",a={prefix:"far",iconName:"address-book",icon:[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-68 304H48V48h320v416zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"]},c={prefix:"far",iconName:"address-card",icon:[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H48V80h480v352zM208 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2zM360 320h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8z"]},i={prefix:"far",iconName:"angry",icon:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-144c-33.6 0-65.2 14.8-86.8 40.6-8.5 10.2-7.1 25.3 3.1 33.8s25.3 7.2 33.8-3c24.8-29.7 75-29.7 99.8 0 8.1 9.7 23.2 11.9 33.8 3 10.2-8.5 11.5-23.6 3.1-33.8-21.6-25.8-53.2-40.6-86.8-40.6zm-48-72c10.3 0 19.9-6.7 23-17.1 3.8-12.7-3.4-26.1-16.1-29.9l-80-24c-12.8-3.9-26.1 3.4-29.9 16.1-3.8 12.7 3.4 26.1 16.1 29.9l28.2 8.5c-3.1 4.9-5.3 10.4-5.3 16.6 0 17.7 14.3 32 32 32s32-14.4 32-32.1zm199-54.9c-3.8-12.7-17.1-19.9-29.9-16.1l-80 24c-12.7 3.8-19.9 17.2-16.1 29.9 3.1 10.4 12.7 17.1 23 17.1 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.2-2.2-11.7-5.3-16.6l28.2-8.5c12.7-3.7 19.9-17.1 16.1-29.8z"]},o={prefix:"far",iconName:"arrow-alt-circle-down",icon:[512,512,[],"f358","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm-32-316v116h-67c-10.7 0-16 12.9-8.5 20.5l99 99c4.7 4.7 12.3 4.7 17 0l99-99c7.6-7.6 2.2-20.5-8.5-20.5h-67V140c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12z"]},s={prefix:"far",iconName:"arrow-alt-circle-left",icon:[512,512,[],"f359","M8 256c0 137 111 248 248 248s248-111 248-248S393 8 256 8 8 119 8 256zm448 0c0 110.5-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56s200 89.5 200 200zm-72-20v40c0 6.6-5.4 12-12 12H256v67c0 10.7-12.9 16-20.5 8.5l-99-99c-4.7-4.7-4.7-12.3 0-17l99-99c7.6-7.6 20.5-2.2 20.5 8.5v67h116c6.6 0 12 5.4 12 12z"]},l={prefix:"far",iconName:"arrow-alt-circle-right",icon:[512,512,[],"f35a","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm72 20v-40c0-6.6 5.4-12 12-12h116v-67c0-10.7 12.9-16 20.5-8.5l99 99c4.7 4.7 4.7 12.3 0 17l-99 99c-7.6 7.6-20.5 2.2-20.5-8.5v-67H140c-6.6 0-12-5.4-12-12z"]},u={prefix:"far",iconName:"arrow-alt-circle-up",icon:[512,512,[],"f35b","M256 504c137 0 248-111 248-248S393 8 256 8 8 119 8 256s111 248 248 248zm0-448c110.5 0 200 89.5 200 200s-89.5 200-200 200S56 366.5 56 256 145.5 56 256 56zm20 328h-40c-6.6 0-12-5.4-12-12V256h-67c-10.7 0-16-12.9-8.5-20.5l99-99c4.7-4.7 12.3-4.7 17 0l99 99c7.6 7.6 2.2 20.5-8.5 20.5h-67v116c0 6.6-5.4 12-12 12z"]},f={prefix:"far",iconName:"bell",icon:[448,512,[],"f0f3","M439.39 362.29c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71zM67.53 368c21.22-27.97 44.42-74.33 44.53-159.42 0-.2-.06-.38-.06-.58 0-61.86 50.14-112 112-112s112 50.14 112 112c0 .2-.06.38-.06.58.11 85.1 23.31 131.46 44.53 159.42H67.53zM224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64z"]},d={prefix:"far",iconName:"bell-slash",icon:[640,512,[],"f1f6","M633.99 471.02L36 3.51C29.1-2.01 19.03-.9 13.51 6l-10 12.49C-2.02 25.39-.9 35.46 6 40.98l598 467.51c6.9 5.52 16.96 4.4 22.49-2.49l10-12.49c5.52-6.9 4.41-16.97-2.5-22.49zM163.53 368c16.71-22.03 34.48-55.8 41.4-110.58l-45.47-35.55c-3.27 90.73-36.47 120.68-54.84 140.42-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h279.66l-61.4-48H163.53zM320 96c61.86 0 112 50.14 112 112 0 .2-.06.38-.06.58.02 16.84 1.16 31.77 2.79 45.73l59.53 46.54c-8.31-22.13-14.34-51.49-14.34-92.85 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-26.02 5.41-49.45 16.94-69.13 32.72l38.17 29.84C275 103.18 296.65 96 320 96zm0 416c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"]},h={prefix:"far",iconName:"bookmark",icon:[384,512,[],"f02e","M336 0H48C21.49 0 0 21.49 0 48v464l192-112 192 112V48c0-26.51-21.49-48-48-48zm0 428.43l-144-84-144 84V54a6 6 0 0 1 6-6h276c3.314 0 6 2.683 6 5.996V428.43z"]},m={prefix:"far",iconName:"building",icon:[448,512,[],"f1ad","M128 148v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12zm140 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-128 96h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm128 0h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm-76 84v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm76 12h40c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12zm180 124v36H0v-36c0-6.6 5.4-12 12-12h19.5V24c0-13.3 10.7-24 24-24h337c13.3 0 24 10.7 24 24v440H436c6.6 0 12 5.4 12 12zM79.5 463H192v-67c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v67h112.5V49L80 48l-.5 415z"]},p={prefix:"far",iconName:"calendar",icon:[448,512,[],"f133","M400 64h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V160h352v298c0 3.3-2.7 6-6 6z"]},v={prefix:"far",iconName:"calendar-alt",icon:[448,512,[],"f073","M148 288h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm108-12v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 96v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm-96 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-40c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm96-260v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},_={prefix:"far",iconName:"calendar-check",icon:[448,512,[],"f274","M400 64h-48V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H160V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v52H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V160h352v298a6 6 0 0 1-6 6zm-52.849-200.65L198.842 404.519c-4.705 4.667-12.303 4.637-16.971-.068l-75.091-75.699c-4.667-4.705-4.637-12.303.068-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l44.104 44.461 111.072-110.181c4.705-4.667 12.303-4.637 16.971.068l22.536 22.718c4.667 4.705 4.636 12.303-.069 16.97z"]},M={prefix:"far",iconName:"calendar-minus",icon:[448,512,[],"f272","M124 328c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v24c0 6.6-5.4 12-12 12H124zm324-216v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},y={prefix:"far",iconName:"calendar-plus",icon:[448,512,[],"f271","M336 292v24c0 6.6-5.4 12-12 12h-76v76c0 6.6-5.4 12-12 12h-24c-6.6 0-12-5.4-12-12v-76h-76c-6.6 0-12-5.4-12-12v-24c0-6.6 5.4-12 12-12h76v-76c0-6.6 5.4-12 12-12h24c6.6 0 12 5.4 12 12v76h76c6.6 0 12 5.4 12 12zm112-180v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},b={prefix:"far",iconName:"calendar-times",icon:[448,512,[],"f273","M311.7 374.7l-17 17c-4.7 4.7-12.3 4.7-17 0L224 337.9l-53.7 53.7c-4.7 4.7-12.3 4.7-17 0l-17-17c-4.7-4.7-4.7-12.3 0-17l53.7-53.7-53.7-53.7c-4.7-4.7-4.7-12.3 0-17l17-17c4.7-4.7 12.3-4.7 17 0l53.7 53.7 53.7-53.7c4.7-4.7 12.3-4.7 17 0l17 17c4.7 4.7 4.7 12.3 0 17L257.9 304l53.7 53.7c4.8 4.7 4.8 12.3.1 17zM448 112v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48zm-48 346V160H48v298c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},L={prefix:"far",iconName:"caret-square-down",icon:[448,512,[],"f150","M125.1 208h197.8c10.7 0 16.1 13 8.5 20.5l-98.9 98.3c-4.7 4.7-12.2 4.7-16.9 0l-98.9-98.3c-7.7-7.5-2.3-20.5 8.4-20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},g={prefix:"far",iconName:"caret-square-left",icon:[448,512,[],"f191","M272 157.1v197.8c0 10.7-13 16.1-20.5 8.5l-98.3-98.9c-4.7-4.7-4.7-12.2 0-16.9l98.3-98.9c7.5-7.7 20.5-2.3 20.5 8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},z={prefix:"far",iconName:"caret-square-right",icon:[448,512,[],"f152","M176 354.9V157.1c0-10.7 13-16.1 20.5-8.5l98.3 98.9c4.7 4.7 4.7 12.2 0 16.9l-98.3 98.9c-7.5 7.7-20.5 2.3-20.5-8.4zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},w={prefix:"far",iconName:"caret-square-up",icon:[448,512,[],"f151","M322.9 304H125.1c-10.7 0-16.1-13-8.5-20.5l98.9-98.3c4.7-4.7 12.2-4.7 16.9 0l98.9 98.3c7.7 7.5 2.3 20.5-8.4 20.5zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},H={prefix:"far",iconName:"chart-bar",icon:[512,512,[],"f080","M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z"]},k={prefix:"far",iconName:"check-circle",icon:[512,512,[],"f058","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z"]},x={prefix:"far",iconName:"check-square",icon:[448,512,[],"f14a","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm0 400H48V80h352v352zm-35.864-241.724L191.547 361.48c-4.705 4.667-12.303 4.637-16.97-.068l-90.781-91.516c-4.667-4.705-4.637-12.303.069-16.971l22.719-22.536c4.705-4.667 12.303-4.637 16.97.069l59.792 60.277 141.352-140.216c4.705-4.667 12.303-4.637 16.97.068l22.536 22.718c4.667 4.706 4.637 12.304-.068 16.971z"]},S={prefix:"far",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z"]},C={prefix:"far",iconName:"clipboard",icon:[384,512,[],"f328","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm144 418c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h42v36c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-36h42c3.3 0 6 2.7 6 6z"]},Y={prefix:"far",iconName:"clock",icon:[512,512,[],"f017","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z"]},T={prefix:"far",iconName:"clone",icon:[512,512,[],"f24d","M464 0H144c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h320c26.51 0 48-21.49 48-48v-48h48c26.51 0 48-21.49 48-48V48c0-26.51-21.49-48-48-48zM362 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h42v224c0 26.51 21.49 48 48 48h224v42a6 6 0 0 1-6 6zm96-96H150a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h308a6 6 0 0 1 6 6v308a6 6 0 0 1-6 6z"]},D={prefix:"far",iconName:"closed-captioning",icon:[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zm-6 336H54c-3.3 0-6-2.7-6-6V118c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v276c0 3.3-2.7 6-6 6zm-211.1-85.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7zm190.4 0c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.9-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 220.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6 2.8-2.5 7.1-2.1 9.2.9l19.6 27.7z"]},V={prefix:"far",iconName:"comment",icon:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"]},N={prefix:"far",iconName:"comment-alt",icon:[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 7.1 5.8 12 12 12 2.4 0 4.9-.7 7.1-2.4L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zm16 352c0 8.8-7.2 16-16 16H288l-12.8 9.6L208 428v-60H64c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h384c8.8 0 16 7.2 16 16v288z"]},A={prefix:"far",iconName:"comment-dots",icon:[512,512,[],"f4ad","M144 208c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm112 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM256 32C114.6 32 0 125.1 0 240c0 47.6 19.9 91.2 52.9 126.3C38 405.7 7 439.1 6.5 439.5c-6.6 7-8.4 17.2-4.6 26S14.4 480 24 480c61.5 0 110-25.7 139.1-46.3C192 442.8 223.2 448 256 448c141.4 0 256-93.1 256-208S397.4 32 256 32zm0 368c-26.7 0-53.1-4.1-78.4-12.1l-22.7-7.2-19.5 13.8c-14.3 10.1-33.9 21.4-57.5 29 7.3-12.1 14.4-25.7 19.9-40.2l10.6-28.1-20.6-21.8C69.7 314.1 48 282.2 48 240c0-88.2 93.3-160 208-160s208 71.8 208 160-93.3 160-208 160z"]},j={prefix:"far",iconName:"comments",icon:[576,512,[],"f086","M532 386.2c27.5-27.1 44-61.1 44-98.2 0-80-76.5-146.1-176.2-157.9C368.3 72.5 294.3 32 208 32 93.1 32 0 103.6 0 192c0 37 16.5 71 44 98.2-15.3 30.7-37.3 54.5-37.7 54.9-6.3 6.7-8.1 16.5-4.4 25 3.6 8.5 12 14 21.2 14 53.5 0 96.7-20.2 125.2-38.8 9.2 2.1 18.7 3.7 28.4 4.9C208.1 407.6 281.8 448 368 448c20.8 0 40.8-2.4 59.8-6.8C456.3 459.7 499.4 480 553 480c9.2 0 17.5-5.5 21.2-14 3.6-8.5 1.9-18.3-4.4-25-.4-.3-22.5-24.1-37.8-54.8zm-392.8-92.3L122.1 305c-14.1 9.1-28.5 16.3-43.1 21.4 2.7-4.7 5.4-9.7 8-14.8l15.5-31.1L77.7 256C64.2 242.6 48 220.7 48 192c0-60.7 73.3-112 160-112s160 51.3 160 112-73.3 112-160 112c-16.5 0-33-1.9-49-5.6l-19.8-4.5zM498.3 352l-24.7 24.4 15.5 31.1c2.6 5.1 5.3 10.1 8 14.8-14.6-5.1-29-12.3-43.1-21.4l-17.1-11.1-19.9 4.6c-16 3.7-32.5 5.6-49 5.6-54 0-102.2-20.1-131.3-49.7C338 339.5 416 272.9 416 192c0-3.4-.4-6.7-.7-10C479.7 196.5 528 238.8 528 288c0 28.7-16.2 50.6-29.7 64z"]},E={prefix:"far",iconName:"compass",icon:[496,512,[],"f14e","M347.94 129.86L203.6 195.83a31.938 31.938 0 0 0-15.77 15.77l-65.97 144.34c-7.61 16.65 9.54 33.81 26.2 26.2l144.34-65.97a31.938 31.938 0 0 0 15.77-15.77l65.97-144.34c7.61-16.66-9.54-33.81-26.2-26.2zm-77.36 148.72c-12.47 12.47-32.69 12.47-45.16 0-12.47-12.47-12.47-32.69 0-45.16 12.47-12.47 32.69-12.47 45.16 0 12.47 12.47 12.47 32.69 0 45.16zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"]},O={prefix:"far",iconName:"copy",icon:[448,512,[],"f0c5","M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"]},P={prefix:"far",iconName:"copyright",icon:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm107.351-101.064c-9.614 9.712-45.53 41.396-104.065 41.396-82.43 0-140.484-61.425-140.484-141.567 0-79.152 60.275-139.401 139.762-139.401 55.531 0 88.738 26.62 97.593 34.779a11.965 11.965 0 0 1 1.936 15.322l-18.155 28.113c-3.841 5.95-11.966 7.282-17.499 2.921-8.595-6.776-31.814-22.538-61.708-22.538-48.303 0-77.916 35.33-77.916 80.082 0 41.589 26.888 83.692 78.277 83.692 32.657 0 56.843-19.039 65.726-27.225 5.27-4.857 13.596-4.039 17.82 1.738l19.865 27.17a11.947 11.947 0 0 1-1.152 15.518z"]},R={prefix:"far",iconName:"credit-card",icon:[576,512,[],"f09d","M527.9 32H48.1C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48.1 48h479.8c26.6 0 48.1-21.5 48.1-48V80c0-26.5-21.5-48-48.1-48zM54.1 80h467.8c3.3 0 6 2.7 6 6v42H48.1V86c0-3.3 2.7-6 6-6zm467.8 352H54.1c-3.3 0-6-2.7-6-6V256h479.8v170c0 3.3-2.7 6-6 6zM192 332v40c0 6.6-5.4 12-12 12h-72c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12zm192 0v40c0 6.6-5.4 12-12 12H236c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12z"]},F={prefix:"far",iconName:"dizzy",icon:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-33.8-217.9c7.8-7.8 7.8-20.5 0-28.3L196.3 192l17.9-17.9c7.8-7.8 7.8-20.5 0-28.3-7.8-7.8-20.5-7.8-28.3 0L168 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.9 7.7 20.5 7.7 28.4-.2zm160-92.2c-7.8-7.8-20.5-7.8-28.3 0L328 163.7l-17.8-17.8c-7.8-7.8-20.5-7.8-28.3 0-7.8 7.8-7.8 20.5 0 28.3l17.9 17.9-17.9 17.9c-7.8 7.8-7.8 20.5 0 28.3 7.8 7.8 20.5 7.8 28.3 0l17.8-17.8 17.8 17.8c7.8 7.8 20.5 7.8 28.3 0 7.8-7.8 7.8-20.5 0-28.3l-17.8-18 17.9-17.9c7.7-7.8 7.7-20.4 0-28.2zM248 272c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64z"]},I={prefix:"far",iconName:"dot-circle",icon:[512,512,[],"f192","M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z"]},W={prefix:"far",iconName:"edit",icon:[576,512,[],"f044","M402.3 344.9l32-32c5-5 13.7-1.5 13.7 5.7V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V112c0-26.5 21.5-48 48-48h273.5c7.1 0 10.7 8.6 5.7 13.7l-32 32c-1.5 1.5-3.5 2.3-5.7 2.3H48v352h352V350.5c0-2.1.8-4.1 2.3-5.6zm156.6-201.8L296.3 405.7l-90.4 10c-26.2 2.9-48.5-19.2-45.6-45.6l10-90.4L432.9 17.1c22.9-22.9 59.9-22.9 82.7 0l43.2 43.2c22.9 22.9 22.9 60 .1 82.8zM460.1 174L402 115.9 216.2 301.8l-7.3 65.3 65.3-7.3L460.1 174zm64.8-79.7l-43.2-43.2c-4.1-4.1-10.8-4.1-14.8 0L436 82l58.1 58.1 30.9-30.9c4-4.2 4-10.8-.1-14.9z"]},B={prefix:"far",iconName:"envelope",icon:[512,512,[],"f0e0","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm0 48v40.805c-22.422 18.259-58.168 46.651-134.587 106.49-16.841 13.247-50.201 45.072-73.413 44.701-23.208.375-56.579-31.459-73.413-44.701C106.18 199.465 70.425 171.067 48 152.805V112h416zM48 400V214.398c22.914 18.251 55.409 43.862 104.938 82.646 21.857 17.205 60.134 55.186 103.062 54.955 42.717.231 80.509-37.199 103.053-54.947 49.528-38.783 82.032-64.401 104.947-82.653V400H48z"]},U={prefix:"far",iconName:"envelope-open",icon:[512,512,[],"f2b6","M494.586 164.516c-4.697-3.883-111.723-89.95-135.251-108.657C337.231 38.191 299.437 0 256 0c-43.205 0-80.636 37.717-103.335 55.859-24.463 19.45-131.07 105.195-135.15 108.549A48.004 48.004 0 0 0 0 201.485V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V201.509a48 48 0 0 0-17.414-36.993zM464 458a6 6 0 0 1-6 6H54a6 6 0 0 1-6-6V204.347c0-1.813.816-3.526 2.226-4.665 15.87-12.814 108.793-87.554 132.364-106.293C200.755 78.88 232.398 48 256 48c23.693 0 55.857 31.369 73.41 45.389 23.573 18.741 116.503 93.493 132.366 106.316a5.99 5.99 0 0 1 2.224 4.663V458zm-31.991-187.704c4.249 5.159 3.465 12.795-1.745 16.981-28.975 23.283-59.274 47.597-70.929 56.863C336.636 362.283 299.205 400 256 400c-43.452 0-81.287-38.237-103.335-55.86-11.279-8.967-41.744-33.413-70.927-56.865-5.21-4.187-5.993-11.822-1.745-16.981l15.258-18.528c4.178-5.073 11.657-5.843 16.779-1.726 28.618 23.001 58.566 47.035 70.56 56.571C200.143 320.631 232.307 352 256 352c23.602 0 55.246-30.88 73.41-45.389 11.994-9.535 41.944-33.57 70.563-56.568 5.122-4.116 12.601-3.346 16.778 1.727l15.258 18.526z"]},q={prefix:"far",iconName:"eye",icon:[576,512,[],"f06e","M288 144a110.94 110.94 0 0 0-31.24 5 55.4 55.4 0 0 1 7.24 27 56 56 0 0 1-56 56 55.4 55.4 0 0 1-27-7.24A111.71 111.71 0 1 0 288 144zm284.52 97.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400c-98.65 0-189.09-55-237.93-144C98.91 167 189.34 112 288 112s189.09 55 237.93 144C477.1 345 386.66 400 288 400z"]},G={prefix:"far",iconName:"eye-slash",icon:[640,512,[],"f070","M634 471L36 3.51A16 16 0 0 0 13.51 6l-10 12.49A16 16 0 0 0 6 41l598 467.49a16 16 0 0 0 22.49-2.49l10-12.49A16 16 0 0 0 634 471zM296.79 146.47l134.79 105.38C429.36 191.91 380.48 144 320 144a112.26 112.26 0 0 0-23.21 2.47zm46.42 219.07L208.42 260.16C210.65 320.09 259.53 368 320 368a113 113 0 0 0 23.21-2.46zM320 112c98.65 0 189.09 55 237.93 144a285.53 285.53 0 0 1-44 60.2l37.74 29.5a333.7 333.7 0 0 0 52.9-75.11 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64c-36.7 0-71.71 7-104.63 18.81l46.41 36.29c18.94-4.3 38.34-7.1 58.22-7.1zm0 288c-98.65 0-189.08-55-237.93-144a285.47 285.47 0 0 1 44.05-60.19l-37.74-29.5a333.6 333.6 0 0 0-52.89 75.1 32.35 32.35 0 0 0 0 29.19C89.72 376.41 197.08 448 320 448c36.7 0 71.71-7.05 104.63-18.81l-46.41-36.28C359.28 397.2 339.89 400 320 400z"]},Z={prefix:"far",iconName:"file",icon:[384,512,[],"f15b","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"]},J={prefix:"far",iconName:"file-alt",icon:[384,512,[],"f15c","M288 248v28c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-28c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm-12 72H108c-6.6 0-12 5.4-12 12v28c0 6.6 5.4 12 12 12h168c6.6 0 12-5.4 12-12v-28c0-6.6-5.4-12-12-12zm108-188.1V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V48C0 21.5 21.5 0 48 0h204.1C264.8 0 277 5.1 286 14.1L369.9 98c9 8.9 14.1 21.2 14.1 33.9zm-128-80V128h76.1L256 51.9zM336 464V176H232c-13.3 0-24-10.7-24-24V48H48v416h288z"]},$={prefix:"far",iconName:"file-archive",icon:[384,512,[],"f1c6","M128.3 160v32h32v-32zm64-96h-32v32h32zm-64 32v32h32V96zm64 32h-32v32h32zm177.6-30.1L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h79.7v16h32V48H208v104c0 13.3 10.7 24 24 24h104zM194.2 265.7c-1.1-5.6-6-9.7-11.8-9.7h-22.1v-32h-32v32l-19.7 97.1C102 385.6 126.8 416 160 416c33.1 0 57.9-30.2 51.5-62.6zm-33.9 124.4c-17.9 0-32.4-12.1-32.4-27s14.5-27 32.4-27 32.4 12.1 32.4 27-14.5 27-32.4 27zm32-198.1h-32v32h32z"]},K={prefix:"far",iconName:"file-audio",icon:[384,512,[],"f1c7","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm144-76.024c0 10.691-12.926 16.045-20.485 8.485L136 360.486h-28c-6.627 0-12-5.373-12-12v-56c0-6.627 5.373-12 12-12h28l35.515-36.947c7.56-7.56 20.485-2.206 20.485 8.485v135.952zm41.201-47.13c9.051-9.297 9.06-24.133.001-33.439-22.149-22.752 12.235-56.246 34.395-33.481 27.198 27.94 27.212 72.444.001 100.401-21.793 22.386-56.947-10.315-34.397-33.481z"]},Q={prefix:"far",iconName:"file-code",icon:[384,512,[],"f1c9","M149.9 349.1l-.2-.2-32.8-28.9 32.8-28.9c3.6-3.2 4-8.8.8-12.4l-.2-.2-17.4-18.6c-3.4-3.6-9-3.7-12.4-.4l-57.7 54.1c-3.7 3.5-3.7 9.4 0 12.8l57.7 54.1c1.6 1.5 3.8 2.4 6 2.4 2.4 0 4.8-1 6.4-2.8l17.4-18.6c3.3-3.5 3.1-9.1-.4-12.4zm220-251.2L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM256 51.9l76.1 76.1H256zM336 464H48V48h160v104c0 13.3 10.7 24 24 24h104zM209.6 214c-4.7-1.4-9.5 1.3-10.9 6L144 408.1c-1.4 4.7 1.3 9.6 6 10.9l24.4 7.1c4.7 1.4 9.6-1.4 10.9-6L240 231.9c1.4-4.7-1.3-9.6-6-10.9zm24.5 76.9l.2.2 32.8 28.9-32.8 28.9c-3.6 3.2-4 8.8-.8 12.4l.2.2 17.4 18.6c3.3 3.5 8.9 3.7 12.4.4l57.7-54.1c3.7-3.5 3.7-9.4 0-12.8l-57.7-54.1c-3.5-3.3-9.1-3.2-12.4.4l-17.4 18.6c-3.3 3.5-3.1 9.1.4 12.4z"]},X={prefix:"far",iconName:"file-excel",icon:[384,512,[],"f1c3","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm212-240h-28.8c-4.4 0-8.4 2.4-10.5 6.3-18 33.1-22.2 42.4-28.6 57.7-13.9-29.1-6.9-17.3-28.6-57.7-2.1-3.9-6.2-6.3-10.6-6.3H124c-9.3 0-15 10-10.4 18l46.3 78-46.3 78c-4.7 8 1.1 18 10.4 18h28.9c4.4 0 8.4-2.4 10.5-6.3 21.7-40 23-45 28.6-57.7 14.9 30.2 5.9 15.9 28.6 57.7 2.1 3.9 6.2 6.3 10.6 6.3H260c9.3 0 15-10 10.4-18L224 320c.7-1.1 30.3-50.5 46.3-78 4.7-8-1.1-18-10.3-18z"]},ee={prefix:"far",iconName:"file-image",icon:[384,512,[],"f1c5","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm32-48h224V288l-23.5-23.5c-4.7-4.7-12.3-4.7-17 0L176 352l-39.5-39.5c-4.7-4.7-12.3-4.7-17 0L80 352v64zm48-240c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48z"]},te={prefix:"far",iconName:"file-pdf",icon:[384,512,[],"f1c1","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm250.2-143.7c-12.2-12-47-8.7-64.4-6.5-17.2-10.5-28.7-25-36.8-46.3 3.9-16.1 10.1-40.6 5.4-56-4.2-26.2-37.8-23.6-42.6-5.9-4.4 16.1-.4 38.5 7 67.1-10 23.9-24.9 56-35.4 74.4-20 10.3-47 26.2-51 46.2-3.3 15.8 26 55.2 76.1-31.2 22.4-7.4 46.8-16.5 68.4-20.1 18.9 10.2 41 17 55.8 17 25.5 0 28-28.2 17.5-38.7zm-198.1 77.8c5.1-13.7 24.5-29.5 30.4-35-19 30.3-30.4 35.7-30.4 35zm81.6-190.6c7.4 0 6.7 32.1 1.8 40.8-4.4-13.9-4.3-40.8-1.8-40.8zm-24.4 136.6c9.7-16.9 18-37 24.7-54.7 8.3 15.1 18.9 27.2 30.1 35.5-20.8 4.3-38.9 13.1-54.8 19.2zm131.6-5s-5 6-37.3-7.8c35.1-2.6 40.9 5.4 37.3 7.8z"]},ne={prefix:"far",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm72-60V236c0-6.6 5.4-12 12-12h69.2c36.7 0 62.8 27 62.8 66.3 0 74.3-68.7 66.5-95.5 66.5V404c0 6.6-5.4 12-12 12H132c-6.6 0-12-5.4-12-12zm48.5-87.4h23c7.9 0 13.9-2.4 18.1-7.2 8.5-9.8 8.4-28.5.1-37.8-4.1-4.6-9.9-7-17.4-7h-23.9v52z"]},re={prefix:"far",iconName:"file-video",icon:[384,512,[],"f1c8","M369.941 97.941l-83.882-83.882A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v416c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48V131.882a48 48 0 0 0-14.059-33.941zM332.118 128H256V51.882L332.118 128zM48 464V48h160v104c0 13.255 10.745 24 24 24h104v288H48zm228.687-211.303L224 305.374V268c0-11.046-8.954-20-20-20H100c-11.046 0-20 8.954-20 20v104c0 11.046 8.954 20 20 20h104c11.046 0 20-8.954 20-20v-37.374l52.687 52.674C286.704 397.318 304 390.28 304 375.986V264.011c0-14.311-17.309-21.319-27.313-11.314z"]},ae={prefix:"far",iconName:"file-word",icon:[384,512,[],"f1c2","M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48zm220.1-208c-5.7 0-10.6 4-11.7 9.5-20.6 97.7-20.4 95.4-21 103.5-.2-1.2-.4-2.6-.7-4.3-.8-5.1.3.2-23.6-99.5-1.3-5.4-6.1-9.2-11.7-9.2h-13.3c-5.5 0-10.3 3.8-11.7 9.1-24.4 99-24 96.2-24.8 103.7-.1-1.1-.2-2.5-.5-4.2-.7-5.2-14.1-73.3-19.1-99-1.1-5.6-6-9.7-11.8-9.7h-16.8c-7.8 0-13.5 7.3-11.7 14.8 8 32.6 26.7 109.5 33.2 136 1.3 5.4 6.1 9.1 11.7 9.1h25.2c5.5 0 10.3-3.7 11.6-9.1l17.9-71.4c1.5-6.2 2.5-12 3-17.3l2.9 17.3c.1.4 12.6 50.5 17.9 71.4 1.3 5.3 6.1 9.1 11.6 9.1h24.7c5.5 0 10.3-3.7 11.6-9.1 20.8-81.9 30.2-119 34.5-136 1.9-7.6-3.8-14.9-11.6-14.9h-15.8z"]},ce={prefix:"far",iconName:"flag",icon:[512,512,[],"f024","M336.174 80c-49.132 0-93.305-32-161.913-32-31.301 0-58.303 6.482-80.721 15.168a48.04 48.04 0 0 0 2.142-20.727C93.067 19.575 74.167 1.594 51.201.104 23.242-1.71 0 20.431 0 48c0 17.764 9.657 33.262 24 41.562V496c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-83.443C109.869 395.28 143.259 384 199.826 384c49.132 0 93.305 32 161.913 32 58.479 0 101.972-22.617 128.548-39.981C503.846 367.161 512 352.051 512 335.855V95.937c0-34.459-35.264-57.768-66.904-44.117C409.193 67.309 371.641 80 336.174 80zM464 336c-21.783 15.412-60.824 32-102.261 32-59.945 0-102.002-32-161.913-32-43.361 0-96.379 9.403-127.826 24V128c21.784-15.412 60.824-32 102.261-32 59.945 0 102.002 32 161.913 32 43.271 0 96.32-17.366 127.826-32v240z"]},ie={prefix:"far",iconName:"flushed",icon:[496,512,[],"f579","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm96-312c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-112 24c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zm-80 48c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm160 144H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"]},oe={prefix:"far",iconName:"folder",icon:[512,512,[],"f07b","M464 128H272l-54.63-54.63c-6-6-14.14-9.37-22.63-9.37H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm0 272H48V112h140.12l54.63 54.63c6 6 14.14 9.37 22.63 9.37H464v224z"]},se={prefix:"far",iconName:"folder-open",icon:[576,512,[],"f07c","M527.9 224H480v-48c0-26.5-21.5-48-48-48H272l-64-64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h400c16.5 0 31.9-8.5 40.7-22.6l79.9-128c20-31.9-3-73.4-40.7-73.4zM48 118c0-3.3 2.7-6 6-6h134.1l64 64H426c3.3 0 6 2.7 6 6v42H152c-16.8 0-32.4 8.8-41.1 23.2L48 351.4zm400 282H72l77.2-128H528z"]},le={prefix:"far",iconName:"font-awesome-logo-full",icon:[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"]},ue={prefix:"far",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 128c-40.2 0-78 17.7-103.8 48.6-8.5 10.2-7.1 25.3 3.1 33.8 10.2 8.4 25.3 7.1 33.8-3.1 16.6-19.9 41-31.4 66.9-31.4s50.3 11.4 66.9 31.4c8.1 9.7 23.1 11.9 33.8 3.1 10.2-8.5 11.5-23.6 3.1-33.8C326 321.7 288.2 304 248 304z"]},fe={prefix:"far",iconName:"frown-open",icon:[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-48-248c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-80 112c-35.6 0-88.8 21.3-95.8 61.2-2 11.8 9 21.5 20.5 18.1 31.2-9.6 59.4-15.3 75.3-15.3s44.1 5.7 75.3 15.3c11.4 3.5 22.5-6.3 20.5-18.1-7-39.9-60.2-61.2-95.8-61.2z"]},de={prefix:"far",iconName:"futbol",icon:[496,512,[],"f1e3","M483.8 179.4C449.8 74.6 352.6 8 248.1 8c-25.4 0-51.2 3.9-76.7 12.2C41.2 62.5-30.1 202.4 12.2 332.6 46.2 437.4 143.4 504 247.9 504c25.4 0 51.2-3.9 76.7-12.2 130.2-42.3 201.5-182.2 159.2-312.4zm-74.5 193.7l-52.2 6.4-43.7-60.9 24.4-75.2 71.1-22.1 38.9 36.4c-.2 30.7-7.4 61.1-21.7 89.2-4.7 9.3-10.7 17.8-16.8 26.2zm0-235.4l-10.4 53.1-70.7 22-64.2-46.5V92.5l47.4-26.2c39.2 13 73.4 38 97.9 71.4zM184.9 66.4L232 92.5v73.8l-64.2 46.5-70.6-22-10.1-52.5c24.3-33.4 57.9-58.6 97.8-71.9zM139 379.5L85.9 373c-14.4-20.1-37.3-59.6-37.8-115.3l39-36.4 71.1 22.2 24.3 74.3-43.5 61.7zm48.2 67l-22.4-48.1 43.6-61.7H287l44.3 61.7-22.4 48.1c-6.2 1.8-57.6 20.4-121.7 0z"]},he={prefix:"far",iconName:"gem",icon:[576,512,[],"f3a5","M464 0H112c-4 0-7.8 2-10 5.4L2 152.6c-2.9 4.4-2.6 10.2.7 14.2l276 340.8c4.8 5.9 13.8 5.9 18.6 0l276-340.8c3.3-4.1 3.6-9.8.7-14.2L474.1 5.4C471.8 2 468.1 0 464 0zm-19.3 48l63.3 96h-68.4l-51.7-96h56.8zm-202.1 0h90.7l51.7 96H191l51.6-96zm-111.3 0h56.8l-51.7 96H68l63.3-96zm-43 144h51.4L208 352 88.3 192zm102.9 0h193.6L288 435.3 191.2 192zM368 352l68.2-160h51.4L368 352z"]},me={prefix:"far",iconName:"grimace",icon:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm16 16H152c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h192c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48zm-168 96h-24c-8.8 0-16-7.2-16-16v-8h40v24zm0-40h-40v-8c0-8.8 7.2-16 16-16h24v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm64 40h-48v-24h48v24zm0-40h-48v-24h48v24zm56 24c0 8.8-7.2 16-16 16h-24v-24h40v8zm0-24h-40v-24h24c8.8 0 16 7.2 16 16v8z"]},pe={prefix:"far",iconName:"grin",icon:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},ve={prefix:"far",iconName:"grin-alt",icon:[496,512,[],"f581","M200.3 248c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zm128 0c12.4-18.7 15.1-37.3 15.7-56-.5-18.7-3.3-37.3-15.7-56-8-12-25.1-11.4-32.7 0-12.4 18.7-15.1 37.3-15.7 56 .5 18.7 3.3 37.3 15.7 56 8.1 12 25.2 11.4 32.7 0zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3z"]},_e={prefix:"far",iconName:"grin-beam",icon:[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-235.9-72.9c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3zm160 0c3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3z"]},Me={prefix:"far",iconName:"grin-beam-sweat",icon:[496,512,[],"f583","M440 160c29.5 0 53.3-26.3 53.3-58.7 0-25-31.7-75.5-46.2-97.3-3.6-5.3-10.7-5.3-14.2 0-14.5 21.8-46.2 72.3-46.2 97.3 0 32.4 23.8 58.7 53.3 58.7zM248 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zm105.3-52.9c-24.6 15.7-46 12.9-46.4 12.9 6.9 20.2 10.8 41.8 10.8 64.3 0 110.3-89.7 200-200 200S48 366.3 48 256 137.7 56 248 56c39.8 0 76.8 11.8 108 31.9 1.7-9.5 6.3-24.1 17.2-45.7C336.4 20.6 293.7 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-27-4.4-52.9-12.4-77.2zM168 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"]},ye={prefix:"far",iconName:"grin-hearts",icon:[496,512,[],"f584","M353.6 304.6c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-152.8-48.9c4.5 1.2 9.2-1.5 10.5-6l19.4-69.9c5.6-20.3-7.4-41.1-28.8-44.5-18.6-3-36.4 9.8-41.5 27.9l-2 7.1-7.1-1.9c-18.2-4.7-38.2 4.3-44.9 22-7.7 20.2 3.8 41.9 24.2 47.2l70.2 18.1zm188.8-65.3c-6.7-17.6-26.7-26.7-44.9-22l-7.1 1.9-2-7.1c-5-18.1-22.8-30.9-41.5-27.9-21.4 3.4-34.4 24.2-28.8 44.5l19.4 69.9c1.2 4.5 5.9 7.2 10.5 6l70.2-18.2c20.4-5.3 31.9-26.9 24.2-47.1zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200z"]},be={prefix:"far",iconName:"grin-squint",icon:[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.4-17.7 15.3 7.9 47.1 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-234.7-40.8c3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3l-80-48c-5.1-3-11.4-1.9-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11.1.1 15.5zm242.9 2.5c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11-.1-15.5-3.8-4.4-10.2-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48z"]},Le={prefix:"far",iconName:"grin-squint-tears",icon:[512,512,[],"f586","M117.1 384.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 479 124.3 420.8 128 395c.8-6.4-4.6-11.8-10.9-10.9zm-41.2-41.7C40.3 268 53 176.1 114.6 114.6 152.4 76.8 202.6 56 256 56c36.2 0 70.8 9.8 101.2 27.7 3.8-20.3 8-36.1 12-48.3C333.8 17.2 294.9 8 256 8 192.5 8 129.1 32.2 80.6 80.6c-74.1 74.1-91.3 183.4-52 274 12.2-4.1 27.7-8.3 47.3-12.2zm352.3-187.6c45 76.6 34.9 176.9-30.8 242.6-37.8 37.8-88 58.6-141.4 58.6-30.5 0-59.8-7-86.4-19.8-3.9 19.5-8 35-12.2 47.2 31.4 13.6 65 20.6 98.7 20.6 63.5 0 126.9-24.2 175.4-72.6 78.1-78.1 93.1-195.4 45.2-288.6-12.3 4-28.2 8.1-48.5 12zm-33.3-26.9c25.8-3.7 84-13.7 100.9-30.6 21.9-21.9 21.5-57.9-.9-80.3s-58.3-22.8-80.3-.9C397.7 33 387.7 91.2 384 117c-.8 6.4 4.6 11.8 10.9 10.9zm-187 108.3c-3-3-7.2-4.2-11.4-3.2L106 255.7c-5.7 1.4-9.5 6.7-9.1 12.6.5 5.8 5.1 10.5 10.9 11l52.3 4.8 4.8 52.3c.5 5.8 5.2 10.4 11 10.9h.9c5.5 0 10.3-3.7 11.7-9.1l22.6-90.5c1-4.2-.2-8.5-3.2-11.5zm39.7-25.1l90.5-22.6c5.7-1.4 9.5-6.7 9.1-12.6-.5-5.8-5.1-10.5-10.9-11l-52.3-4.8-4.8-52.3c-.5-5.8-5.2-10.4-11-10.9-5.6-.1-11.2 3.4-12.6 9.1L233 196.5c-1 4.1.2 8.4 3.2 11.4 5 5 11.3 3.2 11.4 3.2zm52 88.5c-29.1 29.1-59.7 52.9-83.9 65.4-9.2 4.8-10 17.5-1.7 23.4 38.9 27.7 107 6.2 143.7-30.6S416 253 388.3 214.1c-5.8-8.2-18.5-7.6-23.4 1.7-12.3 24.2-36.2 54.7-65.3 83.8z"]},ge={prefix:"far",iconName:"grin-stars",icon:[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm105.6-151.4c-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 7.9 47.2 71.3 80 123.3 80s115.3-32.9 123.3-80c1.6-9.8-7.7-18.4-17.7-15.3zm-227.9-57.5c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.5 1.9-12.2-4.3-13.2l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6.1 34.9zm259.7-72.7l-34.9-5-15.5-31.6c-2.9-5.8-11-5.8-13.9 0l-15.5 31.6-34.9 5c-6.2.9-8.9 8.6-4.3 13.2l25.4 24.6-6 34.9c-1 6.2 5.4 11 11 7.9l31.3-16.3 31.3 16.3c5.6 3.1 12-1.7 11-7.9l-6-34.9 25.4-24.6c4.5-4.6 1.8-12.2-4.4-13.2z"]},ze={prefix:"far",iconName:"grin-tears",icon:[640,512,[],"f588","M117.1 256.1c-25.8 3.7-84 13.7-100.9 30.6-21.9 21.9-21.5 57.9.9 80.3s58.3 22.8 80.3.9C114.3 351 124.3 292.8 128 267c.8-6.4-4.6-11.8-10.9-10.9zm506.7 30.6c-16.9-16.9-75.1-26.9-100.9-30.6-6.3-.9-11.7 4.5-10.8 10.8 3.7 25.8 13.7 84 30.6 100.9 21.9 21.9 57.9 21.5 80.3-.9 22.3-22.3 22.7-58.3.8-80.2zm-126.6 61.7C463.8 412.3 396.9 456 320 456c-76.9 0-143.8-43.7-177.2-107.6-12.5 37.4-25.2 43.9-28.3 46.5C159.1 460.7 234.5 504 320 504s160.9-43.3 205.5-109.1c-3.2-2.7-15.9-9.2-28.3-46.5zM122.7 224.5C137.9 129.2 220.5 56 320 56c99.5 0 182.1 73.2 197.3 168.5 2.1-.2 5.2-2.4 49.5 7C554.4 106 448.7 8 320 8S85.6 106 73.2 231.4c44.5-9.4 47.1-7.2 49.5-6.9zM320 400c51.9 0 115.3-32.9 123.3-80 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.8-3.1-19.4 5.3-17.7 15.3 8 47.1 71.4 80 123.3 80zm130.3-168.3c3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.6 6.2 4.6 9.3 3.7zM240 189.4c12.3 0 23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.8 19.2-21.6 31.5-21.6z"]},we={prefix:"far",iconName:"grin-tongue",icon:[496,512,[],"f589","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zM168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},He={prefix:"far",iconName:"grin-tongue-squint",icon:[496,512,[],"f58a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3zm36.9-281.1c-3.8-4.4-10.3-5.5-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.7 1.7 15.3-2.5 3.8-4.5 3.8-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zm-162.9 45.5l-80-48c-5-3-11.4-2-15.3 2.5-3.8 4.5-3.8 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.6 4.2 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3s-2.2-8.1-5.8-10.3z"]},ke={prefix:"far",iconName:"grin-tongue-wink",icon:[496,512,[],"f58b","M152 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm176-52c-44.2 0-80 35.8-80 80s35.8 80 80 80 80-35.8 80-80-35.8-80-80-80zm0 128c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-72c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm64 400c0 35.6-29.1 64.5-64.9 64-35.1-.5-63.1-29.8-63.1-65v-42.8l17.7-8.8c15-7.5 31.5 1.7 34.9 16.5l2.8 12.1c2.1 9.2 15.2 9.2 17.3 0l2.8-12.1c3.4-14.8 19.8-24.1 34.9-16.5l17.7 8.8V408zm28.2 25.3c2.2-8.1 3.8-16.5 3.8-25.3v-43.5c14.2-12.4 24.4-27.5 27.3-44.5 1.7-9.9-7.7-18.5-17.7-15.3-25.9 8.3-64.4 13.1-105.6 13.1s-79.6-4.8-105.6-13.1c-9.9-3.1-19.4 5.3-17.7 15.3 2.9 17 13.1 32.1 27.3 44.5V408c0 8.8 1.6 17.2 3.8 25.3C91.8 399.9 48 333 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 77-43.8 143.9-107.8 177.3z"]},xe={prefix:"far",iconName:"grin-wink",icon:[496,512,[],"f58c","M328 180c-25.69 0-55.88 16.92-59.86 42.12-1.75 11.22 11.5 18.24 19.83 10.84l9.55-8.48c14.81-13.19 46.16-13.19 60.97 0l9.55 8.48c8.48 7.43 21.56.25 19.83-10.84C383.88 196.92 353.69 180 328 180zm-160 60c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm185.55 64.64c-25.93 8.3-64.4 13.06-105.55 13.06s-79.62-4.75-105.55-13.06c-9.94-3.13-19.4 5.37-17.71 15.34C132.67 367.13 196.06 400 248 400s115.33-32.87 123.26-80.02c1.68-9.89-7.67-18.48-17.71-15.34zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 448c-110.28 0-200-89.72-200-200S137.72 56 248 56s200 89.72 200 200-89.72 200-200 200z"]},Se={prefix:"far",iconName:"hand-lizard",icon:[576,512,[],"f258","M556.686 290.542L410.328 64.829C397.001 44.272 374.417 32 349.917 32H56C25.121 32 0 57.122 0 88v8c0 44.112 35.888 80 80 80h196.042l-18.333 48H144c-48.523 0-88 39.477-88 88 0 30.879 25.121 56 56 56h131.552c2.987 0 5.914.549 8.697 1.631L352 408.418V480h224V355.829c0-23.225-6.679-45.801-19.314-65.287zM528 432H400v-23.582c0-19.948-12.014-37.508-30.604-44.736l-99.751-38.788A71.733 71.733 0 0 0 243.552 320H112c-4.411 0-8-3.589-8-8 0-22.056 17.944-40 40-40h113.709c19.767 0 37.786-12.407 44.84-30.873l24.552-64.281c8.996-23.553-8.428-48.846-33.63-48.846H80c-17.645 0-32-14.355-32-32v-8c0-4.411 3.589-8 8-8h293.917c8.166 0 15.693 4.09 20.137 10.942l146.358 225.715A71.84 71.84 0 0 1 528 355.829V432z"]},Ce={prefix:"far",iconName:"hand-paper",icon:[448,512,[],"f256","M372.57 112.641v-10.825c0-43.612-40.52-76.691-83.039-65.546-25.629-49.5-94.09-47.45-117.982.747C130.269 26.456 89.144 57.945 89.144 102v126.13c-19.953-7.427-43.308-5.068-62.083 8.871-29.355 21.796-35.794 63.333-14.55 93.153L132.48 498.569a32 32 0 0 0 26.062 13.432h222.897c14.904 0 27.835-10.289 31.182-24.813l30.184-130.958A203.637 203.637 0 0 0 448 310.564V179c0-40.62-35.523-71.992-75.43-66.359zm27.427 197.922c0 11.731-1.334 23.469-3.965 34.886L368.707 464h-201.92L51.591 302.303c-14.439-20.27 15.023-42.776 29.394-22.605l27.128 38.079c8.995 12.626 29.031 6.287 29.031-9.283V102c0-25.645 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V67c0-25.663 36.571-24.81 36.571.691V256c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16V101.125c0-25.672 36.57-24.81 36.57.691V256c0 8.837 7.163 16 16 16h6.857c8.837 0 16-7.163 16-16v-76.309c0-26.242 36.57-25.64 36.57-.691v131.563z"]},Ye={prefix:"far",iconName:"hand-peace",icon:[448,512,[],"f25b","M362.146 191.976c-13.71-21.649-38.761-34.016-65.006-30.341V74c0-40.804-32.811-74-73.141-74-40.33 0-73.14 33.196-73.14 74L160 168l-18.679-78.85C126.578 50.843 83.85 32.11 46.209 47.208 8.735 62.238-9.571 104.963 5.008 142.85l55.757 144.927c-30.557 24.956-43.994 57.809-24.733 92.218l54.853 97.999C102.625 498.97 124.73 512 148.575 512h205.702c30.744 0 57.558-21.44 64.555-51.797l27.427-118.999a67.801 67.801 0 0 0 1.729-15.203L448 256c0-44.956-43.263-77.343-85.854-64.024zM399.987 326c0 1.488-.169 2.977-.502 4.423l-27.427 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H148.575c-6.486 0-12.542-3.621-15.805-9.449l-54.854-98c-4.557-8.141-2.619-18.668 4.508-24.488l26.647-21.764a16 16 0 0 0 4.812-18.139l-64.09-166.549C37.226 92.956 84.37 74.837 96.51 106.389l59.784 155.357A16 16 0 0 0 171.227 272h11.632c8.837 0 16-7.163 16-16V74c0-34.375 50.281-34.43 50.281 0v182c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16v-28c0-25.122 36.567-25.159 36.567 0v28c0 8.837 7.163 16 16 16h6.856c8.837 0 16-7.163 16-16 0-25.12 36.567-25.16 36.567 0v70z"]},Te={prefix:"far",iconName:"hand-point-down",icon:[448,512,[],"f0a7","M188.8 512c45.616 0 83.2-37.765 83.2-83.2v-35.647a93.148 93.148 0 0 0 22.064-7.929c22.006 2.507 44.978-3.503 62.791-15.985C409.342 368.1 448 331.841 448 269.299V248c0-60.063-40-98.512-40-127.2v-2.679c4.952-5.747 8-13.536 8-22.12V32c0-17.673-12.894-32-28.8-32H156.8C140.894 0 128 14.327 128 32v64c0 8.584 3.048 16.373 8 22.12v2.679c0 6.964-6.193 14.862-23.668 30.183l-.148.129-.146.131c-9.937 8.856-20.841 18.116-33.253 25.851C48.537 195.798 0 207.486 0 252.8c0 56.928 35.286 92 83.2 92 8.026 0 15.489-.814 22.4-2.176V428.8c0 45.099 38.101 83.2 83.2 83.2zm0-48c-18.7 0-35.2-16.775-35.2-35.2V270.4c-17.325 0-35.2 26.4-70.4 26.4-26.4 0-35.2-20.625-35.2-44 0-8.794 32.712-20.445 56.1-34.926 14.575-9.074 27.225-19.524 39.875-30.799 18.374-16.109 36.633-33.836 39.596-59.075h176.752C364.087 170.79 400 202.509 400 248v21.299c0 40.524-22.197 57.124-61.325 50.601-8.001 14.612-33.979 24.151-53.625 12.925-18.225 19.365-46.381 17.787-61.05 4.95V428.8c0 18.975-16.225 35.2-35.2 35.2zM328 64c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24z"]},De={prefix:"far",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M0 220.8C0 266.416 37.765 304 83.2 304h35.647a93.148 93.148 0 0 0 7.929 22.064c-2.507 22.006 3.503 44.978 15.985 62.791C143.9 441.342 180.159 480 242.701 480H264c60.063 0 98.512-40 127.2-40h2.679c5.747 4.952 13.536 8 22.12 8h64c17.673 0 32-12.894 32-28.8V188.8c0-15.906-14.327-28.8-32-28.8h-64c-8.584 0-16.373 3.048-22.12 8H391.2c-6.964 0-14.862-6.193-30.183-23.668l-.129-.148-.131-.146c-8.856-9.937-18.116-20.841-25.851-33.253C316.202 80.537 304.514 32 259.2 32c-56.928 0-92 35.286-92 83.2 0 8.026.814 15.489 2.176 22.4H83.2C38.101 137.6 0 175.701 0 220.8zm48 0c0-18.7 16.775-35.2 35.2-35.2h158.4c0-17.325-26.4-35.2-26.4-70.4 0-26.4 20.625-35.2 44-35.2 8.794 0 20.445 32.712 34.926 56.1 9.074 14.575 19.524 27.225 30.799 39.875 16.109 18.374 33.836 36.633 59.075 39.596v176.752C341.21 396.087 309.491 432 264 432h-21.299c-40.524 0-57.124-22.197-50.601-61.325-14.612-8.001-24.151-33.979-12.925-53.625-19.365-18.225-17.787-46.381-4.95-61.05H83.2C64.225 256 48 239.775 48 220.8zM448 360c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"]},Ve={prefix:"far",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M428.8 137.6h-86.177a115.52 115.52 0 0 0 2.176-22.4c0-47.914-35.072-83.2-92-83.2-45.314 0-57.002 48.537-75.707 78.784-7.735 12.413-16.994 23.317-25.851 33.253l-.131.146-.129.148C135.662 161.807 127.764 168 120.8 168h-2.679c-5.747-4.952-13.536-8-22.12-8H32c-17.673 0-32 12.894-32 28.8v230.4C0 435.106 14.327 448 32 448h64c8.584 0 16.373-3.048 22.12-8h2.679c28.688 0 67.137 40 127.2 40h21.299c62.542 0 98.8-38.658 99.94-91.145 12.482-17.813 18.491-40.785 15.985-62.791A93.148 93.148 0 0 0 393.152 304H428.8c45.435 0 83.2-37.584 83.2-83.2 0-45.099-38.101-83.2-83.2-83.2zm0 118.4h-91.026c12.837 14.669 14.415 42.825-4.95 61.05 11.227 19.646 1.687 45.624-12.925 53.625 6.524 39.128-10.076 61.325-50.6 61.325H248c-45.491 0-77.21-35.913-120-39.676V215.571c25.239-2.964 42.966-21.222 59.075-39.596 11.275-12.65 21.725-25.3 30.799-39.875C232.355 112.712 244.006 80 252.8 80c23.375 0 44 8.8 44 35.2 0 35.2-26.4 53.075-26.4 70.4h158.4c18.425 0 35.2 16.5 35.2 35.2 0 18.975-16.225 35.2-35.2 35.2zM88 384c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"]},Ne={prefix:"far",iconName:"hand-point-up",icon:[448,512,[],"f0a6","M105.6 83.2v86.177a115.52 115.52 0 0 0-22.4-2.176c-47.914 0-83.2 35.072-83.2 92 0 45.314 48.537 57.002 78.784 75.707 12.413 7.735 23.317 16.994 33.253 25.851l.146.131.148.129C129.807 376.338 136 384.236 136 391.2v2.679c-4.952 5.747-8 13.536-8 22.12v64c0 17.673 12.894 32 28.8 32h230.4c15.906 0 28.8-14.327 28.8-32v-64c0-8.584-3.048-16.373-8-22.12V391.2c0-28.688 40-67.137 40-127.2v-21.299c0-62.542-38.658-98.8-91.145-99.94-17.813-12.482-40.785-18.491-62.791-15.985A93.148 93.148 0 0 0 272 118.847V83.2C272 37.765 234.416 0 188.8 0c-45.099 0-83.2 38.101-83.2 83.2zm118.4 0v91.026c14.669-12.837 42.825-14.415 61.05 4.95 19.646-11.227 45.624-1.687 53.625 12.925 39.128-6.524 61.325 10.076 61.325 50.6V264c0 45.491-35.913 77.21-39.676 120H183.571c-2.964-25.239-21.222-42.966-39.596-59.075-12.65-11.275-25.3-21.725-39.875-30.799C80.712 279.645 48 267.994 48 259.2c0-23.375 8.8-44 35.2-44 35.2 0 53.075 26.4 70.4 26.4V83.2c0-18.425 16.5-35.2 35.2-35.2 18.975 0 35.2 16.225 35.2 35.2zM352 424c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24z"]},Ae={prefix:"far",iconName:"hand-pointer",icon:[448,512,[],"f25a","M358.182 179.361c-19.493-24.768-52.679-31.945-79.872-19.098-15.127-15.687-36.182-22.487-56.595-19.629V67c0-36.944-29.736-67-66.286-67S89.143 30.056 89.143 67v161.129c-19.909-7.41-43.272-5.094-62.083 8.872-29.355 21.795-35.793 63.333-14.55 93.152l109.699 154.001C134.632 501.59 154.741 512 176 512h178.286c30.802 0 57.574-21.5 64.557-51.797l27.429-118.999A67.873 67.873 0 0 0 448 326v-84c0-46.844-46.625-79.273-89.818-62.639zM80.985 279.697l27.126 38.079c8.995 12.626 29.031 6.287 29.031-9.283V67c0-25.12 36.571-25.16 36.571 0v175c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16v-35c0-25.12 36.571-25.16 36.571 0v35c0 8.836 7.163 16 16 16H272c8.837 0 16-7.164 16-16v-21c0-25.12 36.571-25.16 36.571 0v21c0 8.836 7.163 16 16 16h6.857c8.837 0 16-7.164 16-16 0-25.121 36.571-25.16 36.571 0v84c0 1.488-.169 2.977-.502 4.423l-27.43 119.001c-1.978 8.582-9.29 14.576-17.782 14.576H176c-5.769 0-11.263-2.878-14.697-7.697l-109.712-154c-14.406-20.223 14.994-42.818 29.394-22.606zM176.143 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.733 0-14-7.163-14-16zm75.428 0v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16zM327 400v-96c0-8.837 6.268-16 14-16h6c7.732 0 14 7.163 14 16v96c0 8.837-6.268 16-14 16h-6c-7.732 0-14-7.163-14-16z"]},je={prefix:"far",iconName:"hand-rock",icon:[512,512,[],"f255","M408.864 79.052c-22.401-33.898-66.108-42.273-98.813-23.588-29.474-31.469-79.145-31.093-108.334-.022-47.16-27.02-108.71 5.055-110.671 60.806C44.846 105.407 0 140.001 0 187.429v56.953c0 32.741 14.28 63.954 39.18 85.634l97.71 85.081c4.252 3.702 3.11 5.573 3.11 32.903 0 17.673 14.327 32 32 32h252c17.673 0 32-14.327 32-32 0-23.513-1.015-30.745 3.982-42.37l42.835-99.656c6.094-14.177 9.183-29.172 9.183-44.568V146.963c0-52.839-54.314-88.662-103.136-67.911zM464 261.406a64.505 64.505 0 0 1-5.282 25.613l-42.835 99.655c-5.23 12.171-7.883 25.04-7.883 38.25V432H188v-10.286c0-16.37-7.14-31.977-19.59-42.817l-97.71-85.08C56.274 281.255 48 263.236 48 244.381v-56.953c0-33.208 52-33.537 52 .677v41.228a16 16 0 0 0 5.493 12.067l7 6.095A16 16 0 0 0 139 235.429V118.857c0-33.097 52-33.725 52 .677v26.751c0 8.836 7.164 16 16 16h7c8.836 0 16-7.164 16-16v-41.143c0-33.134 52-33.675 52 .677v40.466c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16v-27.429c0-33.03 52-33.78 52 .677v26.751c0 8.836 7.163 16 16 16h7c8.837 0 16-7.164 16-16 0-33.146 52-33.613 52 .677v114.445z"]},Ee={prefix:"far",iconName:"hand-scissors",icon:[512,512,[],"f257","M256 480l70-.013c5.114 0 10.231-.583 15.203-1.729l118.999-27.427C490.56 443.835 512 417.02 512 386.277V180.575c0-23.845-13.03-45.951-34.005-57.69l-97.999-54.853c-34.409-19.261-67.263-5.824-92.218 24.733L142.85 37.008c-37.887-14.579-80.612 3.727-95.642 41.201-15.098 37.642 3.635 80.37 41.942 95.112L168 192l-94-9.141c-40.804 0-74 32.811-74 73.14 0 40.33 33.196 73.141 74 73.141h87.635c-3.675 26.245 8.692 51.297 30.341 65.006C178.657 436.737 211.044 480 256 480zm0-48.013c-25.16 0-25.12-36.567 0-36.567 8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16h-28c-25.159 0-25.122-36.567 0-36.567h28c8.837 0 16-7.163 16-16v-6.856c0-8.837-7.163-16-16-16H74c-34.43 0-34.375-50.281 0-50.281h182c8.837 0 16-7.163 16-16v-11.632a16 16 0 0 0-10.254-14.933L106.389 128.51c-31.552-12.14-13.432-59.283 19.222-46.717l166.549 64.091a16.001 16.001 0 0 0 18.139-4.812l21.764-26.647c5.82-7.127 16.348-9.064 24.488-4.508l98 54.854c5.828 3.263 9.449 9.318 9.449 15.805v205.701c0 8.491-5.994 15.804-14.576 17.782l-119.001 27.427a19.743 19.743 0 0 1-4.423.502h-70z"]},Oe={prefix:"far",iconName:"hand-spock",icon:[512,512,[],"f259","M501.03053,116.17605c-19.39059-31.50779-51.24406-35.72849-66.31044-35.01756-14.11325-50.81051-62.0038-54.08-70.73816-54.08a74.03091,74.03091,0,0,0-72.23816,58.916l-4.64648,22.66014-13.68357-53.207c-9.09569-35.37107-46.412-64.05074-89.66-53.07223a73.89749,73.89749,0,0,0-55.121,78.94722,73.68273,73.68273,0,0,0-64.8495,94.42181l24.35933,82.19721c-38.24017-7.54492-62.79677,16.18358-68.11512,21.84764a73.6791,73.6791,0,0,0,3.19921,104.19329l91.36509,85.9765A154.164,154.164,0,0,0,220.62279,512h107.4549A127.30079,127.30079,0,0,0,452.3392,413.86139l57.623-241.96272A73.20274,73.20274,0,0,0,501.03053,116.17605Zm-37.7597,44.60544L405.64788,402.74812a79.46616,79.46616,0,0,1-77.57019,61.25972H220.62279a106.34052,106.34052,0,0,1-73.1366-28.998l-91.369-85.98041C31.34381,325.72669,66.61133,288.131,91.39644,311.5392l51.123,48.10739c5.42577,5.10937,13.48239.71679,13.48239-5.82617a246.79914,246.79914,0,0,0-10.17771-70.1523l-36.01362-121.539c-9.7324-32.88279,39.69916-47.27145,49.38664-14.625l31.3437,105.77923c5.59374,18.90428,33.78119,10.71288,28.9648-8.00781L177.06427,80.23662c-8.50389-33.1035,41.43157-45.64646,49.86515-12.83593l47.32609,184.035c4.42773,17.24218,29.16207,16.5039,32.71089-.80468l31.791-154.9706c6.81054-33.1074,57.51748-24.10741,50.11906,11.96288L360.32764,246.78924c-3.72265,18.10936,23.66793,24.63084,28.05659,6.21679L413.185,148.85962C421.1498,115.512,471.14,127.79713,463.27083,160.78149Z"]},Pe={prefix:"far",iconName:"handshake",icon:[640,512,[],"f2b5","M519.2 127.9l-47.6-47.6A56.252 56.252 0 0 0 432 64H205.2c-14.8 0-29.1 5.9-39.6 16.3L118 127.9H0v255.7h64c17.6 0 31.8-14.2 31.9-31.7h9.1l84.6 76.4c30.9 25.1 73.8 25.7 105.6 3.8 12.5 10.8 26 15.9 41.1 15.9 18.2 0 35.3-7.4 48.8-24 22.1 8.7 48.2 2.6 64-16.8l26.2-32.3c5.6-6.9 9.1-14.8 10.9-23h57.9c.1 17.5 14.4 31.7 31.9 31.7h64V127.9H519.2zM48 351.6c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16zm390-6.9l-26.1 32.2c-2.8 3.4-7.8 4-11.3 1.2l-23.9-19.4-30 36.5c-6 7.3-15 4.8-18 2.4l-36.8-31.5-15.6 19.2c-13.9 17.1-39.2 19.7-55.3 6.6l-97.3-88H96V175.8h41.9l61.7-61.6c2-.8 3.7-1.5 5.7-2.3H262l-38.7 35.5c-29.4 26.9-31.1 72.3-4.4 101.3 14.8 16.2 61.2 41.2 101.5 4.4l8.2-7.5 108.2 87.8c3.4 2.8 3.9 7.9 1.2 11.3zm106-40.8h-69.2c-2.3-2.8-4.9-5.4-7.7-7.7l-102.7-83.4 12.5-11.4c6.5-6 7-16.1 1-22.6L367 167.1c-6-6.5-16.1-6.9-22.6-1l-55.2 50.6c-9.5 8.7-25.7 9.4-34.6 0-9.3-9.9-8.5-25.1 1.2-33.9l65.6-60.1c7.4-6.8 17-10.5 27-10.5l83.7-.2c2.1 0 4.1.8 5.5 2.3l61.7 61.6H544v128zm48 47.7c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16c0 8.9-7.2 16-16 16z"]},Re={prefix:"far",iconName:"hdd",icon:[576,512,[],"f0a0","M567.403 235.642L462.323 84.589A48 48 0 0 0 422.919 64H153.081a48 48 0 0 0-39.404 20.589L8.597 235.642A48.001 48.001 0 0 0 0 263.054V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V263.054c0-9.801-3-19.366-8.597-27.412zM153.081 112h269.838l77.913 112H75.168l77.913-112zM528 400H48V272h480v128zm-32-64c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32zm-96 0c0 17.673-14.327 32-32 32s-32-14.327-32-32 14.327-32 32-32 32 14.327 32 32z"]},Fe={prefix:"far",iconName:"heart",icon:[512,512,[],"f004","M458.4 64.3C400.6 15.7 311.3 23 256 79.3 200.7 23 111.4 15.6 53.6 64.3-21.6 127.6-10.6 230.8 43 285.5l175.4 178.7c10 10.2 23.4 15.9 37.6 15.9 14.3 0 27.6-5.6 37.6-15.8L469 285.6c53.5-54.7 64.7-157.9-10.6-221.3zm-23.6 187.5L259.4 430.5c-2.4 2.4-4.4 2.4-6.8 0L77.2 251.8c-36.5-37.2-43.9-107.6 7.3-150.7 38.9-32.7 98.9-27.8 136.5 10.5l35 35.7 35-35.7c37.8-38.5 97.8-43.2 136.5-10.6 51.1 43.1 43.5 113.9 7.3 150.8z"]},Ie={prefix:"far",iconName:"hospital",icon:[448,512,[],"f0f8","M128 244v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12zm140 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm-76 84v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm76 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm180 124v36H0v-36c0-6.627 5.373-12 12-12h19.5V85.035C31.5 73.418 42.245 64 55.5 64H144V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v40h88.5c13.255 0 24 9.418 24 21.035V464H436c6.627 0 12 5.373 12 12zM79.5 463H192v-67c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v67h112.5V112H304v24c0 13.255-10.745 24-24 24H168c-13.255 0-24-10.745-24-24v-24H79.5v351zM266 64h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6z"]},We={prefix:"far",iconName:"hourglass",icon:[384,512,[],"f254","M368 48h4c6.627 0 12-5.373 12-12V12c0-6.627-5.373-12-12-12H12C5.373 0 0 5.373 0 12v24c0 6.627 5.373 12 12 12h4c0 80.564 32.188 165.807 97.18 208C47.899 298.381 16 383.9 16 464h-4c-6.627 0-12 5.373-12 12v24c0 6.627 5.373 12 12 12h360c6.627 0 12-5.373 12-12v-24c0-6.627-5.373-12-12-12h-4c0-80.564-32.188-165.807-97.18-208C336.102 213.619 368 128.1 368 48zM64 48h256c0 101.62-57.307 184-128 184S64 149.621 64 48zm256 416H64c0-101.62 57.308-184 128-184s128 82.38 128 184z"]},Be={prefix:"far",iconName:"id-badge",icon:[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm0 464H48V48h288v416zM144 112h96c8.8 0 16-7.2 16-16s-7.2-16-16-16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16zm48 176c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm-89.6 128h179.2c12.4 0 22.4-8.6 22.4-19.2v-19.2c0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6v19.2c0 10.6 10 19.2 22.4 19.2z"]},Ue={prefix:"far",iconName:"id-card",icon:[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 400H303.2c.9-4.5.8 3.6.8-22.4 0-31.8-30.1-57.6-67.2-57.6-10.8 0-18.7 8-44.8 8-26.9 0-33.4-8-44.8-8-37.1 0-67.2 25.8-67.2 57.6 0 26-.2 17.9.8 22.4H48V144h480v288zm-168-80h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm0-64h112c4.4 0 8-3.6 8-8v-16c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm-168 96c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"]},qe={prefix:"far",iconName:"image",icon:[512,512,[],"f03e","M464 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm-6 336H54a6 6 0 0 1-6-6V118a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v276a6 6 0 0 1-6 6zM128 152c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zM96 352h320v-80l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L192 304l-39.515-39.515c-4.686-4.686-12.284-4.686-16.971 0L96 304v48z"]},Ge={prefix:"far",iconName:"images",icon:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v48H54a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6v-10h48zm42-336H150a6 6 0 0 0-6 6v244a6 6 0 0 0 6 6h372a6 6 0 0 0 6-6V86a6 6 0 0 0-6-6zm6-48c26.51 0 48 21.49 48 48v256c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h384zM264 144c0 22.091-17.909 40-40 40s-40-17.909-40-40 17.909-40 40-40 40 17.909 40 40zm-72 96l39.515-39.515c4.686-4.686 12.284-4.686 16.971 0L288 240l103.515-103.515c4.686-4.686 12.284-4.686 16.971 0L480 208v80H192v-48z"]},Ze={prefix:"far",iconName:"keyboard",icon:[576,512,[],"f11c","M528 64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V112c0-26.51-21.49-48-48-48zm8 336c0 4.411-3.589 8-8 8H48c-4.411 0-8-3.589-8-8V112c0-4.411 3.589-8 8-8h480c4.411 0 8 3.589 8 8v288zM170 270v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-336 82v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm384 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zM122 188v-28c0-6.627-5.373-12-12-12H82c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm96 0v-28c0-6.627-5.373-12-12-12h-28c-6.627 0-12 5.373-12 12v28c0 6.627 5.373 12 12 12h28c6.627 0 12-5.373 12-12zm-98 158v-16c0-6.627-5.373-12-12-12H180c-6.627 0-12 5.373-12 12v16c0 6.627 5.373 12 12 12h216c6.627 0 12-5.373 12-12z"]},Je={prefix:"far",iconName:"kiss",icon:[496,512,[],"f596","M168 176c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm136 132c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},$e={prefix:"far",iconName:"kiss-beam",icon:[496,512,[],"f597","M168 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm56-148c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36C290.6 335.3 304 321 304 308zm24-156c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2 7.2 5.6 8.3 3.5 1 7.5-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 5.9-4.5 5.6-8.3-3.1-42.1-32-71.4-55.8-71.4z"]},Ke={prefix:"far",iconName:"kiss-wink-heart",icon:[504,512,[],"f598","M304 308.5c0-19.2-28.8-41.5-71.5-44-3.8-.4-7.4 2.4-8.2 6.2-.9 3.8 1.1 7.7 4.7 9.2l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-5.7 2.4-6 12.2 0 14.8l16.9 7.2c13 5.5 20.8 13.5 20.8 21.5s-7.8 16-20.7 21.5l-17 7.2c-3.6 1.5-5.6 5.4-4.7 9.2.8 3.6 4.1 6.2 7.8 6.2h.5c42.8-2.5 71.5-24.8 71.5-44 0-13-13.4-27.3-35.2-36 21.7-9.1 35.1-23.4 35.1-36.4zm70.5-83.5l9.5 8.5c3.8 3.3 9.3 4 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 5.8 3.1 11.2.7 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0zM136 208.5c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm365.1 194c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zM334 436.3c-26.1 12.5-55.2 19.7-86 19.7-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200c0 22.1-3.7 43.3-10.4 63.2 9 6.4 17 14.2 22.6 23.9 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-2.5-7.3 4.3 17.2-13.4-46.8z"]},Qe={prefix:"far",iconName:"laugh",icon:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 224c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm-160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"]},Xe={prefix:"far",iconName:"laugh-beam",icon:[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM328 152c-23.8 0-52.7 29.3-56 71.4-.7 8.6 10.8 11.9 14.9 4.5l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.1-42.1-32-71.4-55.8-71.4zm-201 75.9l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c4.1 7.4 15.6 4 14.9-4.5-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.6 8.5 10.9 11.9 15.1 4.5zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"]},et={prefix:"far",iconName:"laugh-squint",icon:[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6S48 309.4 48 256s20.8-103.6 58.6-141.4S194.6 56 248 56s103.6 20.8 141.4 58.6S448 202.6 448 256s-20.8 103.6-58.6 141.4zM343.6 196l33.6-40.3c8.6-10.3-3.8-24.8-15.4-18l-80 48c-7.8 4.7-7.8 15.9 0 20.6l80 48c11.5 6.8 24-7.6 15.4-18L343.6 196zm-209.4 58.3l80-48c7.8-4.7 7.8-15.9 0-20.6l-80-48c-11.6-6.9-24 7.7-15.4 18l33.6 40.3-33.6 40.3c-8.7 10.4 3.8 24.8 15.4 18zM362.4 288H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"]},tt={prefix:"far",iconName:"laugh-wink",icon:[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm141.4 389.4c-37.8 37.8-88 58.6-141.4 58.6s-103.6-20.8-141.4-58.6C68.8 359.6 48 309.4 48 256s20.8-103.6 58.6-141.4C144.4 76.8 194.6 56 248 56s103.6 20.8 141.4 58.6c37.8 37.8 58.6 88 58.6 141.4s-20.8 103.6-58.6 141.4zM328 164c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1zm-160 60c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm194.4 64H133.6c-8.2 0-14.5 7-13.5 15 7.5 59.2 58.9 105 121.1 105h13.6c62.2 0 113.6-45.8 121.1-105 1-8-5.3-15-13.5-15z"]},nt={prefix:"far",iconName:"lemon",icon:[512,512,[],"f094","M484.112 27.889C455.989-.233 416.108-8.057 387.059 8.865 347.604 31.848 223.504-41.111 91.196 91.197-41.277 223.672 31.923 347.472 8.866 387.058c-16.922 29.051-9.1 68.932 19.022 97.054 28.135 28.135 68.011 35.938 97.057 19.021 39.423-22.97 163.557 49.969 295.858-82.329 132.474-132.477 59.273-256.277 82.331-295.861 16.922-29.05 9.1-68.931-19.022-97.054zm-22.405 72.894c-38.8 66.609 45.6 165.635-74.845 286.08-120.44 120.443-219.475 36.048-286.076 74.843-22.679 13.207-64.035-27.241-50.493-50.488 38.8-66.609-45.6-165.635 74.845-286.08C245.573 4.702 344.616 89.086 411.219 50.292c22.73-13.24 64.005 27.288 50.488 50.491zm-169.861 8.736c1.37 10.96-6.404 20.957-17.365 22.327-54.846 6.855-135.779 87.787-142.635 142.635-1.373 10.989-11.399 18.734-22.326 17.365-10.961-1.37-18.735-11.366-17.365-22.326 9.162-73.286 104.167-168.215 177.365-177.365 10.953-1.368 20.956 6.403 22.326 17.364z"]},rt={prefix:"far",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 504c136.967 0 248-111.033 248-248S392.967 8 256 8 8 119.033 8 256s111.033 248 248 248zm-103.398-76.72l53.411-53.411c31.806 13.506 68.128 13.522 99.974 0l53.411 53.411c-63.217 38.319-143.579 38.319-206.796 0zM336 256c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zm91.28 103.398l-53.411-53.411c13.505-31.806 13.522-68.128 0-99.974l53.411-53.411c38.319 63.217 38.319 143.579 0 206.796zM359.397 84.72l-53.411 53.411c-31.806-13.505-68.128-13.522-99.973 0L152.602 84.72c63.217-38.319 143.579-38.319 206.795 0zM84.72 152.602l53.411 53.411c-13.506 31.806-13.522 68.128 0 99.974L84.72 359.398c-38.319-63.217-38.319-143.579 0-206.796z"]},at={prefix:"far",iconName:"lightbulb",icon:[352,512,[],"f0eb","M176 80c-52.94 0-96 43.06-96 96 0 8.84 7.16 16 16 16s16-7.16 16-16c0-35.3 28.72-64 64-64 8.84 0 16-7.16 16-16s-7.16-16-16-16zM96.06 459.17c0 3.15.93 6.22 2.68 8.84l24.51 36.84c2.97 4.46 7.97 7.14 13.32 7.14h78.85c5.36 0 10.36-2.68 13.32-7.14l24.51-36.84c1.74-2.62 2.67-5.7 2.68-8.84l.05-43.18H96.02l.04 43.18zM176 0C73.72 0 0 82.97 0 176c0 44.37 16.45 84.85 43.56 115.78 16.64 18.99 42.74 58.8 52.42 92.16v.06h48v-.12c-.01-4.77-.72-9.51-2.15-14.07-5.59-17.81-22.82-64.77-62.17-109.67-20.54-23.43-31.52-53.15-31.61-84.14-.2-73.64 59.67-128 127.95-128 70.58 0 128 57.42 128 128 0 30.97-11.24 60.85-31.65 84.14-39.11 44.61-56.42 91.47-62.1 109.46a47.507 47.507 0 0 0-2.22 14.3v.1h48v-.05c9.68-33.37 35.78-73.18 52.42-92.16C335.55 260.85 352 220.37 352 176 352 78.8 273.2 0 176 0z"]},ct={prefix:"far",iconName:"list-alt",icon:[512,512,[],"f022","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zm-6 400H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h404a6 6 0 0 1 6 6v340a6 6 0 0 1-6 6zm-42-92v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm0-96v24c0 6.627-5.373 12-12 12H204c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h200c6.627 0 12 5.373 12 12zm-252 12c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36zm0 96c0 19.882-16.118 36-36 36s-36-16.118-36-36 16.118-36 36-36 36 16.118 36 36z"]},it={prefix:"far",iconName:"map",icon:[576,512,[],"f279","M560.02 32c-1.96 0-3.98.37-5.96 1.16L384.01 96H384L212 35.28A64.252 64.252 0 0 0 191.76 32c-6.69 0-13.37 1.05-19.81 3.14L20.12 87.95A32.006 32.006 0 0 0 0 117.66v346.32C0 473.17 7.53 480 15.99 480c1.96 0 3.97-.37 5.96-1.16L192 416l172 60.71a63.98 63.98 0 0 0 40.05.15l151.83-52.81A31.996 31.996 0 0 0 576 394.34V48.02c0-9.19-7.53-16.02-15.98-16.02zM224 90.42l128 45.19v285.97l-128-45.19V90.42zM48 418.05V129.07l128-44.53v286.2l-.64.23L48 418.05zm480-35.13l-128 44.53V141.26l.64-.24L528 93.95v288.97z"]},ot={prefix:"far",iconName:"meh",icon:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm8 144H160c-13.2 0-24 10.8-24 24s10.8 24 24 24h176c13.2 0 24-10.8 24-24s-10.8-24-24-24z"]},st={prefix:"far",iconName:"meh-blank",icon:[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-280c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},lt={prefix:"far",iconName:"meh-rolling-eyes",icon:[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm88-304c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm0 112c-22.1 0-40-17.9-40-40 0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40zm-104-40c0-39.8-32.2-72-72-72s-72 32.2-72 72 32.2 72 72 72 72-32.2 72-72zm-112 0c0-13.6 7.3-25.1 17.7-32.3-1 2.6-1.7 5.3-1.7 8.3 0 13.3 10.7 24 24 24s24-10.7 24-24c0-2.9-.7-5.7-1.7-8.3 10.4 7.2 17.7 18.7 17.7 32.3 0 22.1-17.9 40-40 40s-40-17.9-40-40zm192 128H184c-13.2 0-24 10.8-24 24s10.8 24 24 24h128c13.2 0 24-10.8 24-24s-10.8-24-24-24z"]},ut={prefix:"far",iconName:"minus-square",icon:[448,512,[],"f146","M108 284c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h232c6.6 0 12 5.4 12 12v32c0 6.6-5.4 12-12 12H108zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},ft={prefix:"far",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M320 144c-53.02 0-96 50.14-96 112 0 61.85 42.98 112 96 112 53 0 96-50.13 96-112 0-61.86-42.98-112-96-112zm40 168c0 4.42-3.58 8-8 8h-64c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h16v-55.44l-.47.31a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09l15.33-10.22a23.99 23.99 0 0 1 13.31-4.03H328c4.42 0 8 3.58 8 8v88h16c4.42 0 8 3.58 8 8v16zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zm-16 272c-35.35 0-64 28.65-64 64H112c0-35.35-28.65-64-64-64V176c35.35 0 64-28.65 64-64h416c0 35.35 28.65 64 64 64v160z"]},dt={prefix:"far",iconName:"moon",icon:[512,512,[],"f186","M279.135 512c78.756 0 150.982-35.804 198.844-94.775 28.27-34.831-2.558-85.722-46.249-77.401-82.348 15.683-158.272-47.268-158.272-130.792 0-48.424 26.06-92.292 67.434-115.836 38.745-22.05 28.999-80.788-15.022-88.919A257.936 257.936 0 0 0 279.135 0c-141.36 0-256 114.575-256 256 0 141.36 114.576 256 256 256zm0-464c12.985 0 25.689 1.201 38.016 3.478-54.76 31.163-91.693 90.042-91.693 157.554 0 113.848 103.641 199.2 215.252 177.944C402.574 433.964 344.366 464 279.135 464c-114.875 0-208-93.125-208-208s93.125-208 208-208z"]},ht={prefix:"far",iconName:"newspaper",icon:[576,512,[],"f1ea","M552 64H112c-20.858 0-38.643 13.377-45.248 32H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h496c13.255 0 24-10.745 24-24V88c0-13.255-10.745-24-24-24zM48 392V144h16v248c0 4.411-3.589 8-8 8s-8-3.589-8-8zm480 8H111.422c.374-2.614.578-5.283.578-8V112h416v288zM172 280h136c6.627 0 12-5.373 12-12v-96c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v96c0 6.627 5.373 12 12 12zm28-80h80v40h-80v-40zm-40 140v-24c0-6.627 5.373-12 12-12h136c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H172c-6.627 0-12-5.373-12-12zm192 0v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0-144v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12zm0 72v-24c0-6.627 5.373-12 12-12h104c6.627 0 12 5.373 12 12v24c0 6.627-5.373 12-12 12H364c-6.627 0-12-5.373-12-12z"]},mt={prefix:"far",iconName:"object-group",icon:[512,512,[],"f247","M500 128c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v256H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V128h12zm-52-64h32v32h-32V64zM32 64h32v32H32V64zm32 384H32v-32h32v32zm416 0h-32v-32h32v32zm-40-64h-12c-6.627 0-12 5.373-12 12v12H96v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h320v12c0 6.627 5.373 12 12 12h12v256zm-36-192h-84v-52c0-6.628-5.373-12-12-12H108c-6.627 0-12 5.372-12 12v168c0 6.628 5.373 12 12 12h84v52c0 6.628 5.373 12 12 12h200c6.627 0 12-5.372 12-12V204c0-6.628-5.373-12-12-12zm-268-24h144v112H136V168zm240 176H232v-24h76c6.627 0 12-5.372 12-12v-76h56v112z"]},pt={prefix:"far",iconName:"object-ungroup",icon:[576,512,[],"f248","M564 224c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12h-88v-24h12c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-72c-6.627 0-12 5.373-12 12v12H96V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v72c0 6.627 5.373 12 12 12h12v160H12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h88v24h-12c-6.627 0-12 5.373-12 12v72c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12V224h12zM352 64h32v32h-32V64zm0 256h32v32h-32v-32zM64 352H32v-32h32v32zm0-256H32V64h32v32zm32 216v-12c0-6.627-5.373-12-12-12H72V128h12c6.627 0 12-5.373 12-12v-12h224v12c0 6.627 5.373 12 12 12h12v160h-12c-6.627 0-12 5.373-12 12v12H96zm128 136h-32v-32h32v32zm280-64h-12c-6.627 0-12 5.373-12 12v12H256v-12c0-6.627-5.373-12-12-12h-12v-24h88v12c0 6.627 5.373 12 12 12h72c6.627 0 12-5.373 12-12v-72c0-6.627-5.373-12-12-12h-12v-88h88v12c0 6.627 5.373 12 12 12h12v160zm40 64h-32v-32h32v32zm0-256h-32v-32h32v32z"]},vt={prefix:"far",iconName:"paper-plane",icon:[512,512,[],"f1d8","M440 6.5L24 246.4c-34.4 19.9-31.1 70.8 5.7 85.9L144 379.6V464c0 46.4 59.2 65.5 86.6 28.6l43.8-59.1 111.9 46.2c5.9 2.4 12.1 3.6 18.3 3.6 8.2 0 16.3-2.1 23.6-6.2 12.8-7.2 21.6-20 23.9-34.5l59.4-387.2c6.1-40.1-36.9-68.8-71.5-48.9zM192 464v-64.6l36.6 15.1L192 464zm212.6-28.7l-153.8-63.5L391 169.5c10.7-15.5-9.5-33.5-23.7-21.2L155.8 332.6 48 288 464 48l-59.4 387.3z"]},_t={prefix:"far",iconName:"pause-circle",icon:[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm96-280v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16zm-112 0v160c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16z"]},Mt={prefix:"far",iconName:"play-circle",icon:[512,512,[],"f144","M371.7 238l-176-107c-15.8-8.8-35.7 2.5-35.7 21v208c0 18.4 19.8 29.8 35.7 21l176-101c16.4-9.1 16.4-32.8 0-42zM504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256z"]},yt={prefix:"far",iconName:"plus-square",icon:[448,512,[],"f0fe","M352 240v32c0 6.6-5.4 12-12 12h-88v88c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-88h-88c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h88v-88c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v88h88c6.6 0 12 5.4 12 12zm96-160v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-48 346V86c0-3.3-2.7-6-6-6H54c-3.3 0-6 2.7-6 6v340c0 3.3 2.7 6 6 6h340c3.3 0 6-2.7 6-6z"]},bt={prefix:"far",iconName:"question-circle",icon:[512,512,[],"f059","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"]},Lt={prefix:"far",iconName:"registered",icon:[512,512,[],"f25d","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 448c-110.532 0-200-89.451-200-200 0-110.531 89.451-200 200-200 110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200zm110.442-81.791c-53.046-96.284-50.25-91.468-53.271-96.085 24.267-13.879 39.482-41.563 39.482-73.176 0-52.503-30.247-85.252-101.498-85.252h-78.667c-6.617 0-12 5.383-12 12V380c0 6.617 5.383 12 12 12h38.568c6.617 0 12-5.383 12-12v-83.663h31.958l47.515 89.303a11.98 11.98 0 0 0 10.593 6.36h42.81c9.14 0 14.914-9.799 10.51-17.791zM256.933 239.906h-33.875v-64.14h27.377c32.417 0 38.929 12.133 38.929 31.709-.001 20.913-11.518 32.431-32.431 32.431z"]},gt={prefix:"far",iconName:"sad-cry",icon:[496,512,[],"f5b3","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm144 386.4V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v151.4C315.5 447 282.8 456 248 456s-67.5-9-96-24.6V280c0-13.2-10.8-24-24-24s-24 10.8-24 24v114.4c-34.6-36-56-84.7-56-138.4 0-110.3 89.7-200 200-200s200 89.7 200 200c0 53.7-21.4 102.5-56 138.4zM205.8 234.5c4.4-2.4 6.9-7.4 6.1-12.4-4-25.2-34.2-42.1-59.8-42.1s-55.9 16.9-59.8 42.1c-.8 5 1.7 10 6.1 12.4 4.4 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.3 7.9 4.8 13.7 1.6zM344 180c-25.7 0-55.9 16.9-59.8 42.1-.8 5 1.7 10 6.1 12.4 4.5 2.4 9.9 1.8 13.7-1.6l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c2.5 2.2 8 4.7 13.7 1.6 4.4-2.4 6.9-7.4 6.1-12.4-3.9-25.2-34.1-42.1-59.8-42.1zm-96 92c-30.9 0-56 28.7-56 64s25.1 64 56 64 56-28.7 56-64-25.1-64-56-64z"]},zt={prefix:"far",iconName:"sad-tear",icon:[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm8-152c-13.2 0-24 10.8-24 24s10.8 24 24 24c23.8 0 46.3 10.5 61.6 28.8 8.1 9.8 23.2 11.9 33.8 3.1 10.2-8.5 11.6-23.6 3.1-33.8C330 320.8 294.1 304 256 304zm-88-64c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-64c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zm-165.6 98.8C151 290.1 126 325.4 126 342.9c0 22.7 18.8 41.1 42 41.1s42-18.4 42-41.1c0-17.5-25-52.8-36.4-68.1-2.8-3.7-8.4-3.7-11.2 0z"]},wt={prefix:"far",iconName:"save",icon:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM272 80v80H144V80h128zm122 352H54a6 6 0 0 1-6-6V86a6 6 0 0 1 6-6h42v104c0 13.255 10.745 24 24 24h176c13.255 0 24-10.745 24-24V83.882l78.243 78.243a6 6 0 0 1 1.757 4.243V426a6 6 0 0 1-6 6zM224 232c-48.523 0-88 39.477-88 88s39.477 88 88 88 88-39.477 88-88-39.477-88-88-88zm0 128c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z"]},Ht={prefix:"far",iconName:"share-square",icon:[576,512,[],"f14d","M561.938 158.06L417.94 14.092C387.926-15.922 336 5.097 336 48.032v57.198c-42.45 1.88-84.03 6.55-120.76 17.99-35.17 10.95-63.07 27.58-82.91 49.42C108.22 199.2 96 232.6 96 271.94c0 61.697 33.178 112.455 84.87 144.76 37.546 23.508 85.248-12.651 71.02-55.74-15.515-47.119-17.156-70.923 84.11-78.76V336c0 42.993 51.968 63.913 81.94 33.94l143.998-144c18.75-18.74 18.75-49.14 0-67.88zM384 336V232.16C255.309 234.082 166.492 255.35 206.31 376 176.79 357.55 144 324.08 144 271.94c0-109.334 129.14-118.947 240-119.85V48l144 144-144 144zm24.74 84.493a82.658 82.658 0 0 0 20.974-9.303c7.976-4.952 18.286.826 18.286 10.214V464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h132c6.627 0 12 5.373 12 12v4.486c0 4.917-2.987 9.369-7.569 11.152-13.702 5.331-26.396 11.537-38.05 18.585a12.138 12.138 0 0 1-6.28 1.777H54a6 6 0 0 0-6 6v340a6 6 0 0 0 6 6h340a6 6 0 0 0 6-6v-25.966c0-5.37 3.579-10.059 8.74-11.541z"]},kt={prefix:"far",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm-80-216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm4 72.6c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.1-8.4-25.3-7.1-33.8 3.1z"]},xt={prefix:"far",iconName:"smile-beam",icon:[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm84-143.4c-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.6-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8-10.2-8.4-25.3-7.1-33.8 3.1zM136.5 211c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4s-52.7 29.3-56 71.4c-.3 3.7 2.1 7.2 5.7 8.3 3.4 1.1 7.4-.5 9.3-3.7l9.5-17zM328 152c-23.8 0-52.7 29.3-56 71.4-.3 3.7 2.1 7.2 5.7 8.3 3.5 1.1 7.4-.5 9.3-3.7l9.5-17c7.7-13.7 19.2-21.6 31.5-21.6s23.8 7.9 31.5 21.6l9.5 17c2.1 3.7 6.2 4.7 9.3 3.7 3.6-1.1 6-4.5 5.7-8.3-3.3-42.1-32.2-71.4-56-71.4z"]},St={prefix:"far",iconName:"smile-wink",icon:[496,512,[],"f4da","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm117.8-146.4c-10.2-8.5-25.3-7.1-33.8 3.1-20.8 25-51.5 39.4-84 39.4s-63.2-14.3-84-39.4c-8.5-10.2-23.7-11.5-33.8-3.1-10.2 8.5-11.5 23.6-3.1 33.8 30 36 74.1 56.6 120.9 56.6s90.9-20.6 120.9-56.6c8.5-10.2 7.1-25.3-3.1-33.8zM168 240c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm160-60c-25.7 0-55.9 16.9-59.9 42.1-1.7 11.2 11.5 18.2 19.8 10.8l9.5-8.5c14.8-13.2 46.2-13.2 61 0l9.5 8.5c8.5 7.4 21.6.3 19.8-10.8-3.8-25.2-34-42.1-59.7-42.1z"]},Ct={prefix:"far",iconName:"snowflake",icon:[448,512,[],"f2dc","M440.1 355.2l-39.2-23 34.1-9.3c8.4-2.3 13.4-11.1 11.1-19.6l-4.1-15.5c-2.2-8.5-10.9-13.6-19.3-11.3L343 298.2 271.2 256l71.9-42.2 79.7 21.7c8.4 2.3 17-2.8 19.3-11.3l4.1-15.5c2.2-8.5-2.7-17.3-11.1-19.6l-34.1-9.3 39.2-23c7.5-4.4 10.1-14.2 5.8-21.9l-7.9-13.9c-4.3-7.7-14-10.3-21.5-5.9l-39.2 23 9.1-34.7c2.2-8.5-2.7-17.3-11.1-19.6l-15.2-4.1c-8.4-2.3-17 2.8-19.3 11.3l-21.3 81-71.9 42.2v-84.5L306 70.4c6.1-6.2 6.1-16.4 0-22.6l-11.1-11.3c-6.1-6.2-16.1-6.2-22.2 0l-24.9 25.4V16c0-8.8-7-16-15.7-16h-15.7c-8.7 0-15.7 7.2-15.7 16v46.1l-24.9-25.4c-6.1-6.2-16.1-6.2-22.2 0L142.1 48c-6.1 6.2-6.1 16.4 0 22.6l58.3 59.3v84.5l-71.9-42.2-21.3-81c-2.2-8.5-10.9-13.6-19.3-11.3L72.7 84c-8.4 2.3-13.4 11.1-11.1 19.6l9.1 34.7-39.2-23c-7.5-4.4-17.1-1.8-21.5 5.9l-7.9 13.9c-4.3 7.7-1.8 17.4 5.8 21.9l39.2 23-34.1 9.1c-8.4 2.3-13.4 11.1-11.1 19.6L6 224.2c2.2 8.5 10.9 13.6 19.3 11.3l79.7-21.7 71.9 42.2-71.9 42.2-79.7-21.7c-8.4-2.3-17 2.8-19.3 11.3l-4.1 15.5c-2.2 8.5 2.7 17.3 11.1 19.6l34.1 9.3-39.2 23c-7.5 4.4-10.1 14.2-5.8 21.9L10 391c4.3 7.7 14 10.3 21.5 5.9l39.2-23-9.1 34.7c-2.2 8.5 2.7 17.3 11.1 19.6l15.2 4.1c8.4 2.3 17-2.8 19.3-11.3l21.3-81 71.9-42.2v84.5l-58.3 59.3c-6.1 6.2-6.1 16.4 0 22.6l11.1 11.3c6.1 6.2 16.1 6.2 22.2 0l24.9-25.4V496c0 8.8 7 16 15.7 16h15.7c8.7 0 15.7-7.2 15.7-16v-46.1l24.9 25.4c6.1 6.2 16.1 6.2 22.2 0l11.1-11.3c6.1-6.2 6.1-16.4 0-22.6l-58.3-59.3v-84.5l71.9 42.2 21.3 81c2.2 8.5 10.9 13.6 19.3 11.3L375 428c8.4-2.3 13.4-11.1 11.1-19.6l-9.1-34.7 39.2 23c7.5 4.4 17.1 1.8 21.5-5.9l7.9-13.9c4.6-7.5 2.1-17.3-5.5-21.7z"]},Yt={prefix:"far",iconName:"square",icon:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-6 400H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h340c3.3 0 6 2.7 6 6v340c0 3.3-2.7 6-6 6z"]},Tt={prefix:"far",iconName:"star",icon:[576,512,[],"f005","M528.1 171.5L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6zM388.6 312.3l23.7 138.4L288 385.4l-124.3 65.3 23.7-138.4-100.6-98 139-20.2 62.2-126 62.2 126 139 20.2-100.6 98z"]},Dt={prefix:"far",iconName:"star-half",icon:[576,512,[],"f089","M288 385.3l-124.3 65.4 23.7-138.4-100.6-98 139-20.2 62.2-126V0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6v-54.3z"]},Vt={prefix:"far",iconName:"sticky-note",icon:[448,512,[],"f249","M448 348.106V80c0-26.51-21.49-48-48-48H48C21.49 32 0 53.49 0 80v351.988c0 26.51 21.49 48 48 48h268.118a48 48 0 0 0 33.941-14.059l83.882-83.882A48 48 0 0 0 448 348.106zm-128 80v-76.118h76.118L320 428.106zM400 80v223.988H296c-13.255 0-24 10.745-24 24v104H48V80h352z"]},Nt={prefix:"far",iconName:"stop-circle",icon:[512,512,[],"f28d","M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z"]},At={prefix:"far",iconName:"sun",icon:[512,512,[],"f185","M494.2 221.9l-59.8-40.5 13.7-71c2.6-13.2-1.6-26.8-11.1-36.4-9.6-9.5-23.2-13.7-36.2-11.1l-70.9 13.7-40.4-59.9c-15.1-22.3-51.9-22.3-67 0l-40.4 59.9-70.8-13.7C98 60.4 84.5 64.5 75 74.1c-9.5 9.6-13.7 23.1-11.1 36.3l13.7 71-59.8 40.5C6.6 229.5 0 242 0 255.5s6.7 26 17.8 33.5l59.8 40.5-13.7 71c-2.6 13.2 1.6 26.8 11.1 36.3 9.5 9.5 22.9 13.7 36.3 11.1l70.8-13.7 40.4 59.9C230 505.3 242.6 512 256 512s26-6.7 33.5-17.8l40.4-59.9 70.9 13.7c13.4 2.7 26.8-1.6 36.3-11.1 9.5-9.5 13.6-23.1 11.1-36.3l-13.7-71 59.8-40.5c11.1-7.5 17.8-20.1 17.8-33.5-.1-13.6-6.7-26.1-17.9-33.7zm-112.9 85.6l17.6 91.2-91-17.6L256 458l-51.9-77-90.9 17.6 17.6-91.2-76.8-52 76.8-52-17.6-91.2 91 17.6L256 53l51.9 76.9 91-17.6-17.6 91.1 76.8 52-76.8 52.1zM256 152c-57.3 0-104 46.7-104 104s46.7 104 104 104 104-46.7 104-104-46.7-104-104-104zm0 160c-30.9 0-56-25.1-56-56s25.1-56 56-56 56 25.1 56 56-25.1 56-56 56z"]},jt={prefix:"far",iconName:"surprise",icon:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm0-176c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm-48-72c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zm128-32c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},Et={prefix:"far",iconName:"thumbs-down",icon:[512,512,[],"f165","M466.27 225.31c4.674-22.647.864-44.538-8.99-62.99 2.958-23.868-4.021-48.565-17.34-66.99C438.986 39.423 404.117 0 327 0c-7 0-15 .01-22.22.01C201.195.01 168.997 40 128 40h-10.845c-5.64-4.975-13.042-8-21.155-8H32C14.327 32 0 46.327 0 64v240c0 17.673 14.327 32 32 32h64c11.842 0 22.175-6.438 27.708-16h7.052c19.146 16.953 46.013 60.653 68.76 83.4 13.667 13.667 10.153 108.6 71.76 108.6 57.58 0 95.27-31.936 95.27-104.73 0-18.41-3.93-33.73-8.85-46.54h36.48c48.602 0 85.82-41.565 85.82-85.58 0-19.15-4.96-34.99-13.73-49.84zM64 296c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm330.18 16.73H290.19c0 37.82 28.36 55.37 28.36 94.54 0 23.75 0 56.73-47.27 56.73-18.91-18.91-9.46-66.18-37.82-94.54C206.9 342.89 167.28 272 138.92 272H128V85.83c53.611 0 100.001-37.82 171.64-37.82h37.82c35.512 0 60.82 17.12 53.12 65.9 15.2 8.16 26.5 36.44 13.94 57.57 21.581 20.384 18.699 51.065 5.21 65.62 9.45 0 22.36 18.91 22.27 37.81-.09 18.91-16.71 37.82-37.82 37.82z"]},Ot={prefix:"far",iconName:"thumbs-up",icon:[512,512,[],"f164","M466.27 286.69C475.04 271.84 480 256 480 236.85c0-44.015-37.218-85.58-85.82-85.58H357.7c4.92-12.81 8.85-28.13 8.85-46.54C366.55 31.936 328.86 0 271.28 0c-61.607 0-58.093 94.933-71.76 108.6-22.747 22.747-49.615 66.447-68.76 83.4H32c-17.673 0-32 14.327-32 32v240c0 17.673 14.327 32 32 32h64c14.893 0 27.408-10.174 30.978-23.95 44.509 1.001 75.06 39.94 177.802 39.94 7.22 0 15.22.01 22.22.01 77.117 0 111.986-39.423 112.94-95.33 13.319-18.425 20.299-43.122 17.34-66.99 9.854-18.452 13.664-40.343 8.99-62.99zm-61.75 53.83c12.56 21.13 1.26 49.41-13.94 57.57 7.7 48.78-17.608 65.9-53.12 65.9h-37.82c-71.639 0-118.029-37.82-171.64-37.82V240h10.92c28.36 0 67.98-70.89 94.54-97.46 28.36-28.36 18.91-75.63 37.82-94.54 47.27 0 47.27 32.98 47.27 56.73 0 39.17-28.36 56.72-28.36 94.54h103.99c21.11 0 37.73 18.91 37.82 37.82.09 18.9-12.82 37.81-22.27 37.81 13.489 14.555 16.371 45.236-5.21 65.62zM88 432c0 13.255-10.745 24-24 24s-24-10.745-24-24 10.745-24 24-24 24 10.745 24 24z"]},Pt={prefix:"far",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"]},Rt={prefix:"far",iconName:"tired",icon:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-110.3 0-200-89.7-200-200S137.7 56 248 56s200 89.7 200 200-89.7 200-200 200zm129.1-303.8c-3.8-4.4-10.3-5.4-15.3-2.5l-80 48c-3.6 2.2-5.8 6.1-5.8 10.3s2.2 8.1 5.8 10.3l80 48c5.4 3.2 11.8 1.6 15.3-2.5 3.8-4.5 3.9-11 .1-15.5L343.6 208l33.6-40.3c3.8-4.5 3.7-11.1-.1-15.5zM220 208c0-4.2-2.2-8.1-5.8-10.3l-80-48c-5-3-11.5-1.9-15.3 2.5-3.8 4.5-3.9 11-.1 15.5l33.6 40.3-33.6 40.3c-3.8 4.5-3.7 11 .1 15.5 3.5 4.1 9.9 5.7 15.3 2.5l80-48c3.6-2.2 5.8-6.1 5.8-10.3zm28 64c-45.4 0-100.9 38.3-107.8 93.3-1.5 11.8 6.9 21.6 15.5 17.9C178.4 373.5 212 368 248 368s69.6 5.5 92.3 15.2c8.5 3.7 17-6 15.5-17.9-6.9-55-62.4-93.3-107.8-93.3z"]},Ft={prefix:"far",iconName:"trash-alt",icon:[448,512,[],"f2ed","M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z"]},It={prefix:"far",iconName:"user",icon:[448,512,[],"f007","M313.6 304c-28.7 0-42.5 16-89.6 16-47.1 0-60.8-16-89.6-16C60.2 304 0 364.2 0 438.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-25.6c0-74.2-60.2-134.4-134.4-134.4zM400 464H48v-25.6c0-47.6 38.8-86.4 86.4-86.4 14.6 0 38.3 16 89.6 16 51.7 0 74.9-16 89.6-16 47.6 0 86.4 38.8 86.4 86.4V464zM224 288c79.5 0 144-64.5 144-144S303.5 0 224 0 80 64.5 80 144s64.5 144 144 144zm0-240c52.9 0 96 43.1 96 96s-43.1 96-96 96-96-43.1-96-96 43.1-96 96-96z"]},Wt={prefix:"far",iconName:"user-circle",icon:[496,512,[],"f2bd","M248 104c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96zm0 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm0-240C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 448c-49.7 0-95.1-18.3-130.1-48.4 14.9-23 40.4-38.6 69.6-39.5 20.8 6.4 40.6 9.6 60.5 9.6s39.7-3.1 60.5-9.6c29.2 1 54.7 16.5 69.6 39.5-35 30.1-80.4 48.4-130.1 48.4zm162.7-84.1c-24.4-31.4-62.1-51.9-105.1-51.9-10.2 0-26 9.6-57.6 9.6-31.5 0-47.4-9.6-57.6-9.6-42.9 0-80.6 20.5-105.1 51.9C61.9 339.2 48 299.2 48 256c0-110.3 89.7-200 200-200s200 89.7 200 200c0 43.2-13.9 83.2-37.3 115.9z"]},Bt={prefix:"far",iconName:"window-close",icon:[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V86c0-3.3 2.7-6 6-6h404c3.3 0 6 2.7 6 6v340zM356.5 194.6L295.1 256l61.4 61.4c4.6 4.6 4.6 12.1 0 16.8l-22.3 22.3c-4.6 4.6-12.1 4.6-16.8 0L256 295.1l-61.4 61.4c-4.6 4.6-12.1 4.6-16.8 0l-22.3-22.3c-4.6-4.6-4.6-12.1 0-16.8l61.4-61.4-61.4-61.4c-4.6-4.6-4.6-12.1 0-16.8l22.3-22.3c4.6-4.6 12.1-4.6 16.8 0l61.4 61.4 61.4-61.4c4.6-4.6 12.1-4.6 16.8 0l22.3 22.3c4.7 4.6 4.7 12.1 0 16.8z"]},Ut={prefix:"far",iconName:"window-maximize",icon:[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm0 394c0 3.3-2.7 6-6 6H54c-3.3 0-6-2.7-6-6V192h416v234z"]},qt={prefix:"far",iconName:"window-minimize",icon:[512,512,[],"f2d1","M480 480H32c-17.7 0-32-14.3-32-32s14.3-32 32-32h448c17.7 0 32 14.3 32 32s-14.3 32-32 32z"]},Gt={prefix:"far",iconName:"window-restore",icon:[512,512,[],"f2d2","M464 0H144c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v320c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h48c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-96 464H48V256h320v208zm96-96h-48V144c0-26.5-21.5-48-48-48H144V48h320v320z"]},Zt={faAddressBook:a,faAddressCard:c,faAngry:i,faArrowAltCircleDown:o,faArrowAltCircleLeft:s,faArrowAltCircleRight:l,faArrowAltCircleUp:u,faBell:f,faBellSlash:d,faBookmark:h,faBuilding:m,faCalendar:p,faCalendarAlt:v,faCalendarCheck:_,faCalendarMinus:M,faCalendarPlus:y,faCalendarTimes:b,faCaretSquareDown:L,faCaretSquareLeft:g,faCaretSquareRight:z,faCaretSquareUp:w,faChartBar:H,faCheckCircle:k,faCheckSquare:x,faCircle:S,faClipboard:C,faClock:Y,faClone:T,faClosedCaptioning:D,faComment:V,faCommentAlt:N,faCommentDots:A,faComments:j,faCompass:E,faCopy:O,faCopyright:P,faCreditCard:R,faDizzy:F,faDotCircle:I,faEdit:W,faEnvelope:B,faEnvelopeOpen:U,faEye:q,faEyeSlash:G,faFile:Z,faFileAlt:J,faFileArchive:$,faFileAudio:K,faFileCode:Q,faFileExcel:X,faFileImage:ee,faFilePdf:te,faFilePowerpoint:ne,faFileVideo:re,faFileWord:ae,faFlag:ce,faFlushed:ie,faFolder:oe,faFolderOpen:se,faFontAwesomeLogoFull:le,faFrown:ue,faFrownOpen:fe,faFutbol:de,faGem:he,faGrimace:me,faGrin:pe,faGrinAlt:ve,faGrinBeam:_e,faGrinBeamSweat:Me,faGrinHearts:ye,faGrinSquint:be,faGrinSquintTears:Le,faGrinStars:ge,faGrinTears:ze,faGrinTongue:we,faGrinTongueSquint:He,faGrinTongueWink:ke,faGrinWink:xe,faHandLizard:Se,faHandPaper:Ce,faHandPeace:Ye,faHandPointDown:Te,faHandPointLeft:De,faHandPointRight:Ve,faHandPointUp:Ne,faHandPointer:Ae,faHandRock:je,faHandScissors:Ee,faHandSpock:Oe,faHandshake:Pe,faHdd:Re,faHeart:Fe,faHospital:Ie,faHourglass:We,faIdBadge:Be,faIdCard:Ue,faImage:qe,faImages:Ge,faKeyboard:Ze,faKiss:Je,faKissBeam:$e,faKissWinkHeart:Ke,faLaugh:Qe,faLaughBeam:Xe,faLaughSquint:et,faLaughWink:tt,faLemon:nt,faLifeRing:rt,faLightbulb:at,faListAlt:ct,faMap:it,faMeh:ot,faMehBlank:st,faMehRollingEyes:lt,faMinusSquare:ut,faMoneyBillAlt:ft,faMoon:dt,faNewspaper:ht,faObjectGroup:mt,faObjectUngroup:pt,faPaperPlane:vt,faPauseCircle:_t,faPlayCircle:Mt,faPlusSquare:yt,faQuestionCircle:bt,faRegistered:Lt,faSadCry:gt,faSadTear:zt,faSave:wt,faShareSquare:Ht,faSmile:kt,faSmileBeam:xt,faSmileWink:St,faSnowflake:Ct,faSquare:Yt,faStar:Tt,faStarHalf:Dt,faStickyNote:Vt,faStopCircle:Nt,faSun:At,faSurprise:jt,faThumbsDown:Et,faThumbsUp:Ot,faTimesCircle:Pt,faTired:Rt,faTrashAlt:Ft,faUser:It,faUserCircle:Wt,faWindowClose:Bt,faWindowMaximize:Ut,faWindowMinimize:qt,faWindowRestore:Gt}},function(e,t,n){"use strict";n.d(t,"b",(function(){return s})),n.d(t,"a",(function(){return d}));var r=n(0),a=n(2),c=n(7),i=n(5),o=n(8);function s(e,t,n,r){return function(a){return a.lift(new l(e,t,n,r))}}var l=function(){function e(e,t,n,r){this.keySelector=e,this.elementSelector=t,this.durationSelector=n,this.subjectSelector=r}return e.prototype.call=function(e,t){return t.subscribe(new u(e,this.keySelector,this.elementSelector,this.durationSelector,this.subjectSelector))},e}(),u=function(e){function t(t,n,r,a,c){var i=e.call(this,t)||this;return i.keySelector=n,i.elementSelector=r,i.durationSelector=a,i.subjectSelector=c,i.groups=null,i.attemptedToUnsubscribe=!1,i.count=0,i}return r.a(t,e),t.prototype._next=function(e){var t;try{t=this.keySelector(e)}catch(e){return void this.error(e)}this._group(e,t)},t.prototype._group=function(e,t){var n=this.groups;n||(n=this.groups=new Map);var r,a=n.get(t);if(this.elementSelector)try{r=this.elementSelector(e)}catch(e){this.error(e)}else r=e;if(!a){a=this.subjectSelector?this.subjectSelector():new o.a,n.set(t,a);var c=new d(t,a,this);if(this.destination.next(c),this.durationSelector){var i=void 0;try{i=this.durationSelector(new d(t,a))}catch(e){return void this.error(e)}this.add(i.subscribe(new f(t,a,this)))}}a.closed||a.next(r)},t.prototype._error=function(e){var t=this.groups;t&&(t.forEach((function(t,n){t.error(e)})),t.clear()),this.destination.error(e)},t.prototype._complete=function(){var e=this.groups;e&&(e.forEach((function(e,t){e.complete()})),e.clear()),this.destination.complete()},t.prototype.removeGroup=function(e){this.groups.delete(e)},t.prototype.unsubscribe=function(){this.closed||(this.attemptedToUnsubscribe=!0,0===this.count&&e.prototype.unsubscribe.call(this))},t}(a.a),f=function(e){function t(t,n,r){var a=e.call(this,n)||this;return a.key=t,a.group=n,a.parent=r,a}return r.a(t,e),t.prototype._next=function(e){this.complete()},t.prototype._unsubscribe=function(){var e=this.parent,t=this.key;this.key=this.parent=null,e&&e.removeGroup(t)},t}(a.a),d=function(e){function t(t,n,r){var a=e.call(this)||this;return a.key=t,a.groupSubject=n,a.refCountSubscription=r,a}return r.a(t,e),t.prototype._subscribe=function(e){var t=new c.a,n=this.refCountSubscription,r=this.groupSubject;return n&&!n.closed&&t.add(new h(n)),t.add(r.subscribe(e)),t},t}(i.a),h=function(e){function t(t){var n=e.call(this)||this;return n.parent=t,t.count++,n}return r.a(t,e),t.prototype.unsubscribe=function(){var t=this.parent;t.closed||this.closed||(e.prototype.unsubscribe.call(this),t.count-=1,0===t.count&&t.attemptedToUnsubscribe&&t.unsubscribe())},t}(c.a)},function(e,t,n){"use strict";n.r(t),n.d(t,"MemoryRouter",(function(){return M})),n.d(t,"Prompt",(function(){return b})),n.d(t,"Redirect",(function(){return w})),n.d(t,"Route",(function(){return S})),n.d(t,"Router",(function(){return _})),n.d(t,"StaticRouter",(function(){return N})),n.d(t,"Switch",(function(){return A})),n.d(t,"generatePath",(function(){return z})),n.d(t,"matchPath",(function(){return x})),n.d(t,"useHistory",(function(){return O})),n.d(t,"useLocation",(function(){return P})),n.d(t,"useParams",(function(){return R})),n.d(t,"useRouteMatch",(function(){return F})),n.d(t,"withRouter",(function(){return j})),n.d(t,"BrowserRouter",(function(){return I})),n.d(t,"HashRouter",(function(){return W})),n.d(t,"Link",(function(){return J})),n.d(t,"NavLink",(function(){return Q}));var r=n(26),a=n(4),c=n.n(a),i=(n(6),n(25)),o=n(90),s=n(24),l=n(15),u=n(91),f=n.n(u);n(92);function d(e,t){if(null==e)return{};var n,r,a={},c=Object.keys(e);for(r=0;r=0||(a[n]=e[n]);return a}var h=n(233),m=n.n(h),p=function(e){var t=Object(o.a)();return t.displayName=e,t}("Router-History"),v=function(e){var t=Object(o.a)();return t.displayName=e,t}("Router"),_=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(r.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return c.a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},c.a.createElement(p.Provider,{children:this.props.children||null,value:this.props.history}))},t}(c.a.Component);var M=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a1&&"number"==typeof e[e.length-1]&&(n=e.pop())):"number"==typeof s&&(n=e.pop()),null===o&&1===e.length&&e[0]instanceof r.a?e[0]:Object(c.a)(n)(Object(i.a)(e,o))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(0),a=n(10),c=n(35),i=n(19),o=n(16);function s(){for(var e=[],t=0;t{const[n,a]=r.useState(c);return r.useEffect(()=>{window.localStorage.setItem(t.THEME_KEY,JSON.stringify(n))},[n]),r.createElement(t.ThemeContext.Provider,{value:{theme:n,set:e=>a(e)}},e.children)};t.useTheme=()=>r.useContext(t.ThemeContext).theme},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActionButton=void 0;const r=n(40),a=n(45),c=n(4),i=n(32);n(267);t.ActionButton=e=>{const{label:t,action:n,icon:o,indicateLoading:s}=e,[l,u]=c.useState(!1);return c.useEffect(()=>{setTimeout(()=>u(!1),1e3)},[l]),c.createElement(i.ThemeDiv,{className:"action-button "+(e.dark?"action-button--dark":""),onClick:e=>{n&&(n(),u(!0)),e.preventDefault()}},o&&c.createElement(a.FontAwesomeIcon,{icon:l&&s?r.faCircleNotch:o,spin:l&&s}),t&&c.createElement("span",{style:o&&{marginLeft:"5px"}},t))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.APIProvider=t.RolloutAPIContext=t.RolloutAPI=void 0;const r=n(4),a=n(86);t.RolloutAPI=new a.RolloutServiceApi,t.RolloutAPIContext=r.createContext(t.RolloutAPI);t.APIProvider=e=>r.createElement(t.RolloutAPIContext.Provider,{value:t.RolloutAPI},e.children)},function(e,t,n){"use strict";(function(e){var r=n(4),a=n.n(r),c=n(26),i=n(6),o=n.n(i),s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==e?e:{};function l(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var u=a.a.createContext||function(e,t){var n,a,i,u="__create-react-context-"+((s[i="__global_unique_id__"]=(s[i]||0)+1)+"__"),f=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=l(t.props.value),t}Object(c.a)(n,e);var r=n.prototype;return r.getChildContext=function(){var e;return(e={})[u]=this.emitter,e},r.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((c=r)===(i=a)?0!==c||1/c==1/i:c!=c&&i!=i)?n=0:(n="function"==typeof t?t(r,a):1073741823,0!==(n|=0)&&this.emitter.set(e.value,n))}var c,i},r.render=function(){return this.props.children},n}(r.Component);f.childContextTypes=((n={})[u]=o.a.object.isRequired,n);var d=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}Object(c.a)(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?1073741823:t},r.componentDidMount=function(){this.context[u]&&this.context[u].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?1073741823:e},r.componentWillUnmount=function(){this.context[u]&&this.context[u].off(this.onUpdate)},r.getValue=function(){return this.context[u]?this.context[u].get():e},r.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return d.contextTypes=((a={})[u]=o.a.object,a),{Provider:f,Consumer:d}};t.a=u}).call(this,n(50))},function(e,t,n){var r=n(248);e.exports=h,e.exports.parse=c,e.exports.compile=function(e,t){return o(c(e,t),t)},e.exports.tokensToFunction=o,e.exports.tokensToRegExp=d;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function c(e,t){for(var n,r=[],c=0,i=0,o="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var f=n[0],d=n[1],h=n.index;if(o+=e.slice(i,h),i=h+f.length,d)o+=d[1];else{var m=e[i],p=n[2],v=n[3],_=n[4],M=n[5],y=n[6],b=n[7];o&&(r.push(o),o="");var L=null!=p&&null!=m&&m!==p,g="+"===y||"*"===y,z="?"===y||"*"===y,w=n[2]||u,H=_||M;r.push({name:v||c++,prefix:p||"",delimiter:w,optional:z,repeat:g,partial:L,asterisk:!!b,pattern:H?l(H):b?".*":"[^"+s(w)+"]+?"})}}return i=20?"ste":"de")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},a={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},c=function(e){return function(t,n,c,i){var o=r(t),s=a[e][r(t)];return 2===o&&(s=s[n?0:1]),s.replace(/%d/i,t)}},i=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar",{months:i,monthsShort:i,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:c("s"),ss:c("s"),m:c("m"),mm:c("m"),h:c("h"),hh:c("h"),d:c("d"),dd:c("d"),M:c("M"),MM:c("M"),y:c("y"),yy:c("y")},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},n={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(e){return function(r,a,c,i){var o=t(r),s=n[e][t(r)];return 2===o&&(s=s[a?0:1]),s.replace(/%d/i,r)}},a=["جانفي","فيفري","مارس","أفريل","ماي","جوان","جويلية","أوت","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-dz",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:0,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(e){return 0===e?0:1===e?1:2===e?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},a=function(e){return function(t,a,c,i){var o=n(t),s=r[e][n(t)];return 2===o&&(s=s[a?0:1]),s.replace(/%d/i,t)}},c=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];e.defineLocale("ar-ly",{months:c,monthsShort:c,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:a("s"),ss:a("s"),m:a("m"),mm:a("m"),h:a("h"),hh:a("h"),d:a("d"),dd:a("d"),M:a("M"),MM:a("M"),y:a("y"),yy:a("y")},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};e.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(e){return"م"===e},meridiem:function(e,t,n){return e<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};e.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"bir neçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(e){return/^(gündüz|axşam)$/.test(e)},meridiem:function(e,t,n){return e<4?"gecə":e<12?"səhər":e<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(e){if(0===e)return e+"-ıncı";var n=e%10;return e+(t[n]||t[e%100-n]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r,a;return"m"===n?t?"хвіліна":"хвіліну":"h"===n?t?"гадзіна":"гадзіну":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:t?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}e.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:t,mm:t,h:t,hh:t,d:"дзень",dd:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(e){return/^(дня|вечара)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночы":e<12?"раніцы":e<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e%10!=2&&e%10!=3||e%100==12||e%100==13?e+"-ы":e+"-і";case"D":return e+"-га";default:return e}},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Миналата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[Миналия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",w:"седмица",ww:"%d седмици",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t&&e>=4||"দুপুর"===t&&e<5||"বিকাল"===t?e+12:e},meridiem:function(e,t,n){return e<4?"রাত":e<10?"সকাল":e<17?"দুপুর":e<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};e.defineLocale("bn-bd",{months:"জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(e){return e.replace(/[১২৩৪৫৬৭৮৯০]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,meridiemHour:function(e,t){return 12===e&&(e=0),"রাত"===t?e<4?e:e+12:"ভোর"===t||"সকাল"===t?e:"দুপুর"===t?e>=3?e:e+12:"বিকাল"===t||"সন্ধ্যা"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"রাত":e<6?"ভোর":e<12?"সকাল":e<15?"দুপুর":e<18?"বিকাল":e<20?"সন্ধ্যা":"রাত"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};e.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12".split("_"),monthsShortRegex:/^(ཟླ་\d{1,2})/,monthsParseExact:!0,weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(e){return e.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(e,t){return 12===e&&(e=0),"མཚན་མོ"===t&&e>=4||"ཉིན་གུང"===t&&e<5||"དགོང་དག"===t?e+12:e},meridiem:function(e,t,n){return e<4?"མཚན་མོ":e<10?"ཞོགས་ཀས":e<17?"ཉིན་གུང":e<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){return e+" "+function(e,t){return 2===t?function(e){var t={m:"v",b:"v",d:"z"};return void 0===t[e.charAt(0)]?e:t[e.charAt(0)]+e.substring(1)}(e):e}({mm:"munutenn",MM:"miz",dd:"devezh"}[n],e)}var n=[/^gen/i,/^c[ʼ\']hwe/i,/^meu/i,/^ebr/i,/^mae/i,/^(mez|eve)/i,/^gou/i,/^eos/i,/^gwe/i,/^her/i,/^du/i,/^ker/i],r=/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,a=[/^Su/i,/^Lu/i,/^Me([^r]|$)/i,/^Mer/i,/^Ya/i,/^Gw/i,/^Sa/i];e.defineLocale("br",{months:"Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParse:a,fullWeekdaysParse:[/^sul/i,/^lun/i,/^meurzh/i,/^merc[ʼ\']her/i,/^yaou/i,/^gwener/i,/^sadorn/i],shortWeekdaysParse:[/^Sul/i,/^Lun/i,/^Meu/i,/^Mer/i,/^Yao/i,/^Gwe/i,/^Sad/i],minWeekdaysParse:a,monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,monthsShortStrictRegex:/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY HH:mm",LLLL:"dddd, D [a viz] MMMM YYYY HH:mm"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warcʼhoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Decʼh da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s ʼzo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:t,h:"un eur",hh:"%d eur",d:"un devezh",dd:t,M:"ur miz",MM:t,y:"ur bloaz",yy:function(e){switch(function e(t){return t>9?e(t%10):t}(e)){case 1:case 3:case 4:case 5:case 9:return e+" bloaz";default:return e+" vloaz"}}},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(e){return e+(1===e?"añ":"vet")},week:{dow:1,doy:4},meridiemParse:/a.m.|g.m./,isPM:function(e){return"g.m."===e},meridiem:function(e,t,n){return e<12?"a.m.":"g.m."}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),n="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),r=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;function c(e){return e>1&&e<5&&1!=~~(e/10)}function i(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"pár sekund":"pár sekundami";case"ss":return t||r?a+(c(e)?"sekundy":"sekund"):a+"sekundami";case"m":return t?"minuta":r?"minutu":"minutou";case"mm":return t||r?a+(c(e)?"minuty":"minut"):a+"minutami";case"h":return t?"hodina":r?"hodinu":"hodinou";case"hh":return t||r?a+(c(e)?"hodiny":"hodin"):a+"hodinami";case"d":return t||r?"den":"dnem";case"dd":return t||r?a+(c(e)?"dny":"dní"):a+"dny";case"M":return t||r?"měsíc":"měsícem";case"MM":return t||r?a+(c(e)?"měsíce":"měsíců"):a+"měsíci";case"y":return t||r?"rok":"rokem";case"yy":return t||r?a+(c(e)?"roky":"let"):a+"lety"}}e.defineLocale("cs",{months:t,monthsShort:n,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:i,ss:i,m:i,mm:i,h:i,hh:i,d:i,dd:i,M:i,MM:i,y:i,yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(e){return e+(/сехет$/i.exec(e)?"рен":/ҫул$/i.exec(e)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(e){var t="";return e>20?t=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(t=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"][e]),e+t},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[e+" Tage",e+" Tagen"],w:["eine Woche","einer Woche"],M:["ein Monat","einem Monat"],MM:[e+" Monate",e+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[e+" Jahre",e+" Jahren"]};return t?a[n][0]:a[n][1]}e.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:t,mm:"%d Minuten",h:t,hh:"%d Stunden",d:t,dd:t,w:t,ww:"%d Wochen",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];e.defineLocale("dv",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(e){return"މފ"===e},meridiem:function(e,t,n){return e<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:7,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(e,t){return e?"string"==typeof t&&/D/.test(t.substring(0,t.indexOf("MMMM")))?this._monthsGenitiveEl[e.month()]:this._monthsNominativeEl[e.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(e,t,n){return e>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(e){return"μ"===(e+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(e,t){var n,r=this._calendarEl[e],a=t&&t.hours();return n=r,("undefined"!=typeof Function&&n instanceof Function||"[object Function]"===Object.prototype.toString.call(n))&&(r=r.apply(t)),r.replace("{}",a%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-in",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("en-sg",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"[la] D[-an de] MMMM, YYYY",LLL:"[la] D[-an de] MMMM, YYYY HH:mm",LLLL:"dddd[n], [la] D[-an de] MMMM, YYYY HH:mm",llll:"ddd, [la] D[-an de] MMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(e){return"p"===e.charAt(0).toLowerCase()},meridiem:function(e,t,n){return e>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd[n je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasintan] dddd[n je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"kelkaj sekundoj",ss:"%d sekundoj",m:"unu minuto",mm:"%d minutoj",h:"unu horo",hh:"%d horoj",d:"unu tago",dd:"%d tagoj",M:"unu monato",MM:"%d monatoj",y:"unu jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4},invalidDate:"Fecha inválida"})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-mx",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:4},invalidDate:"Fecha inválida"})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),r=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],a=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;e.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",w:"una semana",ww:"%d semanas",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[e+"sekundi",e+"sekundit"],m:["ühe minuti","üks minut"],mm:[e+" minuti",e+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[e+" tunni",e+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[e+" kuu",e+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[e+" aasta",e+" aastat"]};return t?a[n][2]?a[n][2]:a[n][1]:r?a[n][0]:a[n][1]}e.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:"%d päeva",M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};e.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(e){return/بعد از ظهر/.test(e)},meridiem:function(e,t,n){return e<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"%d ثانیه",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(e){return e.replace(/[۰-۹]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),n=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",t[7],t[8],t[9]];function r(e,r,a,c){var i="";switch(a){case"s":return c?"muutaman sekunnin":"muutama sekunti";case"ss":i=c?"sekunnin":"sekuntia";break;case"m":return c?"minuutin":"minuutti";case"mm":i=c?"minuutin":"minuuttia";break;case"h":return c?"tunnin":"tunti";case"hh":i=c?"tunnin":"tuntia";break;case"d":return c?"päivän":"päivä";case"dd":i=c?"päivän":"päivää";break;case"M":return c?"kuukauden":"kuukausi";case"MM":i=c?"kuukauden":"kuukautta";break;case"y":return c?"vuoden":"vuosi";case"yy":i=c?"vuoden":"vuotta"}return i=function(e,r){return e<10?r?n[e]:t[e]:e}(e,c)+" "+i}e.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("fil",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t=/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,n=[/^janv/i,/^févr/i,/^mars/i,/^avr/i,/^mai/i,/^juin/i,/^juil/i,/^août/i,/^sept/i,/^oct/i,/^nov/i,/^déc/i];e.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsRegex:t,monthsShortRegex:t,monthsStrictRegex:/^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,monthsShortStrictRegex:/(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,monthsParse:n,longMonthsParse:n,shortMonthsParse:n,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",w:"une semaine",ww:"%d semaines",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(e,t){switch(t){case"D":return e+(1===e?"er":"");default:case"M":case"Q":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(e,t){switch(t){default:case"M":case"Q":case"D":case"DDD":case"d":return e+(1===e?"er":"e");case"w":case"W":return e+(1===e?"re":"e")}},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");e.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ga",{months:["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Meitheamh","Iúil","Lúnasa","Meán Fómhair","Deireadh Fómhair","Samhain","Nollaig"],monthsShort:["Ean","Feabh","Márt","Aib","Beal","Meith","Iúil","Lún","M.F.","D.F.","Samh","Noll"],monthsParseExact:!0,weekdays:["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Sathairn"],weekdaysShort:["Domh","Luan","Máirt","Céad","Déar","Aoine","Sath"],weekdaysMin:["Do","Lu","Má","Cé","Dé","A","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné ag] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d míonna",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("gd",{months:["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],monthsShort:["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],monthsParseExact:!0,weekdays:["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],weekdaysShort:["Did","Dil","Dim","Dic","Dia","Dih","Dis"],weekdaysMin:["Dò","Lu","Mà","Ci","Ar","Ha","Sa"],longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(e){return e+(1===e?"d":e%10==2?"na":"mh")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(e){return 0===e.indexOf("un")?"n"+e:"en "+e},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={s:["थोडया सॅकंडांनी","थोडे सॅकंड"],ss:[e+" सॅकंडांनी",e+" सॅकंड"],m:["एका मिणटान","एक मिनूट"],mm:[e+" मिणटांनी",e+" मिणटां"],h:["एका वरान","एक वर"],hh:[e+" वरांनी",e+" वरां"],d:["एका दिसान","एक दीस"],dd:[e+" दिसांनी",e+" दीस"],M:["एका म्हयन्यान","एक म्हयनो"],MM:[e+" म्हयन्यानी",e+" म्हयने"],y:["एका वर्सान","एक वर्स"],yy:[e+" वर्सांनी",e+" वर्सां"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-deva",{months:{standalone:"जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),format:"जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार".split("_"),weekdaysShort:"आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.".split("_"),weekdaysMin:"आ_सो_मं_बु_ब्रे_सु_शे".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [वाजतां]",LTS:"A h:mm:ss [वाजतां]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [वाजतां]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [वाजतां]",llll:"ddd, D MMM YYYY, A h:mm [वाजतां]"},calendar:{sameDay:"[आयज] LT",nextDay:"[फाल्यां] LT",nextWeek:"[फुडलो] dddd[,] LT",lastDay:"[काल] LT",lastWeek:"[फाटलो] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s आदीं",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(वेर)/,ordinal:function(e,t){switch(t){case"D":return e+"वेर";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:0,doy:3},meridiemParse:/राती|सकाळीं|दनपारां|सांजे/,meridiemHour:function(e,t){return 12===e&&(e=0),"राती"===t?e<4?e:e+12:"सकाळीं"===t?e:"दनपारां"===t?e>12?e:e+12:"सांजे"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"राती":e<12?"सकाळीं":e<16?"दनपारां":e<20?"सांजे":"राती"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={s:["thoddea sekondamni","thodde sekond"],ss:[e+" sekondamni",e+" sekond"],m:["eka mintan","ek minut"],mm:[e+" mintamni",e+" mintam"],h:["eka voran","ek vor"],hh:[e+" voramni",e+" voram"],d:["eka disan","ek dis"],dd:[e+" disamni",e+" dis"],M:["eka mhoinean","ek mhoino"],MM:[e+" mhoineamni",e+" mhoine"],y:["eka vorsan","ek voros"],yy:[e+" vorsamni",e+" vorsam"]};return r?a[n][0]:a[n][1]}e.defineLocale("gom-latn",{months:{standalone:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),format:"Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea".split("_"),isFormat:/MMMM(\s)+D[oD]?/},monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Fuddlo] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fattlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(e,t){switch(t){case"D":return e+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return e}},week:{dow:0,doy:3},meridiemParse:/rati|sokallim|donparam|sanje/,meridiemHour:function(e,t){return 12===e&&(e=0),"rati"===t?e<4?e:e+12:"sokallim"===t?e:"donparam"===t?e>12?e:e+12:"sanje"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"rati":e<12?"sokallim":e<16?"donparam":e<20?"sanje":"rati"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};e.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પહેલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(e){return e.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(e,t){return 12===e&&(e=0),"રાત"===t?e<4?e:e+12:"સવાર"===t?e:"બપોર"===t?e>=10?e:e+12:"સાંજ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"રાત":e<10?"સવાર":e<17?"બપોર":e<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(e){return 2===e?"שעתיים":e+" שעות"},d:"יום",dd:function(e){return 2===e?"יומיים":e+" ימים"},M:"חודש",MM:function(e){return 2===e?"חודשיים":e+" חודשים"},y:"שנה",yy:function(e){return 2===e?"שנתיים":e%10==0&&10!==e?e+" שנה":e+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(e){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(e)},meridiem:function(e,t,n){return e<5?"לפנות בוקר":e<10?"בבוקר":e<12?n?'לפנה"צ':"לפני הצהריים":e<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"},r=[/^जन/i,/^फ़र|फर/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सितं|सित/i,/^अक्टू/i,/^नव|नवं/i,/^दिसं|दिस/i];e.defineLocale("hi",{months:{format:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),standalone:"जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर".split("_")},monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},monthsParse:r,longMonthsParse:r,shortMonthsParse:[/^जन/i,/^फ़र/i,/^मार्च/i,/^अप्रै/i,/^मई/i,/^जून/i,/^जुल/i,/^अग/i,/^सित/i,/^अक्टू/i,/^नव/i,/^दिस/i],monthsRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsShortRegex:/^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,monthsStrictRegex:/^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,monthsShortStrictRegex:/^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(e,t){return 12===e&&(e=0),"रात"===t?e<4?e:e+12:"सुबह"===t?e:"दोपहर"===t?e>=10?e:e+12:"शाम"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"रात":e<10?"सुबह":e<17?"दोपहर":e<20?"शाम":"रात"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r=e+" ";switch(n){case"ss":return r+=1===e?"sekunda":2===e||3===e||4===e?"sekunde":"sekundi";case"m":return t?"jedna minuta":"jedne minute";case"mm":return r+=1===e?"minuta":2===e||3===e||4===e?"minute":"minuta";case"h":return t?"jedan sat":"jednog sata";case"hh":return r+=1===e?"sat":2===e||3===e||4===e?"sata":"sati";case"dd":return r+=1===e?"dan":"dana";case"MM":return r+=1===e?"mjesec":2===e||3===e||4===e?"mjeseca":"mjeseci";case"yy":return r+=1===e?"godina":2===e||3===e||4===e?"godine":"godina"}}e.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"Do MMMM YYYY",LLL:"Do MMMM YYYY H:mm",LLLL:"dddd, Do MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:return"[prošlu] [nedjelju] [u] LT";case 3:return"[prošlu] [srijedu] [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:t,m:t,mm:t,h:t,hh:t,d:"dan",dd:t,M:"mjesec",MM:t,y:"godinu",yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");function n(e,t,n,r){var a=e;switch(n){case"s":return r||t?"néhány másodperc":"néhány másodperce";case"ss":return a+(r||t)?" másodperc":" másodperce";case"m":return"egy"+(r||t?" perc":" perce");case"mm":return a+(r||t?" perc":" perce");case"h":return"egy"+(r||t?" óra":" órája");case"hh":return a+(r||t?" óra":" órája");case"d":return"egy"+(r||t?" nap":" napja");case"dd":return a+(r||t?" nap":" napja");case"M":return"egy"+(r||t?" hónap":" hónapja");case"MM":return a+(r||t?" hónap":" hónapja");case"y":return"egy"+(r||t?" év":" éve");case"yy":return a+(r||t?" év":" éve")}return""}function r(e){return(e?"":"[múlt] ")+"["+t[this.day()]+"] LT[-kor]"}e.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(e){return"u"===e.charAt(1).toLowerCase()},meridiem:function(e,t,n){return e<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return r.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return r.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(e){return/^(ցերեկվա|երեկոյան)$/.test(e)},meridiem:function(e){return e<4?"գիշերվա":e<12?"առավոտվա":e<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(e,t){switch(t){case"DDD":case"w":case"W":case"DDDo":return 1===e?e+"-ին":e+"-րդ";default:return e}},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"siang"===t?e>=11?e:e+12:"sore"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"siang":e<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e){return e%100==11||e%10!=1}function n(e,n,r,a){var c=e+" ";switch(r){case"s":return n||a?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return t(e)?c+(n||a?"sekúndur":"sekúndum"):c+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return t(e)?c+(n||a?"mínútur":"mínútum"):n?c+"mínúta":c+"mínútu";case"hh":return t(e)?c+(n||a?"klukkustundir":"klukkustundum"):c+"klukkustund";case"d":return n?"dagur":a?"dag":"degi";case"dd":return t(e)?n?c+"dagar":c+(a?"daga":"dögum"):n?c+"dagur":c+(a?"dag":"degi");case"M":return n?"mánuður":a?"mánuð":"mánuði";case"MM":return t(e)?n?c+"mánuðir":c+(a?"mánuði":"mánuðum"):n?c+"mánuður":c+(a?"mánuð":"mánuði");case"y":return n||a?"ár":"ári";case"yy":return t(e)?c+(n||a?"ár":"árum"):c+(n||a?"ár":"ári")}}e.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:function(){return"[Oggi a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextDay:function(){return"[Domani a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},nextWeek:function(){return"dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastDay:function(){return"[Ieri a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"},lastWeek:function(){switch(this.day()){case 0:return"[La scorsa] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT";default:return"[Lo scorso] dddd [a"+(this.hours()>1?"lle ":0===this.hours()?" ":"ll'")+"]LT"}},sameElse:"L"},relativeTime:{future:"tra %s",past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",w:"una settimana",ww:"%d settimane",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(e){return(/^[0-9].+$/.test(e)?"tra":"in")+" "+e},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ja",{eras:[{since:"2019-05-01",offset:1,name:"令和",narrow:"㋿",abbr:"R"},{since:"1989-01-08",until:"2019-04-30",offset:1,name:"平成",narrow:"㍻",abbr:"H"},{since:"1926-12-25",until:"1989-01-07",offset:1,name:"昭和",narrow:"㍼",abbr:"S"},{since:"1912-07-30",until:"1926-12-24",offset:1,name:"大正",narrow:"㍽",abbr:"T"},{since:"1873-01-01",until:"1912-07-29",offset:6,name:"明治",narrow:"㍾",abbr:"M"},{since:"0001-01-01",until:"1873-12-31",offset:1,name:"西暦",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"紀元前",narrow:"BC",abbr:"BC"}],eraYearOrdinalRegex:/(元|\d+)年/,eraYearOrdinalParse:function(e,t){return"元"===t[1]?1:parseInt(t[1]||e,10)},months:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(e){return"午後"===e},meridiem:function(e,t,n){return e<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(e){return e.week()!==this.week()?"[来週]dddd LT":"dddd LT"},lastDay:"[昨日] LT",lastWeek:function(e){return this.week()!==e.week()?"[先週]dddd LT":"dddd LT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}日/,ordinal:function(e,t){switch(t){case"y":return 1===e?"元年":e+"年";case"d":case"D":case"DDD":return e+"日";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"数秒",ss:"%d秒",m:"1分",mm:"%d分",h:"1時間",hh:"%d時間",d:"1日",dd:"%d日",M:"1ヶ月",MM:"%dヶ月",y:"1年",yy:"%d年"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("jv",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),weekdays:"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),weekdaysShort:"Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(e,t){return 12===e&&(e=0),"enjing"===t?e:"siyang"===t?e>=11?e:e+12:"sonten"===t||"ndalu"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"enjing":e<15?"siyang":e<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ka",{months:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(e){return e.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,(function(e,t,n){return"ი"===n?t+"ში":t+n+"ში"}))},past:function(e){return/(წამი|წუთი|საათი|დღე|თვე)/.test(e)?e.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(e)?e.replace(/წელი$/,"წლის წინ"):e},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(e){return 0===e?e:1===e?e+"-ლი":e<20||e<=100&&e%20==0||e%100==0?"მე-"+e:e+"-ე"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};e.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};e.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(e){return"ល្ងាច"===e},meridiem:function(e,t,n){return e<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(e){return e.replace(/[១២៣៤៥៦៧៨៩០]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};e.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(e){return e.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ರಾತ್ರಿ"===t?e<4?e:e+12:"ಬೆಳಿಗ್ಗೆ"===t?e:"ಮಧ್ಯಾಹ್ನ"===t?e>=10?e:e+12:"ಸಂಜೆ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ರಾತ್ರಿ":e<10?"ಬೆಳಿಗ್ಗೆ":e<17?"ಮಧ್ಯಾಹ್ನ":e<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(e){return e+"ನೇ"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"일";case"M":return e+"월";case"w":case"W":return e+"주";default:return e}},meridiemParse:/오전|오후/,isPM:function(e){return"오후"===e},meridiem:function(e,t,n){return e<12?"오전":"오후"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},r=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];e.defineLocale("ku",{months:r,monthsShort:r,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(e){return/ئێواره‌/.test(e)},meridiem:function(e,t,n){return e<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(e){return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g,(function(e){return n[e]})).replace(/،/g,",")},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]})).replace(/,/g,"،")},week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};e.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return t?a[n][0]:a[n][1]}function n(e){if(e=parseInt(e,10),isNaN(e))return!1;if(e<0)return!0;if(e<10)return 4<=e&&e<=7;if(e<100){var t=e%10;return n(0===t?e/10:t)}if(e<1e4){for(;e>=10;)e/=10;return n(e)}return n(e/=1e3)}e.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:function(e){return n(e.substr(0,e.indexOf(" ")))?"a "+e:"an "+e},past:function(e){return n(e.substr(0,e.indexOf(" ")))?"viru "+e:"virun "+e},s:"e puer Sekonnen",ss:"%d Sekonnen",m:t,mm:"%d Minutten",h:t,hh:"%d Stonnen",d:t,dd:"%d Deeg",M:t,MM:"%d Méint",y:t,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(e){return"ຕອນແລງ"===e},meridiem:function(e,t,n){return e<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(e){return"ທີ່"+e}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};function n(e,t,n,r){return t?a(n)[0]:r?a(n)[1]:a(n)[2]}function r(e){return e%10==0||e>10&&e<20}function a(e){return t[e].split("_")}function c(e,t,c,i){var o=e+" ";return 1===e?o+n(0,t,c[0],i):t?o+(r(e)?a(c)[1]:a(c)[0]):i?o+a(c)[1]:o+(r(e)?a(c)[1]:a(c)[2])}e.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:function(e,t,n,r){return t?"kelios sekundės":r?"kelių sekundžių":"kelias sekundes"},ss:c,m:n,mm:c,h:n,hh:c,d:n,dd:c,M:n,MM:c,y:n,yy:c},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(e){return e+"-oji"},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};function n(e,t,n){return n?t%10==1&&t%100!=11?e[2]:e[3]:t%10==1&&t%100!=11?e[0]:e[1]}function r(e,r,a){return e+" "+n(t[a],e,r)}function a(e,r,a){return n(t[a],e,r)}e.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:function(e,t){return t?"dažas sekundes":"dažām sekundēm"},ss:r,m:a,mm:r,h:a,hh:r,d:a,dd:r,M:a,MM:r,y:a,yy:r},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mjesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"за %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"една минута",mm:"%d минути",h:"еден час",hh:"%d часа",d:"еден ден",dd:"%d дена",M:"еден месец",MM:"%d месеци",y:"една година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(e){var t=e%10,n=e%100;return 0===e?e+"-ев":0===n?e+"-ен":n>10&&n<20?e+"-ти":1===t?e+"-ви":2===t?e+"-ри":7===t||8===t?e+"-ми":e+"-ти"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(e,t){return 12===e&&(e=0),"രാത്രി"===t&&e>=4||"ഉച്ച കഴിഞ്ഞ്"===t||"വൈകുന്നേരം"===t?e+12:e},meridiem:function(e,t,n){return e<4?"രാത്രി":e<12?"രാവിലെ":e<17?"ഉച്ച കഴിഞ്ഞ്":e<20?"വൈകുന്നേരം":"രാത്രി"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){switch(n){case"s":return t?"хэдхэн секунд":"хэдхэн секундын";case"ss":return e+(t?" секунд":" секундын");case"m":case"mm":return e+(t?" минут":" минутын");case"h":case"hh":return e+(t?" цаг":" цагийн");case"d":case"dd":return e+(t?" өдөр":" өдрийн");case"M":case"MM":return e+(t?" сар":" сарын");case"y":case"yy":return e+(t?" жил":" жилийн");default:return e}}e.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(e){return"ҮХ"===e},meridiem:function(e,t,n){return e<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+" өдөр";default:return e}}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};function r(e,t,n,r){var a="";if(t)switch(n){case"s":a="काही सेकंद";break;case"ss":a="%d सेकंद";break;case"m":a="एक मिनिट";break;case"mm":a="%d मिनिटे";break;case"h":a="एक तास";break;case"hh":a="%d तास";break;case"d":a="एक दिवस";break;case"dd":a="%d दिवस";break;case"M":a="एक महिना";break;case"MM":a="%d महिने";break;case"y":a="एक वर्ष";break;case"yy":a="%d वर्षे"}else switch(n){case"s":a="काही सेकंदां";break;case"ss":a="%d सेकंदां";break;case"m":a="एका मिनिटा";break;case"mm":a="%d मिनिटां";break;case"h":a="एका तासा";break;case"hh":a="%d तासां";break;case"d":a="एका दिवसा";break;case"dd":a="%d दिवसां";break;case"M":a="एका महिन्या";break;case"MM":a="%d महिन्यां";break;case"y":a="एका वर्षा";break;case"yy":a="%d वर्षां"}return a.replace(/%d/i,e)}e.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:r,ss:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,meridiemHour:function(e,t){return 12===e&&(e=0),"पहाटे"===t||"सकाळी"===t?e:"दुपारी"===t||"सायंकाळी"===t||"रात्री"===t?e>=12?e:e+12:void 0},meridiem:function(e,t,n){return e>=0&&e<6?"पहाटे":e<12?"सकाळी":e<17?"दुपारी":e<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(e,t){return 12===e&&(e=0),"pagi"===t?e:"tengahari"===t?e>=11?e:e+12:"petang"===t||"malam"===t?e+12:void 0},meridiem:function(e,t,n){return e<11?"pagi":e<15?"tengahari":e<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};e.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(e){return e.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",w:"en uke",ww:"%d uker",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};e.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(e){return e.replace(/[१२३४५६७८९०]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(e,t){return 12===e&&(e=0),"राति"===t?e<4?e:e+12:"बिहान"===t?e:"दिउँसो"===t?e>=10?e:e+12:"साँझ"===t?e+12:void 0},meridiem:function(e,t,n){return e<3?"राति":e<12?"बिहान":e<16?"दिउँसो":e<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",w:"één week",ww:"%d weken",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),r=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],a=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;e.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(e,r){return e?/-MMM-/.test(r)?n[e.month()]:t[e.month()]:t},monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(e){return e+(1===e||8===e||e>=20?"ste":"de")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"su._må._ty._on._to._fr._lau.".split("_"),weekdaysMin:"su_må_ty_on_to_fr_la".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",w:"ei veke",ww:"%d veker",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("oc-lnc",{months:{standalone:"genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"),format:"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dm._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dm_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:"[uèi a] LT",nextDay:"[deman a] LT",nextWeek:"dddd [a] LT",lastDay:"[ièr a] LT",lastWeek:"dddd [passat a] LT",sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"unas segondas",ss:"%d segondas",m:"una minuta",mm:"%d minutas",h:"una ora",hh:"%d oras",d:"un jorn",dd:"%d jorns",M:"un mes",MM:"%d meses",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(e,t){var n=1===e?"r":2===e?"n":3===e?"r":4===e?"t":"è";return"w"!==t&&"W"!==t||(n="a"),e+n},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};e.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(e){return e.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(e,t){return 12===e&&(e=0),"ਰਾਤ"===t?e<4?e:e+12:"ਸਵੇਰ"===t?e:"ਦੁਪਹਿਰ"===t?e>=10?e:e+12:"ਸ਼ਾਮ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"ਰਾਤ":e<10?"ਸਵੇਰ":e<17?"ਦੁਪਹਿਰ":e<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),n="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"),r=[/^sty/i,/^lut/i,/^mar/i,/^kwi/i,/^maj/i,/^cze/i,/^lip/i,/^sie/i,/^wrz/i,/^paź/i,/^lis/i,/^gru/i];function a(e){return e%10<5&&e%10>1&&~~(e/10)%10!=1}function c(e,t,n){var r=e+" ";switch(n){case"ss":return r+(a(e)?"sekundy":"sekund");case"m":return t?"minuta":"minutę";case"mm":return r+(a(e)?"minuty":"minut");case"h":return t?"godzina":"godzinę";case"hh":return r+(a(e)?"godziny":"godzin");case"ww":return r+(a(e)?"tygodnie":"tygodni");case"MM":return r+(a(e)?"miesiące":"miesięcy");case"yy":return r+(a(e)?"lata":"lat")}}e.defineLocale("pl",{months:function(e,r){return e?/D MMMM/.test(r)?n[e.month()]:t[e.month()]:t},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),monthsParse:r,longMonthsParse:r,shortMonthsParse:r,weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:c,m:c,mm:c,h:c,hh:c,d:"1 dzień",dd:"%d dni",w:"tydzień",ww:c,M:"miesiąc",MM:c,y:"rok",yy:c},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("pt",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",w:"uma semana",ww:"%d semanas",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("pt-br",{months:"janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),monthsShort:"jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),weekdays:"domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),weekdaysShort:"dom_seg_ter_qua_qui_sex_sáb".split("_"),weekdaysMin:"do_2ª_3ª_4ª_5ª_6ª_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",invalidDate:"Data inválida"})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r=" ";return(e%100>=20||e>=100&&e%100==0)&&(r=" de "),e+r+{ss:"secunde",mm:"minute",hh:"ore",dd:"zile",ww:"săptămâni",MM:"luni",yy:"ani"}[n]}e.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:t,m:"un minut",mm:t,h:"o oră",hh:t,d:"o zi",dd:t,w:"o săptămână",ww:t,M:"o lună",MM:t,y:"un an",yy:t},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r,a;return"m"===n?t?"минута":"минуту":e+" "+(r=+e,a={ss:t?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:t?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",ww:"неделя_недели_недель",MM:"месяц_месяца_месяцев",yy:"год_года_лет"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}var n=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];e.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:n,longMonthsParse:n,shortMonthsParse:n,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(e){if(e.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:t,m:t,mm:t,h:"час",hh:t,d:"день",dd:t,w:"неделя",ww:t,M:"месяц",MM:t,y:"год",yy:t},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(e){return/^(дня|вечера)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночи":e<12?"утра":e<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":return e+"-й";case"D":return e+"-го";case"w":case"W":return e+"-я";default:return e}},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];e.defineLocale("sd",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(e){return e+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(e){return"ප.ව."===e||"පස් වරු"===e},meridiem:function(e,t,n){return e>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),n="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");function r(e){return e>1&&e<5}function a(e,t,n,a){var c=e+" ";switch(n){case"s":return t||a?"pár sekúnd":"pár sekundami";case"ss":return t||a?c+(r(e)?"sekundy":"sekúnd"):c+"sekundami";case"m":return t?"minúta":a?"minútu":"minútou";case"mm":return t||a?c+(r(e)?"minúty":"minút"):c+"minútami";case"h":return t?"hodina":a?"hodinu":"hodinou";case"hh":return t||a?c+(r(e)?"hodiny":"hodín"):c+"hodinami";case"d":return t||a?"deň":"dňom";case"dd":return t||a?c+(r(e)?"dni":"dní"):c+"dňami";case"M":return t||a?"mesiac":"mesiacom";case"MM":return t||a?c+(r(e)?"mesiace":"mesiacov"):c+"mesiacmi";case"y":return t||a?"rok":"rokom";case"yy":return t||a?c+(r(e)?"roky":"rokov"):c+"rokmi"}}e.defineLocale("sk",{months:t,monthsShort:n,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:a,ss:a,m:a,mm:a,h:a,hh:a,d:a,dd:a,M:a,MM:a,y:a,yy:a},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a=e+" ";switch(n){case"s":return t||r?"nekaj sekund":"nekaj sekundami";case"ss":return a+=1===e?t?"sekundo":"sekundi":2===e?t||r?"sekundi":"sekundah":e<5?t||r?"sekunde":"sekundah":"sekund";case"m":return t?"ena minuta":"eno minuto";case"mm":return a+=1===e?t?"minuta":"minuto":2===e?t||r?"minuti":"minutama":e<5?t||r?"minute":"minutami":t||r?"minut":"minutami";case"h":return t?"ena ura":"eno uro";case"hh":return a+=1===e?t?"ura":"uro":2===e?t||r?"uri":"urama":e<5?t||r?"ure":"urami":t||r?"ur":"urami";case"d":return t||r?"en dan":"enim dnem";case"dd":return a+=1===e?t||r?"dan":"dnem":2===e?t||r?"dni":"dnevoma":t||r?"dni":"dnevi";case"M":return t||r?"en mesec":"enim mesecem";case"MM":return a+=1===e?t||r?"mesec":"mesecem":2===e?t||r?"meseca":"mesecema":e<5?t||r?"mesece":"meseci":t||r?"mesecev":"meseci";case"y":return t||r?"eno leto":"enim letom";case"yy":return a+=1===e?t||r?"leto":"letom":2===e?t||r?"leti":"letoma":e<5?t||r?"leta":"leti":t||r?"let":"leti"}}e.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,t,n){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"dan",dd:t.translate,M:"mesec",MM:t.translate,y:"godinu",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(e,t){return 1===e?t[0]:e>=2&&e<=4?t[1]:t[2]},translate:function(e,n,r){var a=t.words[r];return 1===r.length?n?a[0]:a[1]:e+" "+t.correctGrammaticalCase(e,a)}};e.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D. M. YYYY.",LL:"D. MMMM YYYY.",LLL:"D. MMMM YYYY. H:mm",LLLL:"dddd, D. MMMM YYYY. H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:t.translate,m:t.translate,mm:t.translate,h:t.translate,hh:t.translate,d:"дан",dd:t.translate,M:"месец",MM:t.translate,y:"годину",yy:t.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(e,t,n){return e<11?"ekuseni":e<15?"emini":e<19?"entsambama":"ebusuku"},meridiemHour:function(e,t){return 12===e&&(e=0),"ekuseni"===t?e:"emini"===t?e>=11?e:e+12:"entsambama"===t||"ebusuku"===t?0===e?0:e+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(\:e|\:a)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?":e":1===t||2===t?":a":":e")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"hh:mm A",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"siku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};e.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(e){return e+"வது"},preparse:function(e){return e.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,(function(e){return n[e]}))},postformat:function(e){return e.replace(/\d/g,(function(e){return t[e]}))},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(e,t,n){return e<2?" யாமம்":e<6?" வைகறை":e<10?" காலை":e<14?" நண்பகல்":e<18?" எற்பாடு":e<22?" மாலை":" யாமம்"},meridiemHour:function(e,t){return 12===e&&(e=0),"யாமம்"===t?e<2?e:e+12:"வைகறை"===t||"காலை"===t||"நண்பகல்"===t&&e>=10?e:e+12},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(e,t){return 12===e&&(e=0),"రాత్రి"===t?e<4?e:e+12:"ఉదయం"===t?e:"మధ్యాహ్నం"===t?e>=10?e:e+12:"సాయంత్రం"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"రాత్రి":e<10?"ఉదయం":e<17?"మధ్యాహ్నం":e<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"segundu balun",ss:"segundu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};e.defineLocale("tg",{months:{format:"январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри".split("_"),standalone:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_")},monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Фардо соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(e,t){return 12===e&&(e=0),"шаб"===t?e<4?e:e+12:"субҳ"===t?e:"рӯз"===t?e>=11?e:e+12:"бегоҳ"===t?e+12:void 0},meridiem:function(e,t,n){return e<4?"шаб":e<11?"субҳ":e<16?"рӯз":e<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(e){return e+(t[e]||t[e%10]||t[e>=100?100:null])},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(e){return"หลังเที่ยง"===e},meridiem:function(e,t,n){return e<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",w:"1 สัปดาห์",ww:"%d สัปดาห์",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"'inji",5:"'inji",8:"'inji",70:"'inji",80:"'inji",2:"'nji",7:"'nji",20:"'nji",50:"'nji",3:"'ünji",4:"'ünji",100:"'ünji",6:"'njy",9:"'unjy",10:"'unjy",30:"'unjy",60:"'ynjy",90:"'ynjy"};e.defineLocale("tk",{months:"Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr".split("_"),monthsShort:"Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek".split("_"),weekdays:"Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe".split("_"),weekdaysShort:"Ýek_Duş_Siş_Çar_Pen_Ann_Şen".split("_"),weekdaysMin:"Ýk_Dş_Sş_Çr_Pn_An_Şn".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün sagat] LT",nextDay:"[ertir sagat] LT",nextWeek:"[indiki] dddd [sagat] LT",lastDay:"[düýn] LT",lastWeek:"[geçen] dddd [sagat] LT",sameElse:"L"},relativeTime:{future:"%s soň",past:"%s öň",s:"birnäçe sekunt",m:"bir minut",mm:"%d minut",h:"bir sagat",hh:"%d sagat",d:"bir gün",dd:"%d gün",M:"bir aý",MM:"%d aý",y:"bir ýyl",yy:"%d ýyl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'unjy";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");function n(e,n,r,a){var c=function(e){var n=Math.floor(e%1e3/100),r=Math.floor(e%100/10),a=e%10,c="";return n>0&&(c+=t[n]+"vatlh"),r>0&&(c+=(""!==c?" ":"")+t[r]+"maH"),a>0&&(c+=(""!==c?" ":"")+t[a]),""===c?"pagh":c}(e);switch(r){case"ss":return c+" lup";case"mm":return c+" tup";case"hh":return c+" rep";case"dd":return c+" jaj";case"MM":return c+" jar";case"yy":return c+" DIS"}}e.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"leS":-1!==e.indexOf("jar")?t.slice(0,-3)+"waQ":-1!==e.indexOf("DIS")?t.slice(0,-3)+"nem":t+" pIq"},past:function(e){var t=e;return t=-1!==e.indexOf("jaj")?t.slice(0,-3)+"Hu’":-1!==e.indexOf("jar")?t.slice(0,-3)+"wen":-1!==e.indexOf("DIS")?t.slice(0,-3)+"ben":t+" ret"},s:"puS lup",ss:n,m:"wa’ tup",mm:n,h:"wa’ rep",hh:n,d:"wa’ jaj",dd:n,M:"wa’ jar",MM:n,y:"wa’ DIS",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};e.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),meridiem:function(e,t,n){return e<12?n?"öö":"ÖÖ":n?"ös":"ÖS"},meridiemParse:/öö|ÖÖ|ös|ÖS/,isPM:function(e){return"ös"===e||"ÖS"===e},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",w:"bir hafta",ww:"%d hafta",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(e,n){switch(n){case"d":case"D":case"Do":case"DD":return e;default:if(0===e)return e+"'ıncı";var r=e%10;return e+(t[r]||t[e%100-r]||t[e>=100?100:null])}},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n,r){var a={s:["viensas secunds","'iensas secunds"],ss:[e+" secunds",e+" secunds"],m:["'n míut","'iens míut"],mm:[e+" míuts",e+" míuts"],h:["'n þora","'iensa þora"],hh:[e+" þoras",e+" þoras"],d:["'n ziua","'iensa ziua"],dd:[e+" ziuas",e+" ziuas"],M:["'n mes","'iens mes"],MM:[e+" mesen",e+" mesen"],y:["'n ar","'iens ar"],yy:[e+" ars",e+" ars"]};return r||t?a[n][0]:a[n][1]}e.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(e){return"d'o"===e.toLowerCase()},meridiem:function(e,t,n){return e>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:t,ss:t,m:t,mm:t,h:t,hh:t,d:t,dd:t,M:t,MM:t,y:t,yy:t},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(e,t){return 12===e&&(e=0),"يېرىم كېچە"===t||"سەھەر"===t||"چۈشتىن بۇرۇن"===t?e:"چۈشتىن كېيىن"===t||"كەچ"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"يېرىم كېچە":r<900?"سەھەر":r<1130?"چۈشتىن بۇرۇن":r<1230?"چۈش":r<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"-كۈنى";case"w":case"W":return e+"-ھەپتە";default:return e}},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +function t(e,t,n){var r,a;return"m"===n?t?"хвилина":"хвилину":"h"===n?t?"година":"годину":e+" "+(r=+e,a={ss:t?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:t?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:t?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"}[n].split("_"),r%10==1&&r%100!=11?a[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?a[1]:a[2])}function n(e){return function(){return e+"о"+(11===this.hours()?"б":"")+"] LT"}}e.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:function(e,t){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===e?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):e?n[/(\[[ВвУу]\]) ?dddd/.test(t)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(t)?"genitive":"nominative"][e.day()]:n.nominative},weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:n("[Сьогодні "),nextDay:n("[Завтра "),lastDay:n("[Вчора "),nextWeek:n("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return n("[Минулої] dddd [").call(this);case 1:case 2:case 4:return n("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:t,m:t,mm:t,h:"годину",hh:t,d:"день",dd:t,M:"місяць",MM:t,y:"рік",yy:t},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(e){return/^(дня|вечора)$/.test(e)},meridiem:function(e,t,n){return e<4?"ночі":e<12?"ранку":e<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(e,t){switch(t){case"M":case"d":case"DDD":case"w":case"W":return e+"-й";case"D":return e+"-го";default:return e}},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +var t=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];e.defineLocale("ur",{months:t,monthsShort:t,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(e){return"شام"===e},meridiem:function(e,t,n){return e<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(e){return e.replace(/،/g,",")},postformat:function(e){return e.replace(/,/g,"،")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(e){return/^ch$/i.test(e)},meridiem:function(e,t,n){return e<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần trước lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",w:"một tuần",ww:"%d tuần",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(e){return e},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1==~~(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"下午"===t||"晚上"===t?e+12:e>=11?e:e+12},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:function(e){return e.week()!==this.week()?"[下]dddLT":"[本]dddLT"},lastDay:"[昨天]LT",lastWeek:function(e){return this.week()!==e.week()?"[上]dddLT":"[本]dddLT"},sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"周";default:return e}},relativeTime:{future:"%s后",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",w:"1 周",ww:"%d 周",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1200?"上午":1200===r?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("zh-mo",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"D/M/YYYY",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(1))},function(e,t,n){!function(e){"use strict"; +//! moment.js locale configuration +e.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(e,t){return 12===e&&(e=0),"凌晨"===t||"早上"===t||"上午"===t?e:"中午"===t?e>=11?e:e+12:"下午"===t||"晚上"===t?e+12:void 0},meridiem:function(e,t,n){var r=100*e+t;return r<600?"凌晨":r<900?"早上":r<1130?"上午":r<1230?"中午":r<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(e,t){switch(t){case"d":case"D":case"DDD":return e+"日";case"M":return e+"月";case"w":case"W":return e+"週";default:return e}},relativeTime:{future:"%s後",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})}(n(1))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.useWatchRollout=t.useWatchRollouts=void 0;const r=n(86),a=n(272),c=n(4);t.useWatchRollouts=e=>{const t=c.useCallback((e,t)=>{var n,r;return e.objectMeta.name===(null===(r=null===(n=t.rolloutInfo)||void 0===n?void 0:n.objectMeta)||void 0===r?void 0:r.name)},[]),n=c.useCallback(e=>e.rolloutInfo,[]),i=r.RolloutServiceApiFetchParamCreator().watchRollouts().url;return a.useWatchList(i,t,n,e)};t.useWatchRollout=(e,t,n,c)=>{e=e||"";const i=r.RolloutServiceApiFetchParamCreator().watchRollout(e).url,o=a.useWatch(i,t,n);return c&&o.objectMeta&&c(o),o}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StatusIcon=t.RolloutStatus=void 0;const r=n(4),a=n(45),c=n(40),i=n(67);n(273),function(e){e.Progressing="Progressing",e.Degraded="Degraded",e.Paused="Paused",e.Healthy="Healthy"}(t.RolloutStatus||(t.RolloutStatus={}));t.StatusIcon=e=>{let t,n,o=!1;const{status:s}=e;switch(s){case"Progressing":t=c.faCircleNotch,n="progressing",o=!0;break;case"Healthy":t=i.faCheckCircle,n="healthy";break;case"Paused":t=i.faPauseCircle,n="paused";break;case"Degraded":t=i.faTimesCircle,n="degraded";break;default:t=i.faQuestionCircle,n="unknown"}return r.createElement(a.FontAwesomeIcon,{icon:t,className:"status-icon--"+n,spin:o})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RolloutActions=t.RolloutActionButton=t.RolloutAction=void 0;const r=n(67),a=n(40),c=n(4),i=n(89),o=n(88);var s;!function(e){e.Restart="Restart",e.Resume="Resume",e.Retry="Retry",e.Abort="Abort",e.PromoteFull="PromoteFull"}(s=t.RolloutAction||(t.RolloutAction={}));t.RolloutActionButton=e=>{const t=c.useContext(i.RolloutAPIContext),n=new Map([[s.Restart,{label:"RESTART",icon:a.faSync,action:t.restartRollout}],[s.Resume,{label:"RESUME",icon:r.faPlayCircle,action:()=>null}],[s.Retry,{label:"RETRY",icon:a.faRedoAlt,action:()=>null}],[s.Abort,{label:"ABORT",icon:a.faExclamationCircle,action:t.abortRollout}],[s.PromoteFull,{label:"PROMOTE-FULL",icon:a.faArrowCircleUp,action:t.promoteRollout}]]).get(e.action);return c.createElement(o.ActionButton,Object.assign({},n,{action:()=>{n.action(e.name),e.callback&&e.callback()},indicateLoading:e.indicateLoading}))};t.RolloutActions=e=>c.createElement("div",{style:{display:"flex"}},Object.values(s).map(n=>c.createElement(t.RolloutActionButton,{key:n,action:n,name:e.name,indicateLoading:!0})))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PodWidget=t.ReplicaSet=t.PodIcon=void 0;const r=n(67),a=n(40),c=n(45),i=n(4),o=n(65),s=n(66),l=n(281),u=n(32),f=n(284);n(287);t.PodIcon=e=>{const{status:t}=e;let n,o,s=!1;switch(t.startsWith("Init:")&&(n=a.faCircleNotch,s=!0),(t.startsWith("Signal:")||t.startsWith("ExitCode:"))&&(n=a.faTimes),(t.endsWith("Error")||t.startsWith("Err"))&&(n=a.faExclamationTriangle),t){case"Pending":case"Terminating":case"ContainerCreating":n=a.faCircleNotch,o="pending",s=!0;break;case"Running":case"Completed":n=a.faCheck,o="success";break;case"Failed":case"InvalidImageName":case"CrashLoopBackOff":o="failure",n=a.faTimes;break;case"ImagePullBackOff":case"RegistryUnavailable":o="warning",n=a.faExclamationTriangle;break;default:o="unknown",n=r.faQuestionCircle}return i.createElement(u.ThemeDiv,{className:"pod-icon pod-icon--"+o},i.createElement(c.FontAwesomeIcon,{icon:n,spin:s}))};t.ReplicaSet=e=>{const n=e.rs.objectMeta.name,r=o.ParseTagsFromReplicaSet(e.rs);return i.createElement(u.ThemeDiv,{className:"pods"},n&&i.createElement(u.ThemeDiv,{className:"pods__header"},n,i.createElement("div",{className:"pods__header__tags"},r.map(e=>i.createElement(s.InfoItem,{key:e,icon:o.IconForTag(e),content:e})))),i.createElement(u.ThemeDiv,{className:"pods__container"},(e.rs.pods||[]).map((e,n)=>i.createElement(t.PodWidget,{key:e.objectMeta.uid,pod:e}))))};t.PodWidget=e=>{var n;return i.createElement(l.Menu,{items:[{label:"Copy Name",action:()=>{var t;return navigator.clipboard.writeText(null===(t=e.pod.objectMeta)||void 0===t?void 0:t.name)},icon:a.faClipboard}]},i.createElement(f.Tooltip,{content:i.createElement("div",null,i.createElement("div",null,"Status: ",e.pod.status),i.createElement("div",null,null===(n=e.pod.objectMeta)||void 0===n?void 0:n.name))},i.createElement(t.PodIcon,{status:e.pod.status})))}},function(e,t,n){"use strict";var r=n(92),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},c={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},o={};function s(e){return r.isMemo(e)?i:o[e.$$typeof]||a}o[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o[r.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=h(n);a&&a!==m&&e(t,a,r)}var i=u(n);f&&(i=i.concat(f(n)));for(var o=s(t),p=s(n),v=0;v