azure_mgmt_insights 0.8.0
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 +7 -0
- data/LICENSE.txt +21 -0
- data/lib/azure_mgmt_insights.rb +5 -0
- data/lib/generated/azure_mgmt_insights.rb +77 -0
- data/lib/generated/azure_mgmt_insights/alert_rule_incidents.rb +121 -0
- data/lib/generated/azure_mgmt_insights/alert_rules.rb +410 -0
- data/lib/generated/azure_mgmt_insights/autoscale_settings.rb +521 -0
- data/lib/generated/azure_mgmt_insights/incidents.rb +117 -0
- data/lib/generated/azure_mgmt_insights/insights_management_client.rb +147 -0
- data/lib/generated/azure_mgmt_insights/log_profiles.rb +375 -0
- data/lib/generated/azure_mgmt_insights/models/alert_rule_resource.rb +156 -0
- data/lib/generated/azure_mgmt_insights/models/alert_rule_resource_collection.rb +53 -0
- data/lib/generated/azure_mgmt_insights/models/autoscale_notification.rb +77 -0
- data/lib/generated/azure_mgmt_insights/models/autoscale_profile.rb +100 -0
- data/lib/generated/azure_mgmt_insights/models/autoscale_setting_resource.rb +152 -0
- data/lib/generated/azure_mgmt_insights/models/autoscale_setting_resource_collection.rb +94 -0
- data/lib/generated/azure_mgmt_insights/models/comparison_operation_type.rb +20 -0
- data/lib/generated/azure_mgmt_insights/models/condition_operator.rb +18 -0
- data/lib/generated/azure_mgmt_insights/models/email_notification.rb +73 -0
- data/lib/generated/azure_mgmt_insights/models/incident.rb +92 -0
- data/lib/generated/azure_mgmt_insights/models/incident_list_result.rb +52 -0
- data/lib/generated/azure_mgmt_insights/models/location_threshold_rule_condition.rb +85 -0
- data/lib/generated/azure_mgmt_insights/models/log_profile_collection.rb +52 -0
- data/lib/generated/azure_mgmt_insights/models/log_profile_create_or_update_parameters.rb +99 -0
- data/lib/generated/azure_mgmt_insights/models/log_profile_resource.rb +143 -0
- data/lib/generated/azure_mgmt_insights/models/log_settings.rb +66 -0
- data/lib/generated/azure_mgmt_insights/models/management_event_aggregation_condition.rb +69 -0
- data/lib/generated/azure_mgmt_insights/models/management_event_rule_condition.rb +74 -0
- data/lib/generated/azure_mgmt_insights/models/metric_settings.rb +66 -0
- data/lib/generated/azure_mgmt_insights/models/metric_statistic_type.rb +18 -0
- data/lib/generated/azure_mgmt_insights/models/metric_trigger.rb +133 -0
- data/lib/generated/azure_mgmt_insights/models/recurrence.rb +61 -0
- data/lib/generated/azure_mgmt_insights/models/recurrence_frequency.rb +22 -0
- data/lib/generated/azure_mgmt_insights/models/recurrent_schedule.rb +101 -0
- data/lib/generated/azure_mgmt_insights/models/retention_policy.rb +55 -0
- data/lib/generated/azure_mgmt_insights/models/rule_action.rb +47 -0
- data/lib/generated/azure_mgmt_insights/models/rule_condition.rb +47 -0
- data/lib/generated/azure_mgmt_insights/models/rule_data_source.rb +46 -0
- data/lib/generated/azure_mgmt_insights/models/rule_email_action.rb +78 -0
- data/lib/generated/azure_mgmt_insights/models/rule_management_event_claims_data_source.rb +44 -0
- data/lib/generated/azure_mgmt_insights/models/rule_management_event_data_source.rb +151 -0
- data/lib/generated/azure_mgmt_insights/models/rule_metric_data_source.rb +70 -0
- data/lib/generated/azure_mgmt_insights/models/rule_webhook_action.rb +77 -0
- data/lib/generated/azure_mgmt_insights/models/scale_action.rb +85 -0
- data/lib/generated/azure_mgmt_insights/models/scale_capacity.rb +67 -0
- data/lib/generated/azure_mgmt_insights/models/scale_direction.rb +17 -0
- data/lib/generated/azure_mgmt_insights/models/scale_rule.rb +57 -0
- data/lib/generated/azure_mgmt_insights/models/service_diagnostic_settings_create_or_update_parameters.rb +101 -0
- data/lib/generated/azure_mgmt_insights/models/service_diagnostic_settings_resource.rb +144 -0
- data/lib/generated/azure_mgmt_insights/models/threshold_rule_condition.rb +111 -0
- data/lib/generated/azure_mgmt_insights/models/time_aggregation_operator.rb +19 -0
- data/lib/generated/azure_mgmt_insights/models/time_aggregation_type.rb +19 -0
- data/lib/generated/azure_mgmt_insights/models/time_window.rb +67 -0
- data/lib/generated/azure_mgmt_insights/models/webhook_notification.rb +61 -0
- data/lib/generated/azure_mgmt_insights/module_definition.rb +8 -0
- data/lib/generated/azure_mgmt_insights/service_diagnostic_settings_operations.rb +216 -0
- data/lib/generated/azure_mgmt_insights/version.rb +8 -0
- metadata +169 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# The action that is performed when the alert rule becomes active, and when
|
10
|
+
# an alert condition is resolved.
|
11
|
+
#
|
12
|
+
class RuleAction
|
13
|
+
|
14
|
+
include MsRestAzure
|
15
|
+
|
16
|
+
@@discriminatorMap = Hash.new
|
17
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.RuleEmailAction"] = "RuleEmailAction"
|
18
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.RuleWebhookAction"] = "RuleWebhookAction"
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@odata.type = "RuleAction"
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_accessor :odata.type
|
25
|
+
|
26
|
+
|
27
|
+
#
|
28
|
+
# Mapper for RuleAction class as Ruby Hash.
|
29
|
+
# This will be used for serialization/deserialization.
|
30
|
+
#
|
31
|
+
def self.mapper()
|
32
|
+
{
|
33
|
+
required: false,
|
34
|
+
serialized_name: 'RuleAction',
|
35
|
+
type: {
|
36
|
+
name: 'Composite',
|
37
|
+
polymorphic_discriminator: 'odata.type',
|
38
|
+
uber_parent: 'RuleAction',
|
39
|
+
class_name: 'RuleAction',
|
40
|
+
model_properties: {
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# The condition that results in the alert rule being activated.
|
10
|
+
#
|
11
|
+
class RuleCondition
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
@@discriminatorMap = Hash.new
|
16
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.ThresholdRuleCondition"] = "ThresholdRuleCondition"
|
17
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.LocationThresholdRuleCondition"] = "LocationThresholdRuleCondition"
|
18
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.ManagementEventRuleCondition"] = "ManagementEventRuleCondition"
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@odata.type = "RuleCondition"
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_accessor :odata.type
|
25
|
+
|
26
|
+
|
27
|
+
#
|
28
|
+
# Mapper for RuleCondition class as Ruby Hash.
|
29
|
+
# This will be used for serialization/deserialization.
|
30
|
+
#
|
31
|
+
def self.mapper()
|
32
|
+
{
|
33
|
+
required: false,
|
34
|
+
serialized_name: 'RuleCondition',
|
35
|
+
type: {
|
36
|
+
name: 'Composite',
|
37
|
+
polymorphic_discriminator: 'odata.type',
|
38
|
+
uber_parent: 'RuleCondition',
|
39
|
+
class_name: 'RuleCondition',
|
40
|
+
model_properties: {
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# The resource from which the rule collects its data.
|
10
|
+
#
|
11
|
+
class RuleDataSource
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
@@discriminatorMap = Hash.new
|
16
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource"] = "RuleMetricDataSource"
|
17
|
+
@@discriminatorMap["Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource"] = "RuleManagementEventDataSource"
|
18
|
+
|
19
|
+
def initialize
|
20
|
+
@odata.type = "RuleDataSource"
|
21
|
+
end
|
22
|
+
|
23
|
+
attr_accessor :odata.type
|
24
|
+
|
25
|
+
|
26
|
+
#
|
27
|
+
# Mapper for RuleDataSource class as Ruby Hash.
|
28
|
+
# This will be used for serialization/deserialization.
|
29
|
+
#
|
30
|
+
def self.mapper()
|
31
|
+
{
|
32
|
+
required: false,
|
33
|
+
serialized_name: 'RuleDataSource',
|
34
|
+
type: {
|
35
|
+
name: 'Composite',
|
36
|
+
polymorphic_discriminator: 'odata.type',
|
37
|
+
uber_parent: 'RuleDataSource',
|
38
|
+
class_name: 'RuleDataSource',
|
39
|
+
model_properties: {
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# Specifies the action to send email when the rule condition is evaluated.
|
10
|
+
#
|
11
|
+
class RuleEmailAction < RuleAction
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@odata.type = "Microsoft.Azure.Management.Insights.Models.RuleEmailAction"
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_accessor :odata.type
|
21
|
+
|
22
|
+
# @return [Boolean] the flag to send e-mails to the service owners.
|
23
|
+
# Whether the administrators (service and co-adiminstrators) of the
|
24
|
+
# service should be notified when the alert is activated.
|
25
|
+
attr_accessor :send_to_service_owners
|
26
|
+
|
27
|
+
# @return [Array<String>] the list of administrator's custom email
|
28
|
+
# addresses notifiy of the activation of the alert.
|
29
|
+
attr_accessor :custom_emails
|
30
|
+
|
31
|
+
|
32
|
+
#
|
33
|
+
# Mapper for RuleEmailAction class as Ruby Hash.
|
34
|
+
# This will be used for serialization/deserialization.
|
35
|
+
#
|
36
|
+
def self.mapper()
|
37
|
+
{
|
38
|
+
required: false,
|
39
|
+
serialized_name: 'Microsoft.Azure.Management.Insights.Models.RuleEmailAction',
|
40
|
+
type: {
|
41
|
+
name: 'Composite',
|
42
|
+
class_name: 'RuleEmailAction',
|
43
|
+
model_properties: {
|
44
|
+
odata.type: {
|
45
|
+
required: true,
|
46
|
+
serialized_name: 'odata.type',
|
47
|
+
type: {
|
48
|
+
name: 'String'
|
49
|
+
}
|
50
|
+
},
|
51
|
+
send_to_service_owners: {
|
52
|
+
required: false,
|
53
|
+
serialized_name: 'sendToServiceOwners',
|
54
|
+
type: {
|
55
|
+
name: 'Boolean'
|
56
|
+
}
|
57
|
+
},
|
58
|
+
custom_emails: {
|
59
|
+
required: false,
|
60
|
+
serialized_name: 'customEmails',
|
61
|
+
type: {
|
62
|
+
name: 'Sequence',
|
63
|
+
element: {
|
64
|
+
required: false,
|
65
|
+
serialized_name: 'StringElementType',
|
66
|
+
type: {
|
67
|
+
name: 'String'
|
68
|
+
}
|
69
|
+
}
|
70
|
+
}
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# The claims for a rule management event data source.
|
10
|
+
#
|
11
|
+
class RuleManagementEventClaimsDataSource
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
# @return [String] the email address.
|
16
|
+
attr_accessor :email_address
|
17
|
+
|
18
|
+
|
19
|
+
#
|
20
|
+
# Mapper for RuleManagementEventClaimsDataSource class as Ruby Hash.
|
21
|
+
# This will be used for serialization/deserialization.
|
22
|
+
#
|
23
|
+
def self.mapper()
|
24
|
+
{
|
25
|
+
required: false,
|
26
|
+
serialized_name: 'RuleManagementEventClaimsDataSource',
|
27
|
+
type: {
|
28
|
+
name: 'Composite',
|
29
|
+
class_name: 'RuleManagementEventClaimsDataSource',
|
30
|
+
model_properties: {
|
31
|
+
email_address: {
|
32
|
+
required: false,
|
33
|
+
serialized_name: 'emailAddress',
|
34
|
+
type: {
|
35
|
+
name: 'String'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,151 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# A rule management event data source.
|
10
|
+
#
|
11
|
+
class RuleManagementEventDataSource < RuleDataSource
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@odata.type = "Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource"
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_accessor :odata.type
|
21
|
+
|
22
|
+
# @return [String] the event name.
|
23
|
+
attr_accessor :event_name
|
24
|
+
|
25
|
+
# @return [String] the event source.
|
26
|
+
attr_accessor :event_source
|
27
|
+
|
28
|
+
# @return [String] the level.
|
29
|
+
attr_accessor :level
|
30
|
+
|
31
|
+
# @return [String] The name of the operation that should be checked for.
|
32
|
+
# If no name is provided, any operation will match.
|
33
|
+
attr_accessor :operation_name
|
34
|
+
|
35
|
+
# @return [String] the resource group name.
|
36
|
+
attr_accessor :resource_group_name
|
37
|
+
|
38
|
+
# @return [String] the resource provider name.
|
39
|
+
attr_accessor :resource_provider_name
|
40
|
+
|
41
|
+
# @return [String] the resource uri.
|
42
|
+
attr_accessor :resource_uri
|
43
|
+
|
44
|
+
# @return [String] The status of the operation that should be checked
|
45
|
+
# for. If no status is provided, any status will match.
|
46
|
+
attr_accessor :status
|
47
|
+
|
48
|
+
# @return [String] the substatus.
|
49
|
+
attr_accessor :sub_status
|
50
|
+
|
51
|
+
# @return [RuleManagementEventClaimsDataSource] the claims.
|
52
|
+
attr_accessor :claims
|
53
|
+
|
54
|
+
|
55
|
+
#
|
56
|
+
# Mapper for RuleManagementEventDataSource class as Ruby Hash.
|
57
|
+
# This will be used for serialization/deserialization.
|
58
|
+
#
|
59
|
+
def self.mapper()
|
60
|
+
{
|
61
|
+
required: false,
|
62
|
+
serialized_name: 'Microsoft.Azure.Management.Insights.Models.RuleManagementEventDataSource',
|
63
|
+
type: {
|
64
|
+
name: 'Composite',
|
65
|
+
class_name: 'RuleManagementEventDataSource',
|
66
|
+
model_properties: {
|
67
|
+
odata.type: {
|
68
|
+
required: true,
|
69
|
+
serialized_name: 'odata.type',
|
70
|
+
type: {
|
71
|
+
name: 'String'
|
72
|
+
}
|
73
|
+
},
|
74
|
+
event_name: {
|
75
|
+
required: false,
|
76
|
+
serialized_name: 'eventName',
|
77
|
+
type: {
|
78
|
+
name: 'String'
|
79
|
+
}
|
80
|
+
},
|
81
|
+
event_source: {
|
82
|
+
required: false,
|
83
|
+
serialized_name: 'eventSource',
|
84
|
+
type: {
|
85
|
+
name: 'String'
|
86
|
+
}
|
87
|
+
},
|
88
|
+
level: {
|
89
|
+
required: false,
|
90
|
+
serialized_name: 'level',
|
91
|
+
type: {
|
92
|
+
name: 'String'
|
93
|
+
}
|
94
|
+
},
|
95
|
+
operation_name: {
|
96
|
+
required: false,
|
97
|
+
serialized_name: 'operationName',
|
98
|
+
type: {
|
99
|
+
name: 'String'
|
100
|
+
}
|
101
|
+
},
|
102
|
+
resource_group_name: {
|
103
|
+
required: false,
|
104
|
+
serialized_name: 'resourceGroupName',
|
105
|
+
type: {
|
106
|
+
name: 'String'
|
107
|
+
}
|
108
|
+
},
|
109
|
+
resource_provider_name: {
|
110
|
+
required: false,
|
111
|
+
serialized_name: 'resourceProviderName',
|
112
|
+
type: {
|
113
|
+
name: 'String'
|
114
|
+
}
|
115
|
+
},
|
116
|
+
resource_uri: {
|
117
|
+
required: false,
|
118
|
+
serialized_name: 'resourceUri',
|
119
|
+
type: {
|
120
|
+
name: 'String'
|
121
|
+
}
|
122
|
+
},
|
123
|
+
status: {
|
124
|
+
required: false,
|
125
|
+
serialized_name: 'status',
|
126
|
+
type: {
|
127
|
+
name: 'String'
|
128
|
+
}
|
129
|
+
},
|
130
|
+
sub_status: {
|
131
|
+
required: false,
|
132
|
+
serialized_name: 'subStatus',
|
133
|
+
type: {
|
134
|
+
name: 'String'
|
135
|
+
}
|
136
|
+
},
|
137
|
+
claims: {
|
138
|
+
required: false,
|
139
|
+
serialized_name: 'claims',
|
140
|
+
type: {
|
141
|
+
name: 'Composite',
|
142
|
+
class_name: 'RuleManagementEventClaimsDataSource'
|
143
|
+
}
|
144
|
+
}
|
145
|
+
}
|
146
|
+
}
|
147
|
+
}
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# Code generated by Microsoft (R) AutoRest Code Generator 1.0.0.0
|
3
|
+
# Changes may cause incorrect behavior and will be lost if the code is
|
4
|
+
# regenerated.
|
5
|
+
|
6
|
+
module Azure::ARM::Insights
|
7
|
+
module Models
|
8
|
+
#
|
9
|
+
# A rule metric data source.
|
10
|
+
#
|
11
|
+
class RuleMetricDataSource < RuleDataSource
|
12
|
+
|
13
|
+
include MsRestAzure
|
14
|
+
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
@odata.type = "Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource"
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_accessor :odata.type
|
21
|
+
|
22
|
+
# @return [String] the resource identifier of the resource the rule
|
23
|
+
# monitors.
|
24
|
+
attr_accessor :resource_uri
|
25
|
+
|
26
|
+
# @return [String] the name of the metric that defines what the rule
|
27
|
+
# monitors.
|
28
|
+
attr_accessor :metric_name
|
29
|
+
|
30
|
+
|
31
|
+
#
|
32
|
+
# Mapper for RuleMetricDataSource class as Ruby Hash.
|
33
|
+
# This will be used for serialization/deserialization.
|
34
|
+
#
|
35
|
+
def self.mapper()
|
36
|
+
{
|
37
|
+
required: false,
|
38
|
+
serialized_name: 'Microsoft.Azure.Management.Insights.Models.RuleMetricDataSource',
|
39
|
+
type: {
|
40
|
+
name: 'Composite',
|
41
|
+
class_name: 'RuleMetricDataSource',
|
42
|
+
model_properties: {
|
43
|
+
odata.type: {
|
44
|
+
required: true,
|
45
|
+
serialized_name: 'odata.type',
|
46
|
+
type: {
|
47
|
+
name: 'String'
|
48
|
+
}
|
49
|
+
},
|
50
|
+
resource_uri: {
|
51
|
+
required: false,
|
52
|
+
serialized_name: 'resourceUri',
|
53
|
+
type: {
|
54
|
+
name: 'String'
|
55
|
+
}
|
56
|
+
},
|
57
|
+
metric_name: {
|
58
|
+
required: false,
|
59
|
+
serialized_name: 'metricName',
|
60
|
+
type: {
|
61
|
+
name: 'String'
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
|
+
}
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|