ruby-macrodroid 0.9.16 → 0.9.21

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9789db9405136e821003060f52912072c11665303ab25a714c93d5dac058d8f
4
- data.tar.gz: 7878f4f2c52b3450e2485e5b993cfe275269e88e125da647f89ddf73610c504e
3
+ metadata.gz: 4d144e7f32f39b31ce40a38835232d55a38204b2539427c968362c4686e676a4
4
+ data.tar.gz: 38d60358f2bc2655424216ec0245206ddf5a5c736dd7ea6e0884dc62bcd764a5
5
5
  SHA512:
6
- metadata.gz: 6a2f574bc7692cba9cf2cc31228c5c4e6cd4aa78de0bb3a73c5e73c1458fd6cdc0798ac31aebd9e1833738ce700819257a02242c13ed2c5bc91f4e977d171e27
7
- data.tar.gz: ce58d73abe7f2583bd50a7c6fa0fda42c9aa2a0cf14b9fc370c066dad69fcb8263332f685da3f14aee447180fbfcd9cd5a25a59b81853748114e58e420c6f74c
6
+ metadata.gz: c4cc2a4a27158ada5bdc3db7c9c406e3a3307ad1f07089b25e070d571f4c81a1ba74f8a8389cc57d6c7ef82c4b51524e45457d532b0a1768affcc7ddd5119ee1
7
+ data.tar.gz: 69be2ef6fe08ad6b37ba57d74f80f8c787ee3cc2b9bb0ed31448df24bbb096c7e0e97f6701b2ff1d2f0b1b772382703aca90eaef36cad1c9539f4d9815437471
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -36,18 +36,24 @@ APPS = {
36
36
  'AutoBoy' => 'com.happyconz.blackbox',
37
37
  'Amazon Alexa' => 'com.amazon.dee.app',
38
38
  'Brave' => 'com.brave.browser',
39
- 'Camera' => 'com.google.android.camera',
39
+ 'Camera' => 'com.mediatek.camera',
40
40
  'Cast to TV' => 'cast.video.screenmirroring.casttotv',
41
+ 'Calculator' => 'com.android.pri.calculator',
42
+ 'Calendar' => 'com.google.android.calendar',
43
+ 'Clock' => 'com.android.deskclock',
41
44
  'File Manager' => 'com.alphainventor.filemanager',
42
45
  'Firefox' => 'org.mozilla.firefox',
43
46
  'Google Chrome' => 'com.google.android.chrome',
47
+ 'Google Calendar' => 'com.google.android.calendar',
44
48
  'Chrome' => 'com.google.android.chrome',
49
+ 'Earth' => 'com.google.earth',
45
50
  'Google Home' => 'com.google.android.apps.chromecast.app',
46
51
  'Google Play Music' => 'com.google.android.music',
47
52
  'MacroDroid' => 'com.arlosoft.macrodroid',
48
53
  'QuickEdit Text Editor Pro' => 'com.rhmsoft.edit.pro',
49
54
  'QR & Barcode Reader' => 'com.teacapps.barcodescanner',
50
- 'Settings' => 'com.google.android.settings',
55
+ 'Settings' => 'com.android.settings',
56
+ 'Chrome' => 'com.google.android.street',
51
57
  'tinyCam PRO' => 'com.alexvas.dvr.pro',
52
58
  'Tor Browser' => 'org.torproject.torbrowser',
53
59
  'VLC' => 'org.videolan.vlc',
@@ -99,20 +105,29 @@ end
99
105
  class LaunchActivityAction < ApplicationAction
100
106
 
101
107
  def initialize(h={})
102
-
108
+
109
+ # option 0 is by application name, 1 is launch by package name
110
+ #
103
111
  options = {
104
112
  application_name: 'Chrome',
105
113
  package_to_launch: 'com.android.chrome',
106
114
  exclude_from_recents: false,
107
- start_new: false
115
+ start_new: false,
116
+ option: 0,
117
+ launch_by_package_name: ''
108
118
  }
109
119
 
110
120
  super(options.merge h)
121
+
122
+ @list = %w(option launchByPackageName)
111
123
 
112
124
  end
113
125
 
114
126
  def to_s(colour: false, indent: 0)
115
- 'Launch ' + @h[:application_name]
127
+ option = @h[:option] == 0 ? @h[:application_name] : \
128
+ @h[:launch_by_package_name]
129
+ @s = 'Launch ' + option
130
+ super()
116
131
  end
117
132
 
118
133
  end
@@ -143,13 +158,30 @@ end
143
158
  #
144
159
  class LaunchShortcutAction < ApplicationAction
145
160
 
146
- def initialize(h={})
161
+ def initialize(obj=nil)
162
+
163
+ puts 'obj: ' + obj.inspect
164
+ h = if obj.is_a? Hash then
165
+ obj
166
+ else
167
+ obj[2] || {}
168
+ end
147
169
 
170
+ if h[:shortcut] and h[:shortcut] =~ /Ask Alexa/i then
171
+ h = {
172
+ :app_name=>"Amazon Alexa", :intent_encoded=>"#Intent;action=com." +
173
+ "amazon.alexa.action.WIDGET_SHORTCUT;launchFlags=0x10000000;" +
174
+ "component=com.amazon.dee.app/.ui.voice.LaunchAlexaActivity;end",
175
+ :name=>"Ask Alexa"
176
+ }
177
+ end
148
178
  options = {
149
179
  :app_name=>"Amazon Alexa", :intent_encoded=>"", :name=>"Ask Alexa"
150
180
  }
151
181
 
152
182
  super(options.merge h)
183
+
184
+ #@list = %w(appName intentEncoded name)
153
185
 
154
186
  end
155
187
 
@@ -192,8 +224,12 @@ class OpenWebPageAction < ApplicationAction
192
224
 
193
225
  a.map do |node|
194
226
 
195
- if node.name == 'description' and node.text.to_s =~ /: / then
196
- node.text.to_s.split(/: +/,2).map(&:strip)
227
+ if node.name == 'description' then
228
+ if node.text.to_s =~ /: / then
229
+ node.text.to_s.split(/: +/,2).map(&:strip)
230
+ else
231
+ [:url, node.text.to_s]
232
+ end
197
233
  else
198
234
  [node.name.to_sym, node.text.to_s.strip]
199
235
  end
@@ -263,7 +299,8 @@ class OpenWebPageAction < ApplicationAction
263
299
  end
264
300
 
265
301
  def invoke()
266
- super(url: @h[:url_to_open])
302
+ serverside = @h[:serverside].to_s.downcase == 'true'
303
+ super(url_to_open: @h[:url_to_open], serverside: serverside)
267
304
  end
268
305
 
269
306
  def to_s(colour: false, indent: 0)
@@ -404,6 +441,61 @@ class TakePictureAction < CameraAction
404
441
  end
405
442
 
406
443
 
444
+ class TakeScreenshotAction < CameraAction
445
+
446
+ def initialize(obj=nil)
447
+
448
+ h = if obj.is_a? Hash then
449
+ obj
450
+ elsif obj.is_a? Array
451
+
452
+ e, macro = obj
453
+
454
+ a = [
455
+ 'Save to device',
456
+ 'Send via email',
457
+ 'Share via intent'
458
+ ]
459
+
460
+ s = e.text('item/description').to_s
461
+ index = a.map(&:downcase).index s.downcase
462
+
463
+ {option: index}
464
+
465
+ end
466
+
467
+ options = {
468
+ option: 0,
469
+ use_smtp_email: false,
470
+ mechanism_option: 0,
471
+ save_to_jpeg: false
472
+ }
473
+
474
+ super(options.merge h)
475
+
476
+ end
477
+
478
+ def to_s(colour: false, indent: 0)
479
+
480
+ @s = 'Take Screenshot' #+ @h.inspect
481
+
482
+ options = [
483
+ 'Save to device',
484
+ 'Send via email',
485
+ 'Share via intent'
486
+ ]
487
+
488
+ option = options[@h[:option]]
489
+
490
+ @s += "\n" + option
491
+ super()
492
+
493
+ end
494
+
495
+ alias to_summary to_s
496
+ end
497
+
498
+
407
499
  # Conditions/Loops
408
500
  #
409
501
  class IfConfirmedThenAction < Action
@@ -710,7 +802,7 @@ class SetAirplaneModeAction < ConnectivityAction
710
802
 
711
803
  state = ['On', 'Off', 'Toggle'][@h[:state]]
712
804
  @s = 'Airplane Mode ' + state
713
- super(colour: colour)
805
+ super()
714
806
 
715
807
  end
716
808
 
@@ -732,34 +824,20 @@ class SetWifiAction < ConnectivityAction
732
824
 
733
825
  end
734
826
 
735
- def to_s(colour: false, indent: 0)
736
- action = @h[:state] == 0 ? 'Enable' : 'Disable'
737
- action + ' Wifi'
827
+ def to_s(colour: false, indent: 0)
828
+
829
+ @s = if @h[:state] <= 2 then
830
+ state = %w(Enable Disable Toggle)[@h[:state]]
831
+ state + ' Wifi'
832
+ else
833
+ "Connected to Network\n%s" % @h[:ssid]
834
+ end
835
+
836
+ super()
738
837
  end
739
838
 
740
839
  end
741
840
 
742
- # Category: Connectivity
743
- #
744
- class SetBluetoothAction < ConnectivityAction
745
-
746
- def initialize(h={})
747
-
748
- options = {
749
- device_name: '',
750
- state: 0
751
- }
752
-
753
- super(options.merge h)
754
-
755
- end
756
-
757
- def to_s(colour: false, indent: 0)
758
- 'SetBluetoothAction ' + @h.inspect
759
- end
760
-
761
- alias to_summary to_s
762
- end
763
841
 
764
842
  # Category: Connectivity
765
843
  #
@@ -768,6 +846,8 @@ class SetBluetoothAction < ConnectivityAction
768
846
  def initialize(h={})
769
847
 
770
848
  options = {
849
+
850
+ device_address: '',
771
851
  device_name: '',
772
852
  state: 1
773
853
  }
@@ -777,7 +857,21 @@ class SetBluetoothAction < ConnectivityAction
777
857
  end
778
858
 
779
859
  def to_s(colour: false, indent: 0)
780
- 'SetBluetoothAction ' + @h.inspect
860
+
861
+ @s = if @h[:state] <= 2 then
862
+
863
+ state = %w(Enable Disable Toggle)[@h[:state]]
864
+ state + ' Bluetooth'
865
+
866
+ else
867
+
868
+ state = @h[:state] == 3 ? 'Connect' : 'Disconnect'
869
+ state + ' Audio Device' + "\n" + @h[:device_name]
870
+
871
+ end
872
+
873
+ super()
874
+
781
875
  end
782
876
 
783
877
  alias to_summary to_s
@@ -1084,7 +1178,7 @@ class UIInteractionAction < DeviceAction
1084
1178
  e, macro = obj
1085
1179
  s = e.text('item/description').to_s
1086
1180
 
1087
- r = s.match(/^(Click|Long Click) \[([^\]]+)/)
1181
+ r = s.match(/^(Click|Long Click) \[(.*)\]$/)
1088
1182
 
1089
1183
  # [Current focus] # Current focus
1090
1184
  # [0,0] # x,y location
@@ -1092,10 +1186,11 @@ class UIInteractionAction < DeviceAction
1092
1186
  # [fooo] # Text content
1093
1187
 
1094
1188
  h = {
1095
- ui_interaction_configuration: {}, :xy_point=>{:x=>0, :y=>0},
1096
- :type=>"Click"
1189
+ ui_interaction_configuration: {
1190
+ :xy_point=>{:x=>0, :y=>0},
1191
+ :type=>"Click"}
1097
1192
  }
1098
- h2 = {}
1193
+ h2 = h[:ui_interaction_configuration]
1099
1194
 
1100
1195
  if r then
1101
1196
 
@@ -1105,7 +1200,7 @@ class UIInteractionAction < DeviceAction
1105
1200
  h2[:long_click] = false if click.downcase.to_sym == :click
1106
1201
 
1107
1202
  if detail == 'Current focus' then
1108
- h2[:click_option] = 1
1203
+ h2[:click_option] = 0
1109
1204
  elsif detail =~ /\d+,\d+/
1110
1205
  # to-do
1111
1206
  else
@@ -1114,7 +1209,7 @@ class UIInteractionAction < DeviceAction
1114
1209
  h2[:text_content] = detail
1115
1210
  end
1116
1211
 
1117
- h[:ui_interaction_configuration] = h2
1212
+ #h[:ui_interaction_configuration] = h2
1118
1213
  end
1119
1214
 
1120
1215
  end
@@ -1126,6 +1221,8 @@ class UIInteractionAction < DeviceAction
1126
1221
 
1127
1222
 
1128
1223
  super(options.merge h)
1224
+
1225
+ @list = %w(uiInteractionConfiguration action xyPoint textContent clickOption type longClick)
1129
1226
 
1130
1227
  end
1131
1228
 
@@ -1165,7 +1262,8 @@ class UIInteractionAction < DeviceAction
1165
1262
  "Gesture [%s]" % detail
1166
1263
  end
1167
1264
 
1168
- 'UI Interaction' + "\n " + s + ' ' + @h.inspect
1265
+ @s = 'UI Interaction' + "\n" + s #+ ' ' + @h.inspect
1266
+ super()
1169
1267
  end
1170
1268
 
1171
1269
  alias to_summary to_s
@@ -1185,7 +1283,10 @@ class VoiceSearchAction < DeviceAction
1185
1283
  end
1186
1284
 
1187
1285
  def to_s(colour: false, indent: 0)
1188
- 'VoiceSearchAction ' + @h.inspect
1286
+
1287
+ @s = 'Voice Search' # + @h.inspect
1288
+ super()
1289
+
1189
1290
  end
1190
1291
 
1191
1292
  alias to_summary to_s
@@ -1327,7 +1428,11 @@ class SetAutoRotateAction < DeviceSettingsAction
1327
1428
  end
1328
1429
 
1329
1430
  def to_s(colour: false, indent: 0)
1330
- 'SetAutoRotateAction ' + @h.inspect
1431
+
1432
+ #'SetAutoRotateAction ' + @h.inspect
1433
+ @s = 'Auto Rotate ' + %w(On Off Toggle)[@h[:state]]
1434
+ super()
1435
+
1331
1436
  end
1332
1437
 
1333
1438
  alias to_summary to_s
@@ -2113,7 +2218,7 @@ class ControlMediaAction < MediaAction
2113
2218
  obj
2114
2219
  elsif obj.is_a? Array
2115
2220
 
2116
- e, macro = obj
2221
+ e, macro, h2 = obj
2117
2222
  s = e.text('item/description').to_s
2118
2223
  app = s[/Simulate Media Button \(([^\)]+)/,1]
2119
2224
 
@@ -2122,18 +2227,21 @@ class ControlMediaAction < MediaAction
2122
2227
  {
2123
2228
  application_name: app, package_name: APPS[app],
2124
2229
  simulate_media_button: true
2125
- }
2230
+ }.merge h2
2126
2231
 
