rename OverrideAppVersion to OverrideMetadata

Signed-off-by: Kevin Labesse <kevin@labesse.me>
pull/5492/head
Kevin Labesse 7 years ago
parent de6b33782c
commit 7e6a1a2cb8

@ -91,6 +91,6 @@ message Metadata {
// KubeVersion is a SemVer constraint specifying the version of Kubernetes required. // KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
string kubeVersion = 17; string kubeVersion = 17;
// Whether or not the app version can be override by flag --app-version (during install or update) // During chart install or update, this field determines whether or not the metadata can be overridden by flags like --app-version
bool overrideAppVersion = 18; bool overrideMetadata = 18;
} }

@ -300,8 +300,8 @@ func (i *installCmd) run() error {
} }
if i.appVersion != "" { if i.appVersion != "" {
if !chartRequested.Metadata.OverrideAppVersion { if !chartRequested.Metadata.OverrideMetadata {
return fmt.Errorf("override app version is not allowed on this chart") return fmt.Errorf("The chart maintainer has disallowed overriding the chart's package metadata. Please contact the maintainer to set `overrideChartMeta` in their Chart.yaml to `true`.")
} }
chartRequested.Metadata.AppVersion = i.appVersion chartRequested.Metadata.AppVersion = i.appVersion

@ -4,4 +4,4 @@ name: alpine
sources: sources:
- https://github.com/helm/helm - https://github.com/helm/helm
version: 0.1.0 version: 0.1.0
overrideAppVersion: true overrideMetadata: true

@ -265,8 +265,8 @@ func (u *upgradeCmd) run() error {
} }
if u.appVersion != "" { if u.appVersion != "" {
if !chart.Metadata.OverrideAppVersion { if !chart.Metadata.OverrideMetadata {
return fmt.Errorf("override app version is not allowed on this chart") return fmt.Errorf("The chart maintainer has disallowed overriding the chart's package metadata. Please contact the maintainer to set `overrideChartMeta` in their Chart.yaml to `true`.")
} }
chart.Metadata.AppVersion = u.appVersion chart.Metadata.AppVersion = u.appVersion

@ -95,10 +95,10 @@ func TestUpgradeCmd(t *testing.T) {
// update chart version // update chart version
cfile = &chart.Metadata{ cfile = &chart.Metadata{
Name: "testUpgradeChartAppVersion", Name: "testUpgradeChartAppVersion",
Description: "A Helm chart for Kubernetes", Description: "A Helm chart for Kubernetes",
Version: "0.1.0", Version: "0.1.0",
OverrideAppVersion: true, OverrideMetadata: true,
} }
chartPath, err = chartutil.Create(cfile, tmpChart2) chartPath, err = chartutil.Create(cfile, tmpChart2)

@ -12,6 +12,12 @@ var _ = proto.Marshal
var _ = fmt.Errorf var _ = fmt.Errorf
var _ = math.Inf 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.ProtoPackageIsVersion2 // please upgrade the proto package
type Metadata_Engine int32 type Metadata_Engine int32
const ( const (
@ -31,22 +37,46 @@ var Metadata_Engine_value = map[string]int32{
func (x Metadata_Engine) String() string { func (x Metadata_Engine) String() string {
return proto.EnumName(Metadata_Engine_name, int32(x)) return proto.EnumName(Metadata_Engine_name, int32(x))
} }
func (Metadata_Engine) EnumDescriptor() ([]byte, []int) { return fileDescriptor2, []int{1, 0} } func (Metadata_Engine) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_metadata_16a60a1a41d0ad3d, []int{1, 0}
}
// Maintainer describes a Chart maintainer. // Maintainer describes a Chart maintainer.
type Maintainer struct { type Maintainer struct {
// Name is a user name or organization name // Name is a user name or organization name
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Email is an optional email address to contact the named maintainer // Email is an optional email address to contact the named maintainer
Email string `protobuf:"bytes,2,opt,name=email" json:"email,omitempty"` Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
// Url is an optional URL to an address for the named maintainer // Url is an optional URL to an address for the named maintainer
Url string `protobuf:"bytes,3,opt,name=url" json:"url,omitempty"` Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Maintainer) Reset() { *m = Maintainer{} }
func (m *Maintainer) String() string { return proto.CompactTextString(m) }
func (*Maintainer) ProtoMessage() {}
func (*Maintainer) Descriptor() ([]byte, []int) {
return fileDescriptor_metadata_16a60a1a41d0ad3d, []int{0}
}
func (m *Maintainer) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Maintainer.Unmarshal(m, b)
}
func (m *Maintainer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Maintainer.Marshal(b, m, deterministic)
}
func (dst *Maintainer) XXX_Merge(src proto.Message) {
xxx_messageInfo_Maintainer.Merge(dst, src)
}
func (m *Maintainer) XXX_Size() int {
return xxx_messageInfo_Maintainer.Size(m)
}
func (m *Maintainer) XXX_DiscardUnknown() {
xxx_messageInfo_Maintainer.DiscardUnknown(m)
} }
func (m *Maintainer) Reset() { *m = Maintainer{} } var xxx_messageInfo_Maintainer proto.InternalMessageInfo
func (m *Maintainer) String() string { return proto.CompactTextString(m) }
func (*Maintainer) ProtoMessage() {}
func (*Maintainer) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
func (m *Maintainer) GetName() string { func (m *Maintainer) GetName() string {
if m != nil { if m != nil {
@ -74,49 +104,71 @@ func (m *Maintainer) GetUrl() string {
// Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file // Spec: https://k8s.io/helm/blob/master/docs/design/chart_format.md#the-chart-file
type Metadata struct { type Metadata struct {
// The name of the chart // The name of the chart
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The URL to a relevant project page, git repo, or contact person // The URL to a relevant project page, git repo, or contact person
Home string `protobuf:"bytes,2,opt,name=home" json:"home,omitempty"` Home string `protobuf:"bytes,2,opt,name=home,proto3" json:"home,omitempty"`
// Source is the URL to the source code of this chart // Source is the URL to the source code of this chart
Sources []string `protobuf:"bytes,3,rep,name=sources" json:"sources,omitempty"` Sources []string `protobuf:"bytes,3,rep,name=sources,proto3" json:"sources,omitempty"`
// A SemVer 2 conformant version string of the chart // A SemVer 2 conformant version string of the chart
Version string `protobuf:"bytes,4,opt,name=version" json:"version,omitempty"` Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
// A one-sentence description of the chart // A one-sentence description of the chart
Description string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"` Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"`
// A list of string keywords // A list of string keywords
Keywords []string `protobuf:"bytes,6,rep,name=keywords" json:"keywords,omitempty"` Keywords []string `protobuf:"bytes,6,rep,name=keywords,proto3" json:"keywords,omitempty"`
// A list of name and URL/email address combinations for the maintainer(s) // A list of name and URL/email address combinations for the maintainer(s)
Maintainers []*Maintainer `protobuf:"bytes,7,rep,name=maintainers" json:"maintainers,omitempty"` Maintainers []*Maintainer `protobuf:"bytes,7,rep,name=maintainers,proto3" json:"maintainers,omitempty"`
// The name of the template engine to use. Defaults to 'gotpl'. // The name of the template engine to use. Defaults to 'gotpl'.
Engine string `protobuf:"bytes,8,opt,name=engine" json:"engine,omitempty"` Engine string `protobuf:"bytes,8,opt,name=engine,proto3" json:"engine,omitempty"`
// The URL to an icon file. // The URL to an icon file.
Icon string `protobuf:"bytes,9,opt,name=icon" json:"icon,omitempty"` Icon string `protobuf:"bytes,9,opt,name=icon,proto3" json:"icon,omitempty"`
// The API Version of this chart. // The API Version of this chart.
ApiVersion string `protobuf:"bytes,10,opt,name=apiVersion" json:"apiVersion,omitempty"` ApiVersion string `protobuf:"bytes,10,opt,name=apiVersion,proto3" json:"apiVersion,omitempty"`
// The condition to check to enable chart // The condition to check to enable chart
Condition string `protobuf:"bytes,11,opt,name=condition" json:"condition,omitempty"` Condition string `protobuf:"bytes,11,opt,name=condition,proto3" json:"condition,omitempty"`
// The tags to check to enable chart // The tags to check to enable chart
Tags string `protobuf:"bytes,12,opt,name=tags" json:"tags,omitempty"` Tags string `protobuf:"bytes,12,opt,name=tags,proto3" json:"tags,omitempty"`
// The version of the application enclosed inside of this chart. // The version of the application enclosed inside of this chart.
AppVersion string `protobuf:"bytes,13,opt,name=appVersion" json:"appVersion,omitempty"` AppVersion string `protobuf:"bytes,13,opt,name=appVersion,proto3" json:"appVersion,omitempty"`
// Whether or not this chart is deprecated // Whether or not this chart is deprecated
Deprecated bool `protobuf:"varint,14,opt,name=deprecated" json:"deprecated,omitempty"` Deprecated bool `protobuf:"varint,14,opt,name=deprecated,proto3" json:"deprecated,omitempty"`
// TillerVersion is a SemVer constraints on what version of Tiller is required. // TillerVersion is a SemVer constraints on what version of Tiller is required.
// See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons // See SemVer ranges here: https://github.com/Masterminds/semver#basic-comparisons
TillerVersion string `protobuf:"bytes,15,opt,name=tillerVersion" json:"tillerVersion,omitempty"` TillerVersion string `protobuf:"bytes,15,opt,name=tillerVersion,proto3" json:"tillerVersion,omitempty"`
// Annotations are additional mappings uninterpreted by Tiller, // Annotations are additional mappings uninterpreted by Tiller,
// made available for inspection by other applications. // made available for inspection by other applications.
Annotations map[string]string `protobuf:"bytes,16,rep,name=annotations" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Annotations map[string]string `protobuf:"bytes,16,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// KubeVersion is a SemVer constraint specifying the version of Kubernetes required. // KubeVersion is a SemVer constraint specifying the version of Kubernetes required.
KubeVersion string `protobuf:"bytes,17,opt,name=kubeVersion" json:"kubeVersion,omitempty"` KubeVersion string `protobuf:"bytes,17,opt,name=kubeVersion,proto3" json:"kubeVersion,omitempty"`
// Whether or not the app version can be override by flag --app-version (during install or update) // During chart install or update, this field determines whether or not the metadata can be overridden by flags like --app-version
OverrideAppVersion bool `protobuf:"varint,18,opt,name=overrideAppVersion" json:"overrideAppVersion,omitempty"` OverrideMetadata bool `protobuf:"varint,18,opt,name=overrideMetadata,proto3" json:"overrideMetadata,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Metadata) Reset() { *m = Metadata{} }
func (m *Metadata) String() string { return proto.CompactTextString(m) }
func (*Metadata) ProtoMessage() {}
func (*Metadata) Descriptor() ([]byte, []int) {
return fileDescriptor_metadata_16a60a1a41d0ad3d, []int{1}
}
func (m *Metadata) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Metadata.Unmarshal(m, b)
}
func (m *Metadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Metadata.Marshal(b, m, deterministic)
}
func (dst *Metadata) XXX_Merge(src proto.Message) {
xxx_messageInfo_Metadata.Merge(dst, src)
}
func (m *Metadata) XXX_Size() int {
return xxx_messageInfo_Metadata.Size(m)
}
func (m *Metadata) XXX_DiscardUnknown() {
xxx_messageInfo_Metadata.DiscardUnknown(m)
} }
func (m *Metadata) Reset() { *m = Metadata{} } var xxx_messageInfo_Metadata proto.InternalMessageInfo
func (m *Metadata) String() string { return proto.CompactTextString(m) }
func (*Metadata) ProtoMessage() {}
func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} }
func (m *Metadata) GetName() string { func (m *Metadata) GetName() string {
if m != nil { if m != nil {
@ -237,9 +289,9 @@ func (m *Metadata) GetKubeVersion() string {
return "" return ""
} }
func (m *Metadata) GetOverrideAppVersion() bool { func (m *Metadata) GetOverrideMetadata() bool {
if m != nil { if m != nil {
return m.OverrideAppVersion return m.OverrideMetadata
} }
return false return false
} }
@ -247,40 +299,41 @@ func (m *Metadata) GetOverrideAppVersion() bool {
func init() { func init() {
proto.RegisterType((*Maintainer)(nil), "hapi.chart.Maintainer") proto.RegisterType((*Maintainer)(nil), "hapi.chart.Maintainer")
proto.RegisterType((*Metadata)(nil), "hapi.chart.Metadata") proto.RegisterType((*Metadata)(nil), "hapi.chart.Metadata")
proto.RegisterMapType((map[string]string)(nil), "hapi.chart.Metadata.AnnotationsEntry")
proto.RegisterEnum("hapi.chart.Metadata_Engine", Metadata_Engine_name, Metadata_Engine_value) proto.RegisterEnum("hapi.chart.Metadata_Engine", Metadata_Engine_name, Metadata_Engine_value)
} }
func init() { proto.RegisterFile("hapi/chart/metadata.proto", fileDescriptor2) } func init() { proto.RegisterFile("hapi/chart/metadata.proto", fileDescriptor_metadata_16a60a1a41d0ad3d) }
var fileDescriptor2 = []byte{ var fileDescriptor_metadata_16a60a1a41d0ad3d = []byte{
// 451 bytes of a gzipped FileDescriptorProto // 452 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x5d, 0x6b, 0xd4, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x53, 0x5d, 0x8b, 0xd3, 0x40,
0x14, 0x35, 0xcd, 0x66, 0x77, 0x73, 0x63, 0x35, 0x5e, 0xa4, 0x8c, 0x45, 0x24, 0x2c, 0x0a, 0xfb, 0x14, 0x35, 0x9b, 0xa6, 0x6d, 0x6e, 0x5c, 0x8d, 0x17, 0x59, 0xc6, 0x45, 0x24, 0x14, 0x85, 0xe2,
0x94, 0x82, 0xbe, 0x14, 0x1f, 0x84, 0x0a, 0xa5, 0x82, 0x76, 0x2b, 0xc1, 0x0f, 0xf0, 0x6d, 0x9a, 0x43, 0x17, 0xf4, 0x65, 0xf1, 0x41, 0x50, 0x58, 0x56, 0xd0, 0xed, 0x4a, 0xf0, 0x03, 0x7c, 0x9b,
0x5c, 0xba, 0xc3, 0x26, 0x33, 0x61, 0x32, 0xbb, 0xb2, 0xbf, 0xce, 0xbf, 0x26, 0x33, 0x49, 0x9a, 0x4d, 0x2e, 0xdb, 0xa1, 0xc9, 0x4c, 0x98, 0x4c, 0x2b, 0xfd, 0x6d, 0xfe, 0x39, 0x99, 0x49, 0x66,
0xb4, 0xec, 0xdb, 0x3d, 0xe7, 0x64, 0xce, 0x9d, 0x73, 0xe7, 0x06, 0x5e, 0xad, 0x79, 0x2d, 0xce, 0x9b, 0xea, 0xbe, 0xdd, 0x73, 0x4e, 0xe6, 0xdc, 0x39, 0x77, 0x6e, 0xe0, 0xd9, 0x8a, 0x37, 0xe2,
0xf2, 0x35, 0xd7, 0xe6, 0xac, 0x22, 0xc3, 0x0b, 0x6e, 0x78, 0x5a, 0x6b, 0x65, 0x14, 0x82, 0x95, 0xac, 0x58, 0x71, 0x6d, 0xce, 0x6a, 0x32, 0xbc, 0xe4, 0x86, 0x2f, 0x1a, 0xad, 0x8c, 0x42, 0xb0,
0x52, 0x27, 0x2d, 0xbe, 0x00, 0x5c, 0x73, 0x21, 0x0d, 0x17, 0x92, 0x34, 0x22, 0x4c, 0x24, 0xaf, 0xd2, 0xc2, 0x49, 0xb3, 0x4f, 0x00, 0x57, 0x5c, 0x48, 0xc3, 0x85, 0x24, 0x8d, 0x08, 0x23, 0xc9,
0x88, 0x79, 0x89, 0xb7, 0x0c, 0x33, 0x57, 0xe3, 0x4b, 0x08, 0xa8, 0xe2, 0xa2, 0x64, 0x47, 0x8e, 0x6b, 0x62, 0x41, 0x16, 0xcc, 0xe3, 0xdc, 0xd5, 0xf8, 0x14, 0x22, 0xaa, 0xb9, 0xa8, 0xd8, 0x91,
0x6c, 0x01, 0xc6, 0xe0, 0x6f, 0x75, 0xc9, 0x7c, 0xc7, 0xd9, 0x72, 0xf1, 0x2f, 0x80, 0xf9, 0x75, 0x23, 0x3b, 0x80, 0x29, 0x84, 0x1b, 0x5d, 0xb1, 0xd0, 0x71, 0xb6, 0x9c, 0xfd, 0x89, 0x60, 0x7a,
0xd7, 0xe8, 0xa0, 0x11, 0xc2, 0x64, 0xad, 0x2a, 0xea, 0x7c, 0x5c, 0x8d, 0x0c, 0x66, 0x8d, 0xda, 0xd5, 0x37, 0xba, 0xd7, 0x08, 0x61, 0xb4, 0x52, 0x35, 0xf5, 0x3e, 0xae, 0x46, 0x06, 0x93, 0x56,
0xea, 0x9c, 0x1a, 0xe6, 0x27, 0xfe, 0x32, 0xcc, 0x7a, 0x68, 0x95, 0x1d, 0xe9, 0x46, 0x28, 0xc9, 0x6d, 0x74, 0x41, 0x2d, 0x0b, 0xb3, 0x70, 0x1e, 0xe7, 0x1e, 0x5a, 0x65, 0x4b, 0xba, 0x15, 0x4a,
0x26, 0xee, 0x40, 0x0f, 0x31, 0x81, 0xa8, 0xa0, 0x26, 0xd7, 0xa2, 0x36, 0x56, 0x0d, 0x9c, 0x3a, 0xb2, 0x91, 0x3b, 0xe0, 0x21, 0x66, 0x90, 0x94, 0xd4, 0x16, 0x5a, 0x34, 0xc6, 0xaa, 0x91, 0x53,
0xa6, 0xf0, 0x14, 0xe6, 0x1b, 0xda, 0xff, 0x55, 0xba, 0x68, 0xd8, 0xd4, 0xd9, 0xde, 0x63, 0x3c, 0x87, 0x14, 0x9e, 0xc2, 0x74, 0x4d, 0xbb, 0xdf, 0x4a, 0x97, 0x2d, 0x1b, 0x3b, 0xdb, 0x3b, 0x8c,
0x87, 0xa8, 0xba, 0x0f, 0xdc, 0xb0, 0x59, 0xe2, 0x2f, 0xa3, 0xf7, 0x27, 0xe9, 0x30, 0x92, 0x74, 0xe7, 0x90, 0xd4, 0x77, 0x81, 0x5b, 0x36, 0xc9, 0xc2, 0x79, 0xf2, 0xe6, 0x64, 0xb1, 0x1f, 0xc9,
0x98, 0x47, 0x36, 0xfe, 0x14, 0x4f, 0x60, 0x4a, 0xf2, 0x4e, 0x48, 0x62, 0x73, 0xd7, 0xb2, 0x43, 0x62, 0x3f, 0x8f, 0x7c, 0xf8, 0x29, 0x9e, 0xc0, 0x98, 0xe4, 0xad, 0x90, 0xc4, 0xa6, 0xae, 0x65,
0x36, 0x97, 0xc8, 0x95, 0x64, 0x61, 0x9b, 0xcb, 0xd6, 0xf8, 0x06, 0x80, 0xd7, 0xe2, 0x57, 0x17, 0x8f, 0x6c, 0x2e, 0x51, 0x28, 0xc9, 0xe2, 0x2e, 0x97, 0xad, 0xf1, 0x05, 0x00, 0x6f, 0xc4, 0x8f,
0x00, 0x9c, 0x32, 0x62, 0xf0, 0x35, 0x84, 0xb9, 0x92, 0x85, 0x70, 0x09, 0x22, 0x27, 0x0f, 0x84, 0x3e, 0x00, 0x38, 0x65, 0xc0, 0xe0, 0x73, 0x88, 0x0b, 0x25, 0x4b, 0xe1, 0x12, 0x24, 0x4e, 0xde,
0x75, 0x34, 0xfc, 0xae, 0x61, 0x4f, 0x5b, 0x47, 0x5b, 0xb7, 0x8e, 0x75, 0xef, 0x78, 0xdc, 0x3b, 0x13, 0xd6, 0xd1, 0xf0, 0xdb, 0x96, 0x3d, 0xec, 0x1c, 0x6d, 0xdd, 0x39, 0x36, 0xde, 0xf1, 0xd8,
0xf6, 0x8c, 0xd5, 0x0b, 0xaa, 0x35, 0xe5, 0xdc, 0x50, 0xc1, 0x9e, 0x25, 0xde, 0x72, 0x9e, 0x8d, 0x3b, 0x7a, 0xc6, 0xea, 0x25, 0x35, 0x9a, 0x0a, 0x6e, 0xa8, 0x64, 0x8f, 0xb2, 0x60, 0x3e, 0xcd,
0x18, 0x7c, 0x0b, 0xc7, 0x46, 0x94, 0x25, 0xe9, 0xde, 0xe2, 0xb9, 0xb3, 0x78, 0x48, 0xe2, 0x15, 0x07, 0x0c, 0xbe, 0x84, 0x63, 0x23, 0xaa, 0x8a, 0xb4, 0xb7, 0x78, 0xec, 0x2c, 0x0e, 0x49, 0xbc,
0x44, 0x5c, 0x4a, 0x65, 0xb8, 0xbd, 0x47, 0xc3, 0x62, 0x37, 0x9d, 0x77, 0x0f, 0xa6, 0xd3, 0xef, 0x84, 0x84, 0x4b, 0xa9, 0x0c, 0xb7, 0xf7, 0x68, 0x59, 0xea, 0xa6, 0xf3, 0xea, 0x60, 0x3a, 0x7e,
0xd2, 0xc5, 0xf0, 0xdd, 0xa5, 0x34, 0x7a, 0x9f, 0x8d, 0x4f, 0xda, 0x47, 0xda, 0x6c, 0x6f, 0xa9, 0x97, 0x3e, 0xec, 0xbf, 0xbb, 0x90, 0x46, 0xef, 0xf2, 0xe1, 0x49, 0xfb, 0x48, 0xeb, 0xcd, 0x0d,
0x6f, 0xf6, 0xa2, 0x7d, 0xa4, 0x11, 0x85, 0x29, 0xa0, 0xda, 0x91, 0xd6, 0xa2, 0xa0, 0x8b, 0x21, 0xf9, 0x66, 0x4f, 0xba, 0x47, 0x1a, 0x50, 0xf8, 0x1a, 0x52, 0xb5, 0x25, 0xad, 0x45, 0x49, 0xde,
0x18, 0xba, 0x8b, 0x1f, 0x50, 0x4e, 0x3f, 0x41, 0xfc, 0xb8, 0xa5, 0xdd, 0xc2, 0x0d, 0xed, 0xbb, 0x93, 0xa1, 0xbb, 0xf6, 0x7f, 0xfc, 0xe9, 0x7b, 0x48, 0xff, 0x6d, 0x67, 0x37, 0x70, 0x4d, 0xbb,
0x2d, 0xb3, 0xa5, 0xdd, 0xd6, 0x1d, 0x2f, 0xb7, 0xfd, 0x96, 0xb5, 0xe0, 0xe3, 0xd1, 0xb9, 0xb7, 0x7e, 0xc3, 0x6c, 0x69, 0x37, 0x75, 0xcb, 0xab, 0x8d, 0xdf, 0xb0, 0x0e, 0xbc, 0x3b, 0x3a, 0x0f,
0x48, 0x60, 0x7a, 0xd9, 0x3e, 0x58, 0x04, 0xb3, 0x9f, 0xab, 0xaf, 0xab, 0x9b, 0xdf, 0xab, 0xf8, 0x66, 0x19, 0x8c, 0x2f, 0xba, 0xc7, 0x4a, 0x60, 0xf2, 0x7d, 0xf9, 0x79, 0x79, 0xfd, 0x73, 0x99,
0x09, 0x86, 0x10, 0x5c, 0xdd, 0xfc, 0xf8, 0xfe, 0x2d, 0xf6, 0x3e, 0xcf, 0xfe, 0x04, 0x2e, 0xe3, 0x3e, 0xc0, 0x18, 0xa2, 0xcb, 0xeb, 0x6f, 0x5f, 0xbf, 0xa4, 0xc1, 0xc7, 0xc9, 0xaf, 0xc8, 0xe5,
0xed, 0xd4, 0xfd, 0x27, 0x1f, 0xfe, 0x07, 0x00, 0x00, 0xff, 0xff, 0x72, 0xe2, 0x55, 0x08, 0x44, 0xbb, 0x19, 0xbb, 0x7f, 0xe4, 0xed, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2c, 0xa1, 0x61, 0x2a,
0x03, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00,
} }

Loading…
Cancel
Save