pulp_container_client 2.15.5 → 2.15.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -5
  3. data/docs/ContainerContainerDistribution.md +8 -8
  4. data/docs/ContainerContainerDistributionResponse.md +8 -8
  5. data/docs/ContainerContainerPushRepository.md +5 -5
  6. data/docs/ContainerContainerPushRepositoryResponse.md +12 -12
  7. data/docs/ContainerContainerRemoteResponseHiddenFields.md +2 -2
  8. data/docs/ContentBlobsApi.md +1 -1
  9. data/docs/ContentManifestsApi.md +1 -1
  10. data/docs/ContentSignaturesApi.md +1 -1
  11. data/docs/ContentTagsApi.md +1 -1
  12. data/docs/DistributionsContainerApi.md +1 -1
  13. data/docs/PatchedcontainerContainerDistribution.md +8 -8
  14. data/docs/PatchedcontainerContainerPushRepository.md +5 -5
  15. data/docs/PulpContainerNamespacesApi.md +1 -1
  16. data/docs/RemotesContainerApi.md +1 -1
  17. data/docs/RepositoriesContainerApi.md +1 -1
  18. data/docs/RepositoriesContainerPushApi.md +1 -1
  19. data/docs/RepositoriesContainerPushVersionsApi.md +1 -1
  20. data/docs/RepositoriesContainerVersionsApi.md +1 -1
  21. data/docs/TokenApi.md +1 -1
  22. data/lib/pulp_container_client/configuration.rb +2 -2
  23. data/lib/pulp_container_client/models/container_container_distribution.rb +57 -57
  24. data/lib/pulp_container_client/models/container_container_distribution_response.rb +40 -40
  25. data/lib/pulp_container_client/models/container_container_push_repository.rb +38 -38
  26. data/lib/pulp_container_client/models/container_container_push_repository_response.rb +49 -49
  27. data/lib/pulp_container_client/models/container_container_remote_response_hidden_fields.rb +10 -0
  28. data/lib/pulp_container_client/models/patchedcontainer_container_distribution.rb +48 -48
  29. data/lib/pulp_container_client/models/patchedcontainer_container_push_repository.rb +38 -38
  30. data/lib/pulp_container_client/version.rb +1 -1
  31. data/spec/configuration_spec.rb +3 -3
  32. data/spec/models/container_container_distribution_response_spec.rb +8 -8
  33. data/spec/models/container_container_distribution_spec.rb +6 -6
  34. data/spec/models/container_container_push_repository_response_spec.rb +9 -9
  35. data/spec/models/container_container_push_repository_spec.rb +3 -3
  36. data/spec/models/patchedcontainer_container_distribution_spec.rb +6 -6
  37. data/spec/models/patchedcontainer_container_push_repository_spec.rb +3 -3
  38. metadata +68 -68
@@ -15,11 +15,8 @@ require 'date'
15
15
  module PulpContainerClient
16
16
  # A serializer for ContainerDistribution.
17
17
  class ContainerContainerDistributionResponse
18
- # Whether this distribution should be shown in the content app.
19
- attr_accessor :hidden
20
-
21
- # The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")
22
- attr_accessor :base_path
18
+ # A unique name. Ex, `rawhide` and `stable`.
19
+ attr_accessor :name
23
20
 
24
21
  attr_accessor :pulp_href
25
22
 
@@ -29,13 +26,16 @@ module PulpContainerClient
29
26
  # An optional content-guard. If none is specified, a default one will be used.
30
27
  attr_accessor :content_guard
31
28
 
32
- attr_accessor :pulp_labels
29
+ # Whether this distribution should be shown in the content app.
30
+ attr_accessor :hidden
33
31
 
34
32
  # The latest RepositoryVersion for this Repository will be served.
35
33
  attr_accessor :repository
36
34
 
37
- # A unique name. Ex, `rawhide` and `stable`.
38
- attr_accessor :name
35
+ attr_accessor :pulp_labels
36
+
37
+ # The base (relative) path component of the published url. Avoid paths that overlap with other distribution base paths (e.g. \"foo\" and \"foo/bar\")
38
+ attr_accessor :base_path
39
39
 
40
40
  # RepositoryVersion to be served
41
41
  attr_accessor :repository_version