2127
2232
  else
2128
- {}
2233
+ {
2234
+ send_media_player_commands: true,
2235
+ simulate_media_button: false
2236
+ }
2129
2237
  end
2130
- end
2238
+ end
2239
+ #puts 'h: ' + h.inspect
2131
2240
 
2132
2241
  options = {
2133
- application_name: "Google Play Music", option: "Play/Pause",
2134
- package_name: "com.google.android.music",
2135
- send_media_player_commands: false,
2136
- simulate_media_button: true,
2242
+ option: "Play/Pause",
2243
+ send_media_player_commands: true,
2244
+ simulate_media_button: false,
2137
2245
  }
2138
2246
 
2139
2247
  super(options.merge h)
@@ -2146,6 +2254,8 @@ class ControlMediaAction < MediaAction
2146
2254
 
2147
2255
  if @h[:simulate_media_button] then
2148
2256
  @s += "\nSimulate Media Button (%s)" % @h[:application_name]
2257
+ else
2258
+ @s += "\nSimulate Audio Button"
2149
2259
  end
2150
2260
 
2151
2261
  super()
@@ -41,6 +41,27 @@ class ActionsNlp
41
41
 
42
42
  # -- Connectivity ------------------------------------------------------
43
43
 
44
+ get /^Airplane Mode (On|Off|Toggle)/i do |state|
45
+
46
+ index = %w(on off toggle).index state.downcase
47
+ [SetAirplaneModeAction, {state: index }]
48
+
49
+ end
50
+
51
+ get /^(Enable|Disable|Toggle) Bluetooth/i do |state|
52
+
53
+ index = %w(enable disable toggle).index state.downcase
54
+ [SetBluetoothAction, {state: index }]
55
+
56
+ end
57
+
58
+ get /^(Connect|Disconnect) Audio Device/i do |state|
59
+
60
+ index = %w(connect disconnect).index(state.downcase) + 3
61
+ [SetBluetoothAction, {state: index }]
62
+
63
+ end
64
+
44
65
  get /^(Enable|Disable) HotSpot/i do |state|
