azure_mgmt_mobile_engagement 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/LICENSE.txt +21 -0
  4. data/Rakefile +5 -0
  5. data/azure_mgmt_mobile_engagement.gemspec +34 -0
  6. data/lib/azure_mgmt_mobile_engagement.rb +5 -0
  7. data/lib/generated/azure_mgmt_mobile_engagement.rb +122 -0
  8. data/lib/generated/azure_mgmt_mobile_engagement/app_collections.rb +321 -0
  9. data/lib/generated/azure_mgmt_mobile_engagement/apps.rb +223 -0
  10. data/lib/generated/azure_mgmt_mobile_engagement/campaigns.rb +1591 -0
  11. data/lib/generated/azure_mgmt_mobile_engagement/devices.rb +798 -0
  12. data/lib/generated/azure_mgmt_mobile_engagement/engagement_management_client.rb +101 -0
  13. data/lib/generated/azure_mgmt_mobile_engagement/export_tasks.rb +1406 -0
  14. data/lib/generated/azure_mgmt_mobile_engagement/import_tasks.rb +501 -0
  15. data/lib/generated/azure_mgmt_mobile_engagement/models/announcement_feedback_criterion.rb +70 -0
  16. data/lib/generated/azure_mgmt_mobile_engagement/models/api_error.rb +45 -0
  17. data/lib/generated/azure_mgmt_mobile_engagement/models/api_error_error.rb +54 -0
  18. data/lib/generated/azure_mgmt_mobile_engagement/models/app.rb +109 -0
  19. data/lib/generated/azure_mgmt_mobile_engagement/models/app_collection.rb +90 -0
  20. data/lib/generated/azure_mgmt_mobile_engagement/models/app_collection_list_result.rb +96 -0
  21. data/lib/generated/azure_mgmt_mobile_engagement/models/app_collection_name_availability.rb +64 -0
  22. data/lib/generated/azure_mgmt_mobile_engagement/models/app_info_filter.rb +68 -0
  23. data/lib/generated/azure_mgmt_mobile_engagement/models/app_list_result.rb +95 -0
  24. data/lib/generated/azure_mgmt_mobile_engagement/models/application_version_criterion.rb +59 -0
  25. data/lib/generated/azure_mgmt_mobile_engagement/models/audience_operators.rb +19 -0
  26. data/lib/generated/azure_mgmt_mobile_engagement/models/boolean_tag_criterion.rb +68 -0
  27. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign.rb +420 -0
  28. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_audience.rb +92 -0
  29. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_feedbacks.rb +18 -0
  30. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_kinds.rb +18 -0
  31. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_list_result.rb +121 -0
  32. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_localization.rb +169 -0
  33. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_push_parameters.rb +75 -0
  34. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_push_result.rb +57 -0
  35. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_result.rb +338 -0
  36. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_state.rb +46 -0
  37. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_state_result.rb +51 -0
  38. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_states.rb +19 -0
  39. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_statistics_result.rb +233 -0
  40. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_test_new_parameters.rb +59 -0
  41. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_test_saved_parameters.rb +56 -0
  42. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_type.rb +18 -0
  43. data/lib/generated/azure_mgmt_mobile_engagement/models/campaign_types.rb +18 -0
  44. data/lib/generated/azure_mgmt_mobile_engagement/models/campaigns_list_result.rb +95 -0
  45. data/lib/generated/azure_mgmt_mobile_engagement/models/carrier_country_criterion.rb +58 -0
  46. data/lib/generated/azure_mgmt_mobile_engagement/models/carrier_name_criterion.rb +58 -0
  47. data/lib/generated/azure_mgmt_mobile_engagement/models/criterion.rb +64 -0
  48. data/lib/generated/azure_mgmt_mobile_engagement/models/datapush_feedback_criterion.rb +71 -0
  49. data/lib/generated/azure_mgmt_mobile_engagement/models/date_range_export_task_parameter.rb +88 -0
  50. data/lib/generated/azure_mgmt_mobile_engagement/models/date_tag_criterion.rb +83 -0
  51. data/lib/generated/azure_mgmt_mobile_engagement/models/delivery_times.rb +17 -0
  52. data/lib/generated/azure_mgmt_mobile_engagement/models/device.rb +96 -0
  53. data/lib/generated/azure_mgmt_mobile_engagement/models/device_info.rb +175 -0
  54. data/lib/generated/azure_mgmt_mobile_engagement/models/device_location.rb +66 -0
  55. data/lib/generated/azure_mgmt_mobile_engagement/models/device_manufacturer_criterion.rb +58 -0
  56. data/lib/generated/azure_mgmt_mobile_engagement/models/device_meta.rb +96 -0
  57. data/lib/generated/azure_mgmt_mobile_engagement/models/device_model_criterion.rb +58 -0
  58. data/lib/generated/azure_mgmt_mobile_engagement/models/device_query_result.rb +73 -0
  59. data/lib/generated/azure_mgmt_mobile_engagement/models/device_tags_parameters.rb +73 -0
  60. data/lib/generated/azure_mgmt_mobile_engagement/models/device_tags_result.rb +55 -0
  61. data/lib/generated/azure_mgmt_mobile_engagement/models/devices_query_result.rb +94 -0
  62. data/lib/generated/azure_mgmt_mobile_engagement/models/engage_active_users_filter.rb +59 -0
  63. data/lib/generated/azure_mgmt_mobile_engagement/models/engage_idle_users_filter.rb +59 -0
  64. data/lib/generated/azure_mgmt_mobile_engagement/models/engage_new_users_filter.rb +59 -0
  65. data/lib/generated/azure_mgmt_mobile_engagement/models/engage_old_users_filter.rb +59 -0
  66. data/lib/generated/azure_mgmt_mobile_engagement/models/engage_subset_filter.rb +59 -0
  67. data/lib/generated/azure_mgmt_mobile_engagement/models/export_format.rb +16 -0
  68. data/lib/generated/azure_mgmt_mobile_engagement/models/export_options.rb +44 -0
  69. data/lib/generated/azure_mgmt_mobile_engagement/models/export_state.rb +18 -0
  70. data/lib/generated/azure_mgmt_mobile_engagement/models/export_task_list_result.rb +95 -0
  71. data/lib/generated/azure_mgmt_mobile_engagement/models/export_task_parameter.rb +66 -0
  72. data/lib/generated/azure_mgmt_mobile_engagement/models/export_task_result.rb +109 -0
  73. data/lib/generated/azure_mgmt_mobile_engagement/models/export_type.rb +23 -0
  74. data/lib/generated/azure_mgmt_mobile_engagement/models/feedback_by_campaign_parameter.rb +98 -0
  75. data/lib/generated/azure_mgmt_mobile_engagement/models/feedback_by_date_range_parameter.rb +100 -0
  76. data/lib/generated/azure_mgmt_mobile_engagement/models/filter.rb +52 -0
  77. data/lib/generated/azure_mgmt_mobile_engagement/models/firmware_version_criterion.rb +58 -0
  78. data/lib/generated/azure_mgmt_mobile_engagement/models/geo_fencing_criterion.rb +93 -0
  79. data/lib/generated/azure_mgmt_mobile_engagement/models/import_task.rb +45 -0
  80. data/lib/generated/azure_mgmt_mobile_engagement/models/import_task_list_result.rb +95 -0
  81. data/lib/generated/azure_mgmt_mobile_engagement/models/import_task_result.rb +98 -0
  82. data/lib/generated/azure_mgmt_mobile_engagement/models/integer_tag_criterion.rb +81 -0
  83. data/lib/generated/azure_mgmt_mobile_engagement/models/job_states.rb +18 -0
  84. data/lib/generated/azure_mgmt_mobile_engagement/models/language_criterion.rb +58 -0
  85. data/lib/generated/azure_mgmt_mobile_engagement/models/location_criterion.rb +81 -0
  86. data/lib/generated/azure_mgmt_mobile_engagement/models/native_push_enabled_filter.rb +48 -0
  87. data/lib/generated/azure_mgmt_mobile_engagement/models/network_type_criterion.rb +58 -0
  88. data/lib/generated/azure_mgmt_mobile_engagement/models/notification_options.rb +106 -0
  89. data/lib/generated/azure_mgmt_mobile_engagement/models/notification_types.rb +16 -0
  90. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_answer_feedback_criterion.rb +68 -0
  91. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_feedback_criterion.rb +69 -0
  92. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_question.rb +95 -0
  93. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_question_choice.rb +89 -0
  94. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_question_choice_localization.rb +47 -0
  95. data/lib/generated/azure_mgmt_mobile_engagement/models/poll_question_localization.rb +47 -0
  96. data/lib/generated/azure_mgmt_mobile_engagement/models/provisioning_states.rb +16 -0
  97. data/lib/generated/azure_mgmt_mobile_engagement/models/push_modes.rb +17 -0
  98. data/lib/generated/azure_mgmt_mobile_engagement/models/push_quota_filter.rb +48 -0
  99. data/lib/generated/azure_mgmt_mobile_engagement/models/screen_size_criterion.rb +59 -0
  100. data/lib/generated/azure_mgmt_mobile_engagement/models/segment_criterion.rb +69 -0
  101. data/lib/generated/azure_mgmt_mobile_engagement/models/string_tag_criterion.rb +69 -0
  102. data/lib/generated/azure_mgmt_mobile_engagement/models/supported_platforms_list_result.rb +51 -0
  103. data/lib/generated/azure_mgmt_mobile_engagement/module_definition.rb +8 -0
  104. data/lib/generated/azure_mgmt_mobile_engagement/supported_platforms.rb +112 -0
  105. data/lib/generated/azure_mgmt_mobile_engagement/version.rb +8 -0
  106. metadata +218 -0