@@ -55,14 +55,14 @@ module PulpContainerClient
55
55
  # Attribute mapping from ruby-style variable name to JSON key.
56
56
  def self.attribute_map
57
57
  {
58
- :'hidden' => :'hidden',
59
- :'base_path' => :'base_path',
58
+ :'name' => :'name',
60
59
  :'pulp_href' => :'pulp_href',
61
60
  :'pulp_created' => :'pulp_created',
62
61
  :'content_guard' => :'content_guard',
63
- :'pulp_labels' => :'pulp_labels',
62
+ :'hidden' => :'hidden',
64
63
  :'repository' => :'repository',
65
- :'name' => :'name',
64
+ :'pulp_labels' => :'pulp_labels',
65
+ :'base_path' => :'base_path',
66
66
  :'repository_version' => :'repository_version',
67
67
  :'registry_path' => :'registry_path',
68
68
  :'namespace' => :'namespace',
@@ -74,14 +74,14 @@ module PulpContainerClient
74
74
  # Attribute type mapping.
75
75
  def self.openapi_types
76
76
  {
77
- :'hidden' => :'Boolean',
78
- :'base_path' => :'String',
77
+ :'name' => :'String',
79
78
  :'pulp_href' => :'String',
80
79
  :'pulp_created' => :'DateTime',
81
80
  :'content_guard' => :'String',
82
- :'pulp_labels' => :'Hash<String, String>',
81
+ :'hidden' => :'Boolean',
83
82
  :'repository' => :'String',
84
- :'name' => :'String',
83
+ :'pulp_labels' => :'Hash<String, String>',
84
+ :'base_path' => :'String',
85
85
  :'repository_version' => :'String',
86
86
  :'registry_path' => :'String',
87
87
  :'namespace' => :'String',
@@ -114,14 +114,8 @@ module PulpContainerClient
114
114
  h[k.to_sym] = v
115
115
  }
116
116
 
117
- if attributes.key?(:'hidden')
118
- self.hidden = attributes[:'hidden']
119
- else
120
- self.hidden = false
121
- end
122
-
123
- if attributes.key?(:'base_path')
124
- self.base_path = attributes[:'base_path']
117
+ if attributes.key?(:'name')
118
+ self.name = attributes[:'name']
125
119
  end
126
120
 
127
121
  if attributes.key?(:'pulp_href')
@@ -136,18 +130,24 @@ module PulpContainerClient
136
130
  self.content_guard = attributes[:'content_guard']
137
131
  end
138
132
 
139
- if attributes.key?(:'pulp_labels')
140
- if (value = attributes[:'pulp_labels']).is_a?(Hash)
141
- self.pulp_labels = value
142
- end
133
+ if attributes.key?(:'hidden')
134
+ self.hidden = attributes[:'hidden']
135
+ else
136
+ self.hidden = false
143
137
  end
144
138
 
145
139
  if attributes.key?(:'repository')
146
140
  self.repository = attributes[:'repository']
147
141
  end
148
142
 
149
- if attributes.key?(:'name')
150
- self.name = attributes[:'name']
143
+ if attributes.key?(:'pulp_labels')
144
+ if (value = attributes[:'pulp_labels']).is_a?(Hash)
145
+ self.pulp_labels = value
146
+ end
147
+ end
148
+
149
+ if attributes.key?(:'base_path')
150
+ self.base_path = attributes[:'base_path']
151
151
  end
152
152
 
153
153
  if attributes.key?(:'repository_version')
@@ -175,22 +175,22 @@ module PulpContainerClient
175
175
  # @return Array for valid properties with the reasons
176
176
  def list_invalid_properties
177
177
  invalid_properties = Array.new
178
- if @base_path.nil?
179
- invalid_properties.push('invalid value for "base_path", base_path cannot be nil.')
180
- end
181
-
182
178
  if @name.nil?
183
179
  invalid_properties.push('invalid value for "name", name cannot be nil.')
184
180
  end
185
181
 
182
+ if @base_path.nil?
183
+ invalid_properties.push('invalid value for "base_path", base_path cannot be nil.')
184
+ end
185
+
186
186
  invalid_properties
187
187
  end
188
188
 
189
189
  # Check to see if the all the properties in the model are valid
190
190
  # @return true if the model is valid
191
191
  def valid?
192
- return false if @base_path.nil?
193
192
  return false if @name.nil?
193
+ return false if @base_path.nil?
194
194
  true
195
195
  end
196
196
 
@@ -199,14 +199,14 @@ module PulpContainerClient
199
199
  def ==(o)
200
200
  return true if self.equal?(o)
201
201
  self.class == o.class &&
202
- hidden == o.hidden &&
203
- base_path == o.base_path &&
202
+ name == o.name &&
204
203
  pulp_href == o.pulp_href &&
205
204
  pulp_created == o.pulp_created &&
206
205
  content_guard == o.content_guard &&
207
- pulp_labels == o.pulp_labels &&
206
+ hidden == o.hidden &&
208
207
  repository == o.repository &&
209
- name == o.name &&
208
+ pulp_labels == o.pulp_labels &&
209
+ base_path == o.base_path &&
210
210
  repository_version == o.repository_version &&
211
211
  registry_path == o.registry_path &&
212
212
  namespace == o.namespace &&
@@ -223,7 +223,7 @@ module PulpContainerClient
223
223
  # Calculates hash code according to all attributes.
224
224
  # @return [Integer] Hash code
225
225
  def hash
226
- [hidden, base_path, pulp_href, pulp_created, content_guard, pulp_labels, repository, name, repository_version, registry_path, namespace, private, description].hash
226
+ [name, pulp_href, pulp_created, content_guard, hidden, repository, pulp_labels, base_path, repository_version, registry_path, namespace, private, description].hash
227
227
  end
228
228
 
229
229
  # Builds the object from hash
@@ -15,7 +15,8 @@ require 'date'
15
15
  module PulpContainerClient
16
16
  # Serializer for Container Push Repositories.
17
17
  class ContainerContainerPushRepository
18
- attr_accessor :pulp_labels
18
+ # An optional description.
19
+ attr_accessor :description
19
20
 
20
21
  # Retain X versions of the repository. Default is null which retains all versions.
21
22
  attr_accessor :retain_repo_versions
@@ -23,40 +24,39 @@ module PulpContainerClient
23
24
  # A reference to an associated signing service.
24
25
  attr_accessor :manifest_signing_service
25
26
 
26
- # An optional description.
27
- attr_accessor :description
28
-
29
27
  # A unique name for this repository.
30
28
  attr_accessor :name
31
29
 
30
+ attr_accessor :pulp_labels
31
+
32
32
  # Attribute mapping from ruby-style variable name to JSON key.
33
33
  def self.attribute_map
34
34
  {
35
- :'pulp_labels' => :'pulp_labels',
35
+ :'description' => :'description',
36
36
  :'retain_repo_versions' => :'retain_repo_versions',
37
37
  :'manifest_signing_service' => :'manifest_signing_service',
38
- :'description' => :'description',
39
- :'name' => :'name'
38
+ :'name' => :'name',
39
+ :'pulp_labels' => :'pulp_labels'
40
40
  }
41
41
  end
42
42
 
43
43
  # Attribute type mapping.
44
44
  def self.openapi_types
45
45
  {
46
- :'pulp_labels' => :'Hash<String, String>',
46
+ :'description' => :'String',
47
47
  :'retain_repo_versions' => :'Integer',
48
48
  :'manifest_signing_service' => :'String',
49
- :'description' => :'String',
50
- :'name' => :'String'
49
+ :'name' => :'String',
50
+ :'pulp_labels' => :'Hash<String, String>'
51
51
  }
52
52
  end
53
53
 
54
54
  # List of attributes with nullable: true
55
55
  def self.openapi_nullable
56
56
  Set.new([
57
+ :'description',
57
58
  :'retain_repo_versions',
58
59
  :'manifest_signing_service',
59
- :'description',
60
60
  ])
61
61
  end
62
62
 
@@ -75,10 +75,8 @@ module PulpContainerClient
75
75
  h[k.to_sym] = v
76
76
  }
