ruby-macrodroid 0.9.16 → 0.9.21

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 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