45
66
  enable, state = if state.downcase == 'enable' then
46
67
  [true, 0]
@@ -50,6 +71,19 @@ class ActionsNlp
50
71
  [SetHotspotAction, {turn_wifi_on: enable, state: state }]
51
72
  end
52
73
 
74
+ get /^(Enable|Disable|Toggle) Wifi/i do |state|
75
+
76
+ index = %w(enable disable toggle).index state.downcase
77
+ [SetWifiAction, {state: index }]
78
+
79
+ end
80
+
81
+ get /^Connect to Network$/i do
82
+
83
+ [SetWifiAction, {state: 4 }]
84
+
85
+ end
86
+
53
87
  # e.g. message popup: hello world!
54
88
  get /^(?:message popup|popup message): (.*)/i do |msg|
55
89
  [ToastAction, {msg: msg}]
@@ -86,7 +120,11 @@ class ActionsNlp
86
120
 
87
121
  get /^take_picture/i do
88
122
  [TakePictureAction, {}]
89
- end
123
+ end
124
+
125
+ get /^Take Screenshot/i do
126
+ [TakeScreenshotAction, {}]
127
+ end
90
128
 
91
129
  # -- DEVICE ACTIONS ------------------------------------------------------
92
130
 
@@ -114,6 +152,19 @@ class ActionsNlp
114
152
  get /^Vibrate$/i do |pattern|