77
77
 
78
- if attributes.key?(:'pulp_labels')
79
- if (value = attributes[:'pulp_labels']).is_a?(Hash)
80
- self.pulp_labels = value
81
- end
78
+ if attributes.key?(:'description')
79
+ self.description = attributes[:'description']
82
80
  end
83
81
 
84
82
  if attributes.key?(:'retain_repo_versions')
@@ -89,27 +87,29 @@ module PulpContainerClient
89
87
  self.manifest_signing_service = attributes[:'manifest_signing_service']
90
88
  end
91
89
 
92
- if attributes.key?(:'description')
93
- self.description = attributes[:'description']
94
- end
95
-
96
90
  if attributes.key?(:'name')
97
91
  self.name = attributes[:'name']
98
92
  end
93
+
94
+ if attributes.key?(:'pulp_labels')
95
+ if (value = attributes[:'pulp_labels']).is_a?(Hash)
96
+ self.pulp_labels = value
97
+ end
98
+ end
99
99
  end
100
100
 
101
101
  # Show invalid properties with the reasons. Usually used together with valid?
102
102
  # @return Array for valid properties with the reasons
103
103
  def list_invalid_properties
104
104
  invalid_properties = Array.new
105
- if !@retain_repo_versions.nil? && @retain_repo_versions < 1
106
- invalid_properties.push('invalid value for "retain_repo_versions", must be greater than or equal to 1.')
107
- end
108
-
109
105
  if !@description.nil? && @description.to_s.length < 1