@@ -0,0 +1,96 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::MobileEngagement
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ class Device
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] The device result.
16
+ attr_accessor :device_id
17
+
18
+ # @return [DeviceMeta] Application usage data.
19
+ attr_accessor :meta
20
+
21
+ # @return [DeviceInfo] Last technical data received (concerning device,
22
+ # system, network and application identification).
23
+ attr_accessor :info
24
+
25
+ # @return [DeviceLocation] Last geo-location data received.
26
+ attr_accessor :location
27
+
28
+ # @return [Hash{String => String}] Also known as tags, a key-value set
29
+ # as a JSON object.
30
+ attr_accessor :app_info
31
+
32
+
33
+ #
34
+ # Mapper for Device class as Ruby Hash.
35
+ # This will be used for serialization/deserialization.
36
+ #
37
+ def self.mapper()
38
+ {
39
+ required: false,
40
+ serialized_name: 'Device',
41
+ type: {
42
+ name: 'Composite',
43
+ class_name: 'Device',
44
+ model_properties: {
45
+ device_id: {
46
+ required: true,
47
+ serialized_name: 'deviceId',
48
+ type: {
49
+ name: 'String'
50
+ }
51
+ },
52
+ meta: {
53
+ required: false,
54
+ serialized_name: 'meta',
55
+ type: {
56
+ name: 'Composite',
57
+ class_name: 'DeviceMeta'
58
+ }
59
+ },
60
+ info: {
61
+ required: false,
62
+ serialized_name: 'info',
63
+ type: {
64
+ name: 'Composite',
65
+ class_name: 'DeviceInfo'
66
+ }
67
+ },
68
+ location: {
69
+ required: false,
70
+ serialized_name: 'location',
71
+ type: {
72
+ name: 'Composite',
73
+ class_name: 'DeviceLocation'
74
+ }
75
+ },
76
+ app_info: {
77
+ required: false,
78
+ serialized_name: 'appInfo',
79
+ type: {
80
+ name: 'Dictionary',
81
+ value: {
82
+ required: false,
83
+ serialized_name: 'StringElementType',
84
+ type: {
85
+ name: 'String'
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,175 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::MobileEngagement
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ class DeviceInfo
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Phone model.
16
+ attr_accessor :phone_model
17
+
18
+ # @return [String] Phone manufacturer
19
+ attr_accessor :phone_manufacturer
20
+
21
+ # @return [String] Firmware version.
22
+ attr_accessor :firmware_version
23
+
24
+ # @return [String] Firmware name.
25
+ attr_accessor :firmware_name
26
+
27
+ # @return [Integer] Android API level.
28
+ attr_accessor :android_apilevel
29
+
30
+ # @return [String] Carrier country.
31
+ attr_accessor :carrier_country
32
+
33
+ # @return [String] Locale code.
34
+ attr_accessor :locale
35
+
36
+ # @return [String] Carrier name.
37
+ attr_accessor :carrier_name
38
+
39
+ # @return [String] Network type.
40
+ attr_accessor :network_type
41
+
42
+ # @return [String] Network sub-type.
43
+ attr_accessor :network_subtype
44
+
45
+ # @return [String] Application version name.
46
+ attr_accessor :application_version_name
47
+
48
+ # @return [Integer] Application version code.
49
+ attr_accessor :application_version_code
50
+
51
+ # @return [Integer] The offset in minutes from UTC for the device time
52
+ # zone, including daylight savings time.
53
+ attr_accessor :time_zone_offset
54
+
55
+ # @return [String] SDK version.
56
+ attr_accessor :service_version
57
+
58
+
59
+ #
60
+ # Mapper for DeviceInfo class as Ruby Hash.
61
+ # This will be used for serialization/deserialization.
62
+ #
63
+ def self.mapper()
64
+ {
65
+ required: false,
66
+ serialized_name: 'DeviceInfo',
67
+ type: {
68
+ name: 'Composite',
69
+ class_name: 'DeviceInfo',
70
+ model_properties: {
71
+ phone_model: {
72
+ required: false,
73
+ serialized_name: 'phoneModel',
74
+ type: {
75
+ name: 'String'
76
+ }
77
+ },
78
+ phone_manufacturer: {
79
+ required: false,
80
+ serialized_name: 'phoneManufacturer',
81
+ type: {
82
+ name: 'String'
83
+ }
84
+ },
85
+ firmware_version: {
86
+ required: false,
87
+ serialized_name: 'firmwareVersion',
88
+ type: {
89
+ name: 'String'
90
+ }
91
+ },
92
+ firmware_name: {
93
+ required: false,
94
+ serialized_name: 'firmwareName',
95
+ type: {
96
+ name: 'String'
97
+ }
98
+ },
99
+ android_apilevel: {
100
+ required: false,
101
+ serialized_name: 'androidAPILevel',
102
+ type: {
103
+ name: 'Number'
104
+ }
105
+ },
106
+ carrier_country: {
107
+ required: false,
108
+ serialized_name: 'carrierCountry',
109
+ type: {
110
+ name: 'String'
111
+ }
112
+ },
113
+ locale: {
114
+ required: false,
115
+ serialized_name: 'locale',
116
+ type: {
117
+ name: 'String'
118
+ }
119
+ },
120
+ carrier_name: {
121
+ required: false,
122
+ serialized_name: 'carrierName',
123
+ type: {
124
+ name: 'String'
125
+ }
126
+ },
127
+ network_type: {
128
+ required: false,
129
+ serialized_name: 'networkType',
130
+ type: {
131
+ name: 'String'
132
+ }
133
+ },
134
+ network_subtype: {
135
+ required: false,
136
+ serialized_name: 'networkSubtype',
137
+ type: {
138
+ name: 'String'
139
+ }
140
+ },
141
+ application_version_name: {
142
+ required: false,
143
+ serialized_name: 'applicationVersionName',
144
+ type: {
145
+ name: 'String'
146
+ }
147
+ },
148
+ application_version_code: {
149
+ required: false,
150
+ serialized_name: 'applicationVersionCode',
151
+ type: {
152
+ name: 'Number'
153
+ }
154
+ },
155
+ time_zone_offset: {
156
+ required: false,
157
+ serialized_name: 'timeZoneOffset',
158
+ type: {
159
+ name: 'Number'
160
+ }
161
+ },
162
+ service_version: {
163
+ required: false,
164
+ serialized_name: 'serviceVersion',
165
+ type: {
166
+ name: 'String'
167
+ }
168
+ }
169
+ }
170
+ }
171
+ }
172
+ end
173
+ end
174
+ end
175
+ end
@@ -0,0 +1,66 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::MobileEngagement
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ class DeviceLocation
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] The ISO 3166 two-letter country code.
16
+ attr_accessor :countrycode
17
+
18
+ # @return [String] An administrative region of the nation, such as a
19
+ # state or province.
20
+ attr_accessor :region
21
+
22
+ # @return [String] A locality within the administrative region, such as
23
+ # a town or city.
24
+ attr_accessor :locality
25
+
26
+
27
+ #
28
+ # Mapper for DeviceLocation class as Ruby Hash.
29
+ # This will be used for serialization/deserialization.
30
+ #
31
+ def self.mapper()
32
+ {
33
+ required: false,
34
+ serialized_name: 'DeviceLocation',
35
+ type: {
36
+ name: 'Composite',
37
+ class_name: 'DeviceLocation',
38
+ model_properties: {
39
+ countrycode: {
40
+ required: false,
41
+ serialized_name: 'countrycode',
42
+ type: {
43
+ name: 'String'
44
+ }
45
+ },
46
+ region: {
47
+ required: false,
48
+ serialized_name: 'region',
49
+ type: {
50
+ name: 'String'
51
+ }
52
+ },
53
+ locality: {
54
+ required: false,
55
+ serialized_name: 'locality',
56
+ type: {
57
+ name: 'String'
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,58 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::MobileEngagement
7
+ module Models
8
+ #
9
+ # Used to target devices based on the device manufacturer.
10
+ #
11
+ class DeviceManufacturerCriterion < Criterion
12
+
13
+ include MsRestAzure
14
+
15
+
16
+ def initialize
17
+ @type = "device-manufacturer"
18
+ end
19
+
20
+ attr_accessor :type
21
+
22
+ # @return [String] The device manufacturer.
23
+ attr_accessor :name
24
+
25
+
26
+ #
27
+ # Mapper for DeviceManufacturerCriterion class as Ruby Hash.
28
+ # This will be used for serialization/deserialization.
29
+ #
30
+ def self.mapper()
31
+ {
32
+ required: false,
33
+ serialized_name: 'device-manufacturer',
34
+ type: {
35
+ name: 'Composite',
36
+ class_name: 'DeviceManufacturerCriterion',
37
+ model_properties: {
38
+ type: {
39
+ required: true,
40
+ serialized_name: 'type',
41
+ type: {
42
+ name: 'String'
43
+ }
44
+ },
45
+ name: {
46
+ required: false,
47
+ serialized_name: 'name',
48
+ type: {
49
+ name: 'String'
50
+ }
51
+ }
52
+ }
53
+ }
54
+ }
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,96 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::ARM::MobileEngagement
7
+ module Models
8
+ #
9
+ # Model object.
10
+ #
11
+ class DeviceMeta
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Integer] First time the device used the application in
16
+ # milliseconds since January 1st, 1970 UTC.
17
+ attr_accessor :first_seen
18
+
19
+ # @return [Integer] Last time the device used the application in
20
+ # milliseconds since January 1st, 1970 UTC.
21
+ attr_accessor :last_seen
22
+
23
+ # @return [Integer] Timestamp corresponding to the info object in
24
+ # milliseconds since January 1st, 1970 UTC.
25
+ attr_accessor :last_info
26
+
27
+ # @return [Integer] Timestamp corresponding to the location object in
28
+ # milliseconds since January 1st, 1970 UTC.
29
+ attr_accessor :last_location
30
+
31
+ # @return [Boolean] Boolean indicating if native push notifications
32
+ # (like Android’s GCM or Apple’s APNS) are enabled for the application.
33
+ # This boolean is set to true when the application registers
34
+ # successfully to the native push service, and set to false when the
35
+ # native push service reports to Mobile Engagement that the application
36
+ # can no longer be pushed (which means that it has been uninstalled).
37
+ # This report is performed a few hours after Mobile Engagement has
38
+ # tried to perform a native push to a device on which the application
39
+ # has been uninstalled.
40
+ attr_accessor :native_push_enabled
41
+
42
+
43
+ #
44
+ # Mapper for DeviceMeta class as Ruby Hash.
45
+ # This will be used for serialization/deserialization.
46
+ #
47
+ def self.mapper()
48
+ {
49
+ required: false,
50
+ serialized_name: 'DeviceMeta',
51
+ type: {
52
+ name: 'Composite',
53
+ class_name: 'DeviceMeta',
54
+ model_properties: {
55
+ first_seen: {
56
+ required: false,
57
+ serialized_name: 'firstSeen',
58
+ type: {
59
+ name: 'Number'
60
+ }
61
+ },
62
+ last_seen: {
63
+ required: false,
64
+ serialized_name: 'lastSeen',
65
+ type: {
66
+ name: 'Number'
67
+ }
68
+ },
69
+ last_info: {
70
+ required: false,
71
+ serialized_name: 'lastInfo',
72
+ type: {
73
+ name: 'Number'
74
+ }
75
+ },
76
+ last_location: {
77
+ required: false,
78
+ serialized_name: 'lastLocation',
79
+ type: {
80
+ name: 'Number'
81
+ }
82
+ },
83
+ native_push_enabled: {
84
+ required: false,
85
+ serialized_name: 'nativePushEnabled',
86
+ type: {
87
+ name: 'Boolean'
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ end
94
+ end
95
+ end
96
+ end