115
153
  [VibrateAction, {pattern: 'short buzz'}]
116
154
  end
155
+
156
+ get /^Voice Search$/i do
157
+ [VoiceSearchAction, {}]
158
+ end
159
+
160
+ # -- Device settings ---------------------------------------
161
+
162
+ get /^Auto Rotate (On|Off|Toggle)$/i do |state|
163
+
164
+ a = %w(on off toggle)
165
+
166
+ [SetAutoRotateAction, {state: a.map(&:downcase).index(state.downcase)}]
167
+ end
117
168
 
118
169
  # e.g. Display Notification: Hi there: This is the body of the message
119
170
  get /^Display Notification: ([^:]+): [^$]+$/i do |subject, text|
@@ -139,16 +190,34 @@ class ActionsNlp
139
190
  [PlaySoundAction, {file_path: name}]
140
191
 
141
192
  end
193
+
194
+ get /^Launch Shortcut:? (?:Amazon|Ask) Alexa$/i do
195
+ [LaunchShortcutAction, {shortcut: 'Ask Alexa'}]
196
+ end
197
+
198
+ get /^Shortcut:? (?:Amazon|Ask) Alexa$/i do
199
+ [LaunchShortcutAction, {shortcut: 'Ask Alexa'}]
200
+ end
142
201
 