110
106
  invalid_properties.push('invalid value for "description", the character length must be great than or equal to 1.')
111
107
  end
112
108
 
109
+ if !@retain_repo_versions.nil? && @retain_repo_versions < 1
110
+ invalid_properties.push('invalid value for "retain_repo_versions", must be greater than or equal to 1.')
111
+ end
112
+
113
113
  if @name.nil?
114
114
  invalid_properties.push('invalid value for "name", name cannot be nil.')
115
115
  end
@@ -124,23 +124,13 @@ module PulpContainerClient
124
124
  # Check to see if the all the properties in the model are valid
125
125
  # @return true if the model is valid
126
126
  def valid?
127
- return false if !@retain_repo_versions.nil? && @retain_repo_versions < 1
128
127
  return false if !@description.nil? && @description.to_s.length < 1
128
+ return false if !@retain_repo_versions.nil? && @retain_repo_versions < 1
129
129
  return false if @name.nil?
130
130
  return false if @name.to_s.length < 1
131
131
  true
132
132
  end
133
133
 
134
- # Custom attribute writer method with validation
135
- # @param [Object] retain_repo_versions Value to be assigned
136
- def retain_repo_versions=(retain_repo_versions)
137
- if !retain_repo_versions.nil? && retain_repo_versions < 1
138
- fail ArgumentError, 'invalid value for "retain_repo_versions", must be greater than or equal to 1.'
139
- end
140
-
141
- @retain_repo_versions = retain_repo_versions
142
- end
143
-
144
134
  # Custom attribute writer method with validation
145
135
  # @param [Object] description Value to be assigned
146
136
  def description=(description)
@@ -151,6 +141,16 @@ module PulpContainerClient
151
141
  @description = description
152
142
  end
153
143
 
144
+ # Custom attribute writer method with validation
145
+ # @param [Object] retain_repo_versions Value to be assigned
146
+ def retain_repo_versions=(retain_repo_versions)
147
+ if !retain_repo_versions.nil? && retain_repo_versions < 1
148
+ fail ArgumentError, 'invalid value for "retain_repo_versions", must be greater than or equal to 1.'
149
+ end
150
+
151
+ @retain_repo_versions = retain_repo_versions
152
+ end
153
+
154
154
  # Custom attribute writer method with validation
155
155
  # @param [Object] name Value to be assigned
156
156
  def name=(name)
@@ -170,11 +170,11 @@ module PulpContainerClient
170
170
  def ==(o)
171
171
  return true if self.equal?(o)
172
172
  self.class == o.class &&
173
- pulp_labels == o.pulp_labels &&
173
+ description == o.description &&
174
174
  retain_repo_versions == o.retain_repo_versions &&
175
175
  manifest_signing_service == o.manifest_signing_service &&
176
- description == o.description &&
177
- name == o.name
176
+ name == o.name &&
177
+ pulp_labels == o.pulp_labels
178
178
  end
179
179
 
180
180
  # @see the `==` method
