cloudmersive-virus-scan-api-client 1.3.0 → 2.0.1
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.
- checksums.yaml +4 -4
- metadata +16 -45
- data/Gemfile +0 -7
- data/README.md +0 -106
- data/Rakefile +0 -8
- data/cloudmersive-virus-scan-api-client.gemspec +0 -45
- data/docs/ScanApi.md +0 -114
- data/docs/VirusFound.md +0 -9
- data/docs/VirusScanResult.md +0 -9
- data/docs/WebsiteScanRequest.md +0 -8
- data/docs/WebsiteScanResult.md +0 -9
- data/git_push.sh +0 -55
- data/lib/cloudmersive-virus-scan-api-client.rb +0 -44
- data/lib/cloudmersive-virus-scan-api-client/api/scan_api.rb +0 -134
- data/lib/cloudmersive-virus-scan-api-client/api_client.rb +0 -389
- data/lib/cloudmersive-virus-scan-api-client/api_error.rb +0 -38
- data/lib/cloudmersive-virus-scan-api-client/configuration.rb +0 -209
- data/lib/cloudmersive-virus-scan-api-client/models/virus_found.rb +0 -199
- data/lib/cloudmersive-virus-scan-api-client/models/virus_scan_result.rb +0 -201
- data/lib/cloudmersive-virus-scan-api-client/models/website_scan_request.rb +0 -189
- data/lib/cloudmersive-virus-scan-api-client/models/website_scan_result.rb +0 -232
- data/lib/cloudmersive-virus-scan-api-client/version.rb +0 -15
- data/spec/api/scan_api_spec.rb +0 -59
- data/spec/api_client_spec.rb +0 -226
- data/spec/configuration_spec.rb +0 -42
- data/spec/models/virus_found_spec.rb +0 -48
- data/spec/models/virus_scan_result_spec.rb +0 -48
- data/spec/models/website_scan_request_spec.rb +0 -42
- data/spec/models/website_scan_result_spec.rb +0 -52
- data/spec/spec_helper.rb +0 -111
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0aa02987ee26da7bbc8e6831cf6824ae09f3abc394833dc57c9ae6a020738608
|
4
|
+
data.tar.gz: 928a25bf55c648df04cd5e0a3579a13e26db98e28724e9ccdfa03f90118b1936
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9022aec24f8c7551c8a2a3daaf71c3557d1d766ce40484c8464c8daa033e09d4191e3b94d95be3be1a1806d222890451f5f2b8a7ea2b73483f1f48c55f23f49
|
7
|
+
data.tar.gz: bd13d85b2d4440bd96724a0e23e4659f07d6cd43f987bbc32e7db822b149e9c5888f9069f4db0e78558e33b98873d2a841ab3eb305253ba537899318db56847a
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudmersive-virus-scan-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cloudmersive
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typhoeus
|
@@ -34,42 +34,42 @@ dependencies:
|
|
34
34
|
name: json
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '2.1'
|
40
37
|
- - ">="
|
41
38
|
- !ruby/object:Gem::Version
|
42
39
|
version: 2.1.0
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '2.1'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '2.1'
|
50
47
|
- - ">="
|
51
48
|
- !ruby/object:Gem::Version
|
52
49
|
version: 2.1.0
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '2.1'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: rspec
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '3.6'
|
60
57
|
- - ">="
|
61
58
|
- !ruby/object:Gem::Version
|
62
59
|
version: 3.6.0
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '3.6'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - "~>"
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '3.6'
|
70
67
|
- - ">="
|
71
68
|
- !ruby/object:Gem::Version
|
72
69
|
version: 3.6.0
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '3.6'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: vcr
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -197,35 +197,7 @@ email:
|
|
197
197
|
executables: []
|
198
198
|
extensions: []
|
199
199
|
extra_rdoc_files: []
|
200
|
-
files:
|
201
|
-
- "./Gemfile"
|
202
|
-
- "./README.md"
|
203
|
-
- "./Rakefile"
|
204
|
-
- "./cloudmersive-virus-scan-api-client.gemspec"
|
205
|
-
- "./docs/ScanApi.md"
|
206
|
-
- "./docs/VirusFound.md"
|
207
|
-
- "./docs/VirusScanResult.md"
|
208
|
-
- "./docs/WebsiteScanRequest.md"
|
209
|
-
- "./docs/WebsiteScanResult.md"
|
210
|
-
- "./git_push.sh"
|
211
|
-
- "./lib/cloudmersive-virus-scan-api-client.rb"
|
212
|
-
- "./lib/cloudmersive-virus-scan-api-client/api/scan_api.rb"
|
213
|
-
- "./lib/cloudmersive-virus-scan-api-client/api_client.rb"
|
214
|
-
- "./lib/cloudmersive-virus-scan-api-client/api_error.rb"
|
215
|
-
- "./lib/cloudmersive-virus-scan-api-client/configuration.rb"
|
216
|
-
- "./lib/cloudmersive-virus-scan-api-client/models/virus_found.rb"
|
217
|
-
- "./lib/cloudmersive-virus-scan-api-client/models/virus_scan_result.rb"
|
218
|
-
- "./lib/cloudmersive-virus-scan-api-client/models/website_scan_request.rb"
|
219
|
-
- "./lib/cloudmersive-virus-scan-api-client/models/website_scan_result.rb"
|
220
|
-
- "./lib/cloudmersive-virus-scan-api-client/version.rb"
|
221
|
-
- "./spec/api/scan_api_spec.rb"
|
222
|
-
- "./spec/api_client_spec.rb"
|
223
|
-
- "./spec/configuration_spec.rb"
|
224
|
-
- "./spec/models/virus_found_spec.rb"
|
225
|
-
- "./spec/models/virus_scan_result_spec.rb"
|
226
|
-
- "./spec/models/website_scan_request_spec.rb"
|
227
|
-
- "./spec/models/website_scan_result_spec.rb"
|
228
|
-
- "./spec/spec_helper.rb"
|
200
|
+
files: []
|
229
201
|
homepage: https://www.cloudmersive.com/virus-api
|
230
202
|
licenses:
|
231
203
|
- Apache 2.0
|
@@ -245,8 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
217
|
- !ruby/object:Gem::Version
|
246
218
|
version: '0'
|
247
219
|
requirements: []
|
248
|
-
|
249
|
-
rubygems_version: 2.7.6
|
220
|
+
rubygems_version: 3.0.3
|
250
221
|
signing_key:
|
251
222
|
specification_version: 4
|
252
223
|
summary: Scan files and content for viruses.
|
data/Gemfile
DELETED
data/README.md
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
# cloudmersive-virus-scan-api-client
|
2
|
-
|
3
|
-
CloudmersiveVirusScanApiClient - the Ruby gem for the virusapi
|
4
|
-
|
5
|
-
Virus API lets you scan files and content for viruses and identify security issues with content.
|
6
|
-
|
7
|
-
This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
8
|
-
|
9
|
-
- API version: v1
|
10
|
-
- Package version: 1.3.0
|
11
|
-
- Build package: io.swagger.codegen.languages.RubyClientCodegen
|
12
|
-
|
13
|
-
## Installation
|
14
|
-
|
15
|
-
### Build a gem
|
16
|
-
|
17
|
-
To build the Ruby code into a gem:
|
18
|
-
|
19
|
-
```shell
|
20
|
-
gem build cloudmersive-virus-scan-api-client.gemspec
|
21
|
-
```
|
22
|
-
|
23
|
-
Then either install the gem locally:
|
24
|
-
|
25
|
-
```shell
|
26
|
-
gem install ./cloudmersive-virus-scan-api-client-1.3.0.gem
|
27
|
-
```
|
28
|
-
(for development, run `gem install --dev ./cloudmersive-virus-scan-api-client-1.3.0.gem` to install the development dependencies)
|
29
|
-
|
30
|
-
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
|
31
|
-
|
32
|
-
Finally add this to the Gemfile:
|
33
|
-
|
34
|
-
gem 'cloudmersive-virus-scan-api-client', '~> 1.3.0'
|
35
|
-
|
36
|
-
### Install from Git
|
37
|
-
|
38
|
-
If the Ruby gem is hosted at a git repository: https://github.com/GIT_USER_ID/GIT_REPO_ID, then add the following in the Gemfile:
|
39
|
-
|
40
|
-
gem 'cloudmersive-virus-scan-api-client', :git => 'https://github.com/GIT_USER_ID/GIT_REPO_ID.git'
|
41
|
-
|
42
|
-
### Include the Ruby code directly
|
43
|
-
|
44
|
-
Include the Ruby code directly using `-I` as follows:
|
45
|
-
|
46
|
-
```shell
|
47
|
-
ruby -Ilib script.rb
|
48
|
-
```
|
49
|
-
|
50
|
-
## Getting Started
|
51
|
-
|
52
|
-
Please follow the [installation](#installation) procedure and then run the following code:
|
53
|
-
```ruby
|
54
|
-
# Load the gem
|
55
|
-
require 'cloudmersive-virus-scan-api-client'
|
56
|
-
|
57
|
-
# Setup authorization
|
58
|
-
CloudmersiveVirusScanApiClient.configure do |config|
|
59
|
-
# Configure API key authorization: Apikey
|
60
|
-
config.api_key['Apikey'] = 'YOUR API KEY'
|
61
|
-
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
62
|
-
#config.api_key_prefix['Apikey'] = 'Bearer'
|
63
|
-
end
|
64
|
-
|
65
|
-
api_instance = CloudmersiveVirusScanApiClient::ScanApi.new
|
66
|
-
|
67
|
-
input_file = File.new("/path/to/file.txt") # File | Input file to perform the operation on.
|
68
|
-
|
69
|
-
|
70
|
-
begin
|
71
|
-
#Scan a file for viruses
|
72
|
-
result = api_instance.scan_file(input_file)
|
73
|
-
p result
|
74
|
-
rescue CloudmersiveVirusScanApiClient::ApiError => e
|
75
|
-
puts "Exception when calling ScanApi->scan_file: #{e}"
|
76
|
-
end
|
77
|
-
|
78
|
-
```
|
79
|
-
|
80
|
-
## Documentation for API Endpoints
|
81
|
-
|
82
|
-
All URIs are relative to *https://api.cloudmersive.com*
|
83
|
-
|
84
|
-
Class | Method | HTTP request | Description
|
85
|
-
------------ | ------------- | ------------- | -------------
|
86
|
-
*CloudmersiveVirusScanApiClient::ScanApi* | [**scan_file**](docs/ScanApi.md#scan_file) | **POST** /virus/scan/file | Scan a file for viruses
|
87
|
-
*CloudmersiveVirusScanApiClient::ScanApi* | [**scan_website**](docs/ScanApi.md#scan_website) | **POST** /virus/scan/website | Scan a website for malicious content including viruses and threats (including Phishing)
|
88
|
-
|
89
|
-
|
90
|
-
## Documentation for Models
|
91
|
-
|
92
|
-
- [CloudmersiveVirusScanApiClient::VirusFound](docs/VirusFound.md)
|
93
|
-
- [CloudmersiveVirusScanApiClient::VirusScanResult](docs/VirusScanResult.md)
|
94
|
-
- [CloudmersiveVirusScanApiClient::WebsiteScanRequest](docs/WebsiteScanRequest.md)
|
95
|
-
- [CloudmersiveVirusScanApiClient::WebsiteScanResult](docs/WebsiteScanResult.md)
|
96
|
-
|
97
|
-
|
98
|
-
## Documentation for Authorization
|
99
|
-
|
100
|
-
|
101
|
-
### Apikey
|
102
|
-
|
103
|
-
- **Type**: API key
|
104
|
-
- **API key parameter name**: Apikey
|
105
|
-
- **Location**: HTTP header
|
106
|
-
|
data/Rakefile
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#
|
3
|
-
=begin
|
4
|
-
#virusapi
|
5
|
-
|
6
|
-
#Virus API lets you scan files and content for viruses and identify security issues with content.
|
7
|
-
|
8
|
-
OpenAPI spec version: v1
|
9
|
-
|
10
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
11
|
-
Swagger Codegen version: unset
|
12
|
-
|
13
|
-
=end
|
14
|
-
|
15
|
-
$:.push File.expand_path("../lib", __FILE__)
|
16
|
-
require "cloudmersive-virus-scan-api-client/version"
|
17
|
-
|
18
|
-
Gem::Specification.new do |s|
|
19
|
-
s.name = "cloudmersive-virus-scan-api-client"
|
20
|
-
s.version = CloudmersiveVirusScanApiClient::VERSION
|
21
|
-
s.platform = Gem::Platform::RUBY
|
22
|
-
s.authors = ["Cloudmersive"]
|
23
|
-
s.email = [""]
|
24
|
-
s.homepage = "https://www.cloudmersive.com/virus-api"
|
25
|
-
s.summary = "Scan files and content for viruses."
|
26
|
-
s.description = "Virus API lets you scan files and content for viruses and identify security issues with content."
|
27
|
-
s.license = "Apache 2.0"
|
28
|
-
s.required_ruby_version = ">= 1.9"
|
29
|
-
|
30
|
-
s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
|
31
|
-
s.add_runtime_dependency 'json', '~> 2.1', '>= 2.1.0'
|
32
|
-
|
33
|
-
s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
|
34
|
-
s.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.1'
|
35
|
-
s.add_development_dependency 'webmock', '~> 1.24', '>= 1.24.3'
|
36
|
-
s.add_development_dependency 'autotest', '~> 4.4', '>= 4.4.6'
|
37
|
-
s.add_development_dependency 'autotest-rails-pure', '~> 4.1', '>= 4.1.2'
|
38
|
-
s.add_development_dependency 'autotest-growl', '~> 0.2', '>= 0.2.16'
|
39
|
-
s.add_development_dependency 'autotest-fsevent', '~> 0.2', '>= 0.2.12'
|
40
|
-
|
41
|
-
s.files = Dir['./**/*']
|
42
|
-
s.test_files = `find spec/*`.split("\n")
|
43
|
-
s.executables = []
|
44
|
-
s.require_paths = ["lib"]
|
45
|
-
end
|
data/docs/ScanApi.md
DELETED
@@ -1,114 +0,0 @@
|
|
1
|
-
# CloudmersiveVirusScanApiClient::ScanApi
|
2
|
-
|
3
|
-
All URIs are relative to *https://api.cloudmersive.com*
|
4
|
-
|
5
|
-
Method | HTTP request | Description
|
6
|
-
------------- | ------------- | -------------
|
7
|
-
[**scan_file**](ScanApi.md#scan_file) | **POST** /virus/scan/file | Scan a file for viruses
|
8
|
-
[**scan_website**](ScanApi.md#scan_website) | **POST** /virus/scan/website | Scan a website for malicious content including viruses and threats (including Phishing)
|
9
|
-
|
10
|
-
|
11
|
-
# **scan_file**
|
12
|
-
> VirusScanResult scan_file(input_file)
|
13
|
-
|
14
|
-
Scan a file for viruses
|
15
|
-
|
16
|
-
### Example
|
17
|
-
```ruby
|
18
|
-
# load the gem
|
19
|
-
require 'cloudmersive-virus-scan-api-client'
|
20
|
-
# setup authorization
|
21
|
-
CloudmersiveVirusScanApiClient.configure do |config|
|
22
|
-
# Configure API key authorization: Apikey
|
23
|
-
config.api_key['Apikey'] = 'YOUR API KEY'
|
24
|
-
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
25
|
-
#config.api_key_prefix['Apikey'] = 'Bearer'
|
26
|
-
end
|
27
|
-
|
28
|
-
api_instance = CloudmersiveVirusScanApiClient::ScanApi.new
|
29
|
-
|
30
|
-
input_file = File.new("/path/to/file.txt") # File | Input file to perform the operation on.
|
31
|
-
|
32
|
-
|
33
|
-
begin
|
34
|
-
#Scan a file for viruses
|
35
|
-
result = api_instance.scan_file(input_file)
|
36
|
-
p result
|
37
|
-
rescue CloudmersiveVirusScanApiClient::ApiError => e
|
38
|
-
puts "Exception when calling ScanApi->scan_file: #{e}"
|
39
|
-
end
|
40
|
-
```
|
41
|
-
|
42
|
-
### Parameters
|
43
|
-
|
44
|
-
Name | Type | Description | Notes
|
45
|
-
------------- | ------------- | ------------- | -------------
|
46
|
-
**input_file** | **File**| Input file to perform the operation on. |
|
47
|
-
|
48
|
-
### Return type
|
49
|
-
|
50
|
-
[**VirusScanResult**](VirusScanResult.md)
|
51
|
-
|
52
|
-
### Authorization
|
53
|
-
|
54
|
-
[Apikey](../README.md#Apikey)
|
55
|
-
|
56
|
-
### HTTP request headers
|
57
|
-
|
58
|
-
- **Content-Type**: multipart/form-data
|
59
|
-
- **Accept**: application/json, text/json, application/xml, text/xml
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
# **scan_website**
|
64
|
-
> WebsiteScanResult scan_website(input)
|
65
|
-
|
66
|
-
Scan a website for malicious content including viruses and threats (including Phishing)
|
67
|
-
|
68
|
-
### Example
|
69
|
-
```ruby
|
70
|
-
# load the gem
|
71
|
-
require 'cloudmersive-virus-scan-api-client'
|
72
|
-
# setup authorization
|
73
|
-
CloudmersiveVirusScanApiClient.configure do |config|
|
74
|
-
# Configure API key authorization: Apikey
|
75
|
-
config.api_key['Apikey'] = 'YOUR API KEY'
|
76
|
-
# Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
|
77
|
-
#config.api_key_prefix['Apikey'] = 'Bearer'
|
78
|
-
end
|
79
|
-
|
80
|
-
api_instance = CloudmersiveVirusScanApiClient::ScanApi.new
|
81
|
-
|
82
|
-
input = CloudmersiveVirusScanApiClient::WebsiteScanRequest.new # WebsiteScanRequest |
|
83
|
-
|
84
|
-
|
85
|
-
begin
|
86
|
-
#Scan a website for malicious content including viruses and threats (including Phishing)
|
87
|
-
result = api_instance.scan_website(input)
|
88
|
-
p result
|
89
|
-
rescue CloudmersiveVirusScanApiClient::ApiError => e
|
90
|
-
puts "Exception when calling ScanApi->scan_website: #{e}"
|
91
|
-
end
|
92
|
-
```
|
93
|
-
|
94
|
-
### Parameters
|
95
|
-
|
96
|
-
Name | Type | Description | Notes
|
97
|
-
------------- | ------------- | ------------- | -------------
|
98
|
-
**input** | [**WebsiteScanRequest**](WebsiteScanRequest.md)| |
|
99
|
-
|
100
|
-
### Return type
|
101
|
-
|
102
|
-
[**WebsiteScanResult**](WebsiteScanResult.md)
|
103
|
-
|
104
|
-
### Authorization
|
105
|
-
|
106
|
-
[Apikey](../README.md#Apikey)
|
107
|
-
|
108
|
-
### HTTP request headers
|
109
|
-
|
110
|
-
- **Content-Type**: application/json, text/json, application/xml, text/xml, application/x-www-form-urlencoded
|
111
|
-
- **Accept**: application/json, text/json, application/xml, text/xml
|
112
|
-
|
113
|
-
|
114
|
-
|
data/docs/VirusFound.md
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# CloudmersiveVirusScanApiClient::VirusFound
|
2
|
-
|
3
|
-
## Properties
|
4
|
-
Name | Type | Description | Notes
|
5
|
-
------------ | ------------- | ------------- | -------------
|
6
|
-
**file_name** | **String** | Name of the file containing the virus | [optional]
|
7
|
-
**virus_name** | **String** | Name of the virus that was found | [optional]
|
8
|
-
|
9
|
-
|
data/docs/VirusScanResult.md
DELETED
@@ -1,9 +0,0 @@
|
|
1
|
-
# CloudmersiveVirusScanApiClient::VirusScanResult
|
2
|
-
|
3
|
-
## Properties
|
4
|
-
Name | Type | Description | Notes
|
5
|
-
------------ | ------------- | ------------- | -------------
|
6
|
-
**clean_result** | **BOOLEAN** | True if the scan contained no viruses, false otherwise | [optional]
|
7
|
-
**found_viruses** | [**Array<VirusFound>**](VirusFound.md) | Array of viruses found, if any | [optional]
|
8
|
-
|
9
|
-
|
data/docs/WebsiteScanRequest.md
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
# CloudmersiveVirusScanApiClient::WebsiteScanRequest
|
2
|
-
|
3
|
-
## Properties
|
4
|
-
Name | Type | Description | Notes
|
5
|
-
------------ | ------------- | ------------- | -------------
|
6
|
-
**url** | **String** | URL of the website to scan; should begin with http:// or https:// | [optional]
|
7
|
-
|
8
|
-
|