143
202
  # e.g. Launch Settings
144
- get /^Launch (.*)$/i do |application|
203
+ get /^Launch (.*)$/i do |s|
145
204
 
146
- app = APPS[application] || 'com.android.' + application.downcase.split()\
147
- .join('.')
148
- h = {
149
- application_name: application,
150
- package_to_launch: app
151
- }
205
+ h = {}
206
+
207
+ if s[0] == '[' then
208
+
209
+ h[:launch_by_package_name] = s
210
+ h[:option] = 1
211
+
212
+ else
213
+ application = s
214
+ h[:application_name] = application
215
+ h[:package_to_launch] = APPS[application] || 'com.android.' +
216
+ application.downcase.split().join('.')
217
+ h[:option] = 0
218
+
219
+ end
220
+
152
221
  [LaunchActivityAction, h]
153
222
 
154
223
  end
@@ -186,6 +255,10 @@ class ActionsNlp
186
255
  [OpenWebPageAction, {key => s}]
187
256
  end
188
257
 
258
+ get /(https?:\/\/[^$]+)$/i do |url|
259
+ [OpenWebPageAction, {url_to_open: url}]
260
+ end
261
+
189
262
  #
190
263
  get /^WebHook \(Url\)/i do
191
264
  [OpenWebPageAction, {}]