@@ -186,7 +186,7 @@ module PulpContainerClient
186
186
  # Calculates hash code according to all attributes.
187
187
  # @return [Integer] Hash code
188
188
  def hash
189
- [pulp_labels, retain_repo_versions, manifest_signing_service, description, name].hash
189
+ [description, retain_repo_versions, manifest_signing_service, name, pulp_labels].hash
190
190
  end
191
191
 
192
192
  # Builds the object from hash
@@ -15,65 +15,65 @@ require 'date'
15
15
  module PulpContainerClient
16
16
  # Serializer for Container Push Repositories.
17
17
  class ContainerContainerPushRepositoryResponse
18
- attr_accessor :pulp_href
19
-
20
- # Timestamp of creation.
21
- attr_accessor :pulp_created
18
+ attr_accessor :latest_version_href
22
19
 
23
- attr_accessor :pulp_labels
20
+ # An optional description.
21
+ attr_accessor :description
24
22
 
25
23
  # Retain X versions of the repository. Default is null which retains all versions.
26
24
  attr_accessor :retain_repo_versions
27
25
 
28
- attr_accessor :latest_version_href
29
-
30
26
  # A reference to an associated signing service.
31
27
  attr_accessor :manifest_signing_service
32
28
 
33
- # An optional description.
34
- attr_accessor :description
29
+ # A unique name for this repository.
30
+ attr_accessor :name
31
+
32
+ attr_accessor :pulp_href
35
33
 
36
34
  attr_accessor :versions_href
37
35
 
38
- # A unique name for this repository.
39
- attr_accessor :name
36
+ # Timestamp of creation.
37
+ attr_accessor :pulp_created
38
+
39
+ attr_accessor :pulp_labels
40
40
 
41
41
  # Attribute mapping from ruby-style variable name to JSON key.
42
42
  def self.attribute_map
43
43
  {
44
- :'pulp_href' => :'pulp_href',
45
- :'pulp_created' => :'pulp_created',
46
- :'pulp_labels' => :'pulp_labels',
47
- :'retain_repo_versions' => :'retain_repo_versions',
48
44
  :'latest_version_href' => :'latest_version_href',
49
- :'manifest_signing_service' => :'manifest_signing_service',
50
45
  :'description' => :'description',
46
+ :'retain_repo_versions' => :'retain_repo_versions',
47
+ :'manifest_signing_service' => :'manifest_signing_service',
48
+ :'name' => :'name',
49
+ :'pulp_href' => :'pulp_href',
51
50
  :'versions_href' => :'versions_href',
52
- :'name' => :'name'
51
+ :'pulp_created' => :'pulp_created',
52
+ :'pulp_labels' => :'pulp_labels'
53
53
  }
54
54
  end
55
55
 
56
56
  # Attribute type mapping.
57
57
  def self.openapi_types
58
58
  {
59
- :'pulp_href' => :'String',
60
- :'pulp_created' => :'DateTime',
61
- :'pulp_labels' => :'Hash<String, String>',
62
- :'retain_repo_versions' => :'Integer',
63
59
  :'latest_version_href' => :'String',
64
- :'manifest_signing_service' => :'String',
65
60
  :'description' => :'String',
61
+ :'retain_repo_versions' => :'Integer',
62
+ :'manifest_signing_service' => :'String',
63
+ :'name' => :'String',
64
+ :'pulp_href' => :'String',
66
65
  :'versions_href' => :'String',
67
- :'name' => :'String'
66
+ :'pulp_created' => :'DateTime',
67
+ :'pulp_labels' => :'Hash<String, String>'
68
68
  }
69
69
  end
70
70
 
71
71
  # List of attributes with nullable: true
72
72
  def self.openapi_nullable
73
73
  Set.new([
74
+ :'description',
74
75
  :'retain_repo_versions',
75
76
  :'manifest_signing_service',
76
- :'description',
77
77
  ])
78
78
  end
79
79
 
@@ -92,42 +92,42 @@ module PulpContainerClient
92
92
  h[k.to_sym] = v
93
93
  }
94
94
 