@@ -195,6 +195,7 @@ class MacroObject
195
195
 
196
196
  end
197
197
 
198
+
198
199
  private
199
200
 
200
201
  def hashify(h)
@@ -215,6 +215,10 @@ class PowerButtonToggleTrigger < Trigger
215
215
  super(options.merge h)
216
216
 
217
217
  end
218
+
219
+ def match?(detail={}, model=nil)
220
+ @h[:num_toggles] == detail[:num_toggles].to_i
221
+ end
218
222
 
219
223
  def to_s(colour: false)
220
224
  "Power Button Toggle (%s)" % @h[:num_toggles] #+ @h.inspect
@@ -19,10 +19,14 @@ class TriggersNlp
19
19
 
20
20
  # -- Battery/Power ---------------------------------------------
21
21
 
22
- get /Power Button Toggle \((\d)\)/i do |num|
22
+ get /^Power Button Toggle \((\d)\)/i do |num|
23
23
  [PowerButtonToggleTrigger, {num_toggles: num.to_i}]
24
24
  end
25
25
 
26
+ get /^Power Button (\d) times$/i do |num|
27
+ [PowerButtonToggleTrigger, {num_toggles: num.to_i}]
28
+ end
29
+
26
30
  get /^Power Connected: (Wired \([^\)]+\))/i do |s|
27
31
 