95
- if attributes.key?(:'pulp_href')
96
- self.pulp_href = attributes[:'pulp_href']
97
- end
98
-
99
- if attributes.key?(:'pulp_created')
100
- self.pulp_created = attributes[:'pulp_created']
95
+ if attributes.key?(:'latest_version_href')
96
+ self.latest_version_href = attributes[:'latest_version_href']
101
97
  end
102
98
 
103
- if attributes.key?(:'pulp_labels')
104
- if (value = attributes[:'pulp_labels']).is_a?(Hash)
105
- self.pulp_labels = value
106
- end
99
+ if attributes.key?(:'description')
100
+ self.description = attributes[:'description']
107
101
  end
108
102
 
109
103
  if attributes.key?(:'retain_repo_versions')
110
104
  self.retain_repo_versions = attributes[:'retain_repo_versions']
111
105
  end
112
106
 
113
- if attributes.key?(:'latest_version_href')
114
- self.latest_version_href = attributes[:'latest_version_href']
115
- end
116
-
117
107
  if attributes.key?(:'manifest_signing_service')
118
108
  self.manifest_signing_service = attributes[:'manifest_signing_service']
119
109
  end
120
110
 
121
- if attributes.key?(:'description')
122
- self.description = attributes[:'description']
111
+ if attributes.key?(:'name')
112
+ self.name = attributes[:'name']
113
+ end
114
+
115
+ if attributes.key?(:'pulp_href')
116
+ self.pulp_href = attributes[:'pulp_href']
123
117
  end
124
118
 
125
119
  if attributes.key?(:'versions_href')
126
120
  self.versions_href = attributes[:'versions_href']
127
121
  end
128
122
 
129
- if attributes.key?(:'name')
130
- self.name = attributes[:'name']
123
+ if attributes.key?(:'pulp_created')
124
+ self.pulp_created = attributes[:'pulp_created']
125
+ end
126
+
127
+ if attributes.key?(:'pulp_labels')
128
+ if (value = attributes[:'pulp_labels']).is_a?(Hash)
129
+ self.pulp_labels = value
130
+ end
131
131
  end
132
132
  end
133
133
 
@@ -169,15 +169,15 @@ module PulpContainerClient
169
169
  def ==(o)
170
170
  return true if self.equal?(o)
171
171
  self.class == o.class &&
172
- pulp_href == o.pulp_href &&
173
- pulp_created == o.pulp_created &&
174
- pulp_labels == o.pulp_labels &&
175
- retain_repo_versions == o.retain_repo_versions &&
176
172
  latest_version_href == o.latest_version_href &&
177
- manifest_signing_service == o.manifest_signing_service &&
178
173
  description == o.description &&
174
+ retain_repo_versions == o.retain_repo_versions &&
175
+ manifest_signing_service == o.manifest_signing_service &&
176
+ name == o.name &&
177
+ pulp_href == o.pulp_href &&
179
178
  versions_href == o.versions_href &&
180
- name == o.name
179
+ pulp_created == o.pulp_created &&
180
+ pulp_labels == o.pulp_labels
181
181
  end
182
182
 
183
183
  # @see the `==` method
@@ -189,7 +189,7 @@ module PulpContainerClient
189
189
  # Calculates hash code according to all attributes.
190
190
  # @return [Integer] Hash code
191
191
  def hash
192
- [pulp_href, pulp_created, pulp_labels, retain_repo_versions, latest_version_href, manifest_signing_service, description, versions_href, name].hash
192
+ [latest_version_href, description, retain_repo_versions, manifest_signing_service, name, pulp_href, versions_href, pulp_created, pulp_labels].hash
193
193
  end
194
194
 
195
195
  # Builds the object from hash
@@ -68,12 +68,22 @@ module PulpContainerClient
68
68
  # @return Array for valid properties with the reasons
69
69
  def list_invalid_properties
70
70
  invalid_properties = Array.new
71
+ if @name.nil?
72
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
73
+ end
74
+
75
+ if @is_set.nil?
76
+ invalid_properties.push('invalid value for "is_set", is_set cannot be nil.')
77
+ end
78
+
71
79
  invalid_properties
72
80
  end
73
81
 
74
82
  # Check to see if the all the properties in the model are valid
75
83
  # @return true if the model is valid
76
84
  def valid?
85
+ return false if @name.nil?
86
+ return false if @is_set.nil?
77
87
  true
78
88
  end
79
89