28
32
  h = {
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-macrodroid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.16
4
+ version: 0.9.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkxMDI3MjEyNDA0WhcN
15
- MjAxMDI2MjEyNDA0WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDGFPay
17
- XYuML5FESMa8WAbhZyaUhuUMxkOuMAQCEvZoB/aNyVE2Ho1yNLwzmJNO3t5ne7YO
18
- Q4kRP6/9r76ghiR43XJGhrMicgxL8QC3GmQtJl9KOSiAibzMcya+4hNjF99nqTKf
19
- 0IbVLz8omiskIbgMMxnLxx8hr4t1cUBW/PXkjufqtzTob+KQEESQeXkQYAjbnnME
20
- 0+x0LL8Bi1OiLVAK3b2rMzt8onNmSwvYvfPAXrBcTJczsUrCSgiGHkQYGyK8StnE
21
- 5NaCGOxXObiiyJ/PVEh+kn7R1y9C3Ugprf81qEWg6fsazlFl+JpyCdWphmo/J2Hd
22
- 7oXa+MxCrZRCRo3Z2Avz54tyXukyq4W5CWuceuucBG/vnAKSoqm69pWGhjhVFDzF
23
- BWxmV2iDrU06g+sWXVHWEGGQURyZBl/2ue0rzeaZYFEuLOTN9JRMMwqTNb9S6A0d
24
- nLhZkSiHCe7levTBK9tN1zRdqYXb/hj3iZpkIejYMRQaqxdX1sJcvqzijDcCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUYKFwpZGg
26
- MIpWf2U87TzYBDvorjMwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAxMDI2MjIxOTU3WhcN
15
+ MjExMDI2MjIxOTU3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDoaG+o
17
+ lMHEAZHl1nsdoJXwq0LC+quj5tNVCWZh4YQbBElxPfqL/+37lEwiJm9DC2ITVit1
18
+ H/PAJipSJrOlnX5gBs2xZuKDChGBPLaquioK4ZyTNzMHNTEZiWz3NAGNO+bJuWQd
19
+ Ho9+C+/BhCgG85XbDrmFdEnYnep3qntkgB860+9NRQNQ53cFn8nBOfGSpvN3Fsqp
20
+ Ja7FyW59mlLkYccWZrVR+ZAdLYZQLNQ8yobSINKLOkXA9cqExF/pxMjxZpREM1S4
21
+ qY8Oo4YUw6I2TH3mUkACRdQMmyY/GRR0hDKAFwpsXajz+jmztQ3+dONsqPt+crJB
22
+ Mk7vSJbCXpVovljhSB3fAGOB0x9hd43AwijgkaW/8lm4N7jajalwXbckaV5C7nnS
23
+ uMDoU1TBdSKlP3f1VhFVdDBEh8KaqTzyrV8QvJKPirW8BrgpdXB7xYafHBXBSMxo
24
+ MiafxZoXRxY9cQc7UY9RjFLyKDipubSWhiHfHURnBYgNMJit0mdNGtVBpj8CAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUuSf+7NQJ
26
+ u1oQ39UyDRyono+FMTYwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAiOFHbXd+U1P/j84TjNssAprjID/iexoPR482NaIg
29
- WVC6VldVyC2tOXEniZvtpsECzR7oLicY2+D4p6ZtYkeI6T19moSN8SFK/lPjHhh5
30
- ujRQBqFwiwInlkcZO6e36aNDhrEtocrZyE9KFkYb5ZUUOSJpPIm/+F+4u7R1o3TX
31
- gMkrwlIwKylTjbvBjqwrQ65JVHkGrzxOoN4GFo2WEMGyVgMtvCFosWg91dJNpkww
32
- RH5jzcCEVO3woUSruZQIk7WYAHiO/ucn4JcocSF/1yO5yDzuh6AODA5wr3kMywOY
33
- 5+DmfHEB/fXuwZtr6kjloq9MmQFSu+8rMSiVmrP9gzcl3zwXFVZjh4oy6QqQAITQ
34
- FvR4UThQs3/4aYBWPAwXUKrth1dV39dGFTX4VXOMqp/yEmBCOme8YMNaAu3M3hHL
35
- NZ2kdBIUDnAM24e0/wXdVxg4HnsZbdymxyzMQ4P5pKYcpI6oisBxI37p/Xy+wAg3
36
- SBHno3GEuuD8ZWj24IMJpfbp
28
+ BgkqhkiG9w0BAQsFAAOCAYEAcb48mw7R7DM/tkRsqJ3xARYEsqswd6RIcUEQlk+N
29
+ wl6h9Ep5XXZRiWkjl7LvIwixLsLYJpnr4HrJSMBJ3fOKWO19r+LgxS98BRnIR/ig
30
+ hkvDTENgc3rCM+1D40IDUVVNOITDO9sJgBGoFCPqySwvqD3k8ZBSsgEUvHCnX0mU
31
+ 7KPih5gG+3xgOKy+OYP9KT68nqJk0MOZa0wf+7Mdi0yfCQ35OWU6k4MLhVlPn3rs
32
+ KTWiZmv8DTY/GD7UmsU9PyWo4mRL/HStHKOJpayJ+hzdezD1gIKCViUJVQLaNpV4
33
+ a1xyM49vQ8wAk4hd+36Hs+te+24tUgisk5YF/m5/xHLPzCwU/dzghzyqurY1CcdZ
34
+ AP47l82yywwqaxpCXBvlpPZ81LOozzu7JOmr/ziys4ube7PbUYN6uiwfoE2/N8Ol
35
+ cu2W9lmvKJ505bT8+KLouVOtLlxYZknIB/uIea9r5rrGEJDMdYEYl4ZySFmkvJR4
36
+ tf7VMFcAy1q1HMyemsBUJk5h
37
37
  -----END CERTIFICATE-----
38
- date: 2020-10-23 00:00:00.000000000 Z
38
+ date: 2020-11-01 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: glw
metadata.gz.sig CHANGED
Binary file