sesc 0.1.8

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.
@@ -0,0 +1,91 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sesc
4
+ module Parser
5
+ module Sp
6
+ class Events
7
+ VALUES = %i[
8
+ url image_url availability category title date
9
+ hours place description age_limit price
10
+ ].freeze
11
+
12
+ def initialize(html_body_events)
13
+ @events = Body.new(html_body_events).events
14
+ end
15
+
16
+ def to_hash
17
+ group_by_place(load_events)
18
+ end
19
+
20
+ private
21
+
22
+ def load_events
23
+ @events.map do |event|
24
+ VALUES.each_with_object({}) do |value, memo|
25
+ memo[value] = send(value, event)
26
+ end
27
+ end
28
+ end
29
+
30
+ def group_by_place(events)
31
+ events.group_by { |event| event[:place] }
32
+ end
33
+
34
+ def url(event)
35
+ event.elements[0].css('a').first.attributes['href'].value
36
+ end
37
+
38
+ def image_url(event)
39
+ i = event.elements[0].css('span').first
40
+ i.attributes.values.last.value[22..-3]
41
+ end
42
+
43
+ def availability(event)
44
+ event.elements[0].css('span').last.children.first&.text
45
+ end
46
+
47
+ def category(event)
48
+ event.elements[1].css('p').first.children[1].text
49
+ end
50
+
51
+ def title(event)
52
+ event.elements[1].css('a')[1].attributes['data-ga-action'].value
53
+ end
54
+
55
+ def date(event)
56
+ clear_text_for(
57
+ event.elements[1].css('span').first.children.first.text
58
+ )
59
+ end
60
+
61
+ def hours(event)
62
+ clear_text_for(event.elements[1].css('span')[1].children.first.text)
63
+ end
64
+
65
+ def place(event)
66
+ p = event.elements[1].css('span')[2].children.first.text
67
+ "SESC #{clear_text_for(p)}"
68
+ end
69
+
70
+ def description(event)
71
+ clear_text_for(
72
+ event.elements[1].css('form').last.children[1].children.first.text
73
+ )
74
+ end
75
+
76
+ def age_limit(event)
77
+ event.elements[3].children[3].elements.last.text
78
+ end
79
+
80
+ def price(event)
81
+ p = clear_text_for(event.elements[3].children[5].text)
82
+ p.split('R$ ').join(' R$ ').strip
83
+ end
84
+
85
+ def clear_text_for(text)
86
+ text.delete("\r").delete("\n").delete("\t").strip
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sesc
4
+ module Version
5
+ STRING = '0.1.8'
6
+ end
7
+ end
data/lib/sesc.rb ADDED
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'net/http'
4
+ require 'nokogiri'
5
+ require 'yaml'
6
+ require 'colorize'
7
+
8
+ require 'sesc/cli/options'
9
+ require 'sesc/cli/filter'
10
+ require 'sesc/cli'
11
+ require 'sesc/crawler'
12
+ require 'sesc/cities'
13
+ require 'sesc/cities/sp'
14
+ require 'sesc/config'
15
+ require 'sesc/parser/sp/events'
16
+ require 'sesc/parser/sp/body'
17
+ require 'sesc/exporter/events'
18
+ require 'sesc/exporter/help'
19
+ require 'sesc/exporter/painter'
20
+ require 'sesc/exporter/places'
21
+ require 'sesc/exporter/printer'
22
+ require 'sesc/version'
23
+
24
+ module Sesc
25
+ def self.sp(number, places)
26
+ Sesc::Cities::Sp.new(crawler_sesc(number, places)).print_on_terminal
27
+ end
28
+
29
+ private_class_method
30
+
31
+ def self.crawler_sesc(number, places)
32
+ Sesc::Crawler.new(number, places).get
33
+ end
34
+ end
data/scripts/test.sh ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ DISABLE_OUTPUT=true bundle exec rspec --format documentation
data/sesc.gemspec ADDED
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
4
+ require 'sesc/version'
5
+ require 'English'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'sesc'
9
+ s.version = Sesc::Version::STRING
10
+ s.date = '2017-11-05'
11
+ s.summary = 'Sesc API'
12
+ s.description = 'A simple wrap to list events of SESC'
13
+ s.authors = ['fernandopso']
14
+ s.email = 'fernandopso@bsi.ufla.br'
15
+ s.license = 'MIT'
16
+ s.homepage = 'https://github.com/fernandopso/sesc'
17
+
18
+ s.executables << 'sesc'
19
+
20
+ s.files = `git ls-files`.split($RS).reject do |file|
21
+ file =~ %r{^(?:
22
+ spec/.*
23
+ |Gemfile
24
+ |\.rspec
25
+ |\.gitignore
26
+ )$}x
27
+ end
28
+
29
+ s.required_ruby_version = '>= 2.0.0'
30
+
31
+ s.add_runtime_dependency('nokogiri', '~> 1.8.0', '>= 1.8.0')
32
+ s.add_runtime_dependency('thor', '~> 0.20.0', '>= 0.20.0')
33
+
34
+ s.add_development_dependency 'colorize', '~> 0'
35
+ s.add_development_dependency 'factory_bot', '~> 4.8.2', '>= 4.8.2'
36
+ s.add_development_dependency 'pry-byebug', '~> 3.0.1', '>= 3.0.1'
37
+ s.add_development_dependency 'rspec', '~> 3.7'
38
+ s.add_development_dependency 'rubocop', '~> 0.51.0', '>= 0.51.0'
39
+ s.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.0'
40
+ s.add_development_dependency 'webmock', '~> 3.1', '>= 3.1.0'
41
+ end
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.sescsp.org.br/programacao/ajax/homeView.action?atividades=&calendar_dates=&maxResults=1&remove_dates=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: q=
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - www.sescsp.org.br
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Content-Type:
26
+ - text/html;charset=UTF-8
27
+ Content-Length:
28
+ - '3975'
29
+ Connection:
30
+ - keep-alive
31
+ Content-Language:
32
+ - pt-BR
33
+ Date:
34
+ - Tue, 28 Nov 2017 21:57:32 GMT
35
+ Server:
36
+ - Apache-Coyote/1.1
37
+ Set-Cookie:
38
+ - AWSELB=43E7B53B16A3E20276CAE860896B6B294B42D0285EDF98F2A662CEC78BBC1983B1A2C3FD3BFA0B1AA8D59DA6CB9861D0322EF14D6F63577B2B8163F75C78992B876DC0302CA8A7254432225C7DCD735255702BF7F4;PATH=/;HTTPONLY
39
+ - JSESSIONID=3BBEF7F2D0B568165812E06FDB2F8291; Path=/; HttpOnly
40
+ X-Cache:
41
+ - Miss from cloudfront
42
+ Via:
43
+ - 1.1 6ce5b4071d459e16e932015e6e13e48b.cloudfront.net (CloudFront)
44
+ X-Amz-Cf-Id:
45
+ - GRbWGdcjXMCA2aT6PbvGOmz6Ddd6LyBGL6czcFciQhkDxvcKpjaHJg==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ CgoKCgoKCgoKCgoKCgoKCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
50
+ dG90YWxfcmVnaXN0cm9zIiB2YWx1ZT0iMTY2NyIvPg0KCQ0KCQ0KCTxkaXYg
51
+ aWQ9ImhvbGRlcl9yZXN1bHRzIiBjbGFzcz0icHJvZ3JhbWFjYW8iPg0KDQoJ
52
+ CQ0KCQkJPGFydGljbGUgY2xhc3M9ImJsb2NrX2FnZW5kYSI+DQoJCQkJPGRp
53
+ diBjbGFzcz0iYmxvY2tfYWdlbmRhLXBob3RvIj4NCgkJCQkJPGRpdiBjbGFz
54
+ cz1maWd1cmUtYXJ0aWNsZT4NCgkJCQkJPGZvcm0gYWN0aW9uPSIvcHJvZ3Jh
55
+ bWFjYW8vMTA5NDI0X01PVkUrTkFUQUNBTyIgbWV0aG9kPSJwb3N0Ij4NCgkJ
56
+ CQkJICAgIDxhIGhyZWY9Ii9wcm9ncmFtYWNhby8xMDk0MjRfTU9WRStOQVRB
57
+ Q0FPIg0KCQkJCQkgICAgZGF0YS1nYS1jYXRlZ29yeT0iUHJvZ3JhbWFjYW8i
58
+ DQoJCQkJCQlkYXRhLWdhLWFjdGlvbj0iTW92ZSBOYXRhw6fDo28iDQoJCQkJ
59
+ CQlkYXRhLWdhLWxhYmVsPSIiPg0KCQkJCQkgICAgCQ0KCQkJCQkJICAgIAkJ
60
+ PHNwYW4gY2xhc3M9ImJsb2NrX2FnZW5kYS1pbWFnZS1maWxlIGZyYW1lX292
61
+ ZXJmbG93X2ltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgvZmls
62
+ ZXMvcHJvZ3JhbWFjYW8vZWFmOTVmMzctNDIwOS00NjQ5LThkMGUtNzUyMzRl
63
+ MmVlM2ZjLmpwZyk7Ij48L3NwYW4+DQoJCQkJCSAgICAJDQoJCQkJCSAgICAJ
64
+ DQoJCQkJCQk8L2E+DQoJCQkJCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
65
+ YW1lPSJwYWdlIiB2YWx1ZT0iMSIvPg0KCQkJCQk8L2Zvcm0+DQoJCQkJCTwv
66
+ ZGl2Pg0KDQoJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoNCgkJCQkJ
67
+ PC9kaXY+DQoNCgkJCQkJPGRpdiBjbGFzcz0iYmxvY2tfYWdlbmRhLWNvbnRh
68
+ aW5lciI+DQoNCgkJCQkJCTx1bCBjbGFzcz0ic2hhcmVfcG9zdCI+DQoJCQkJ
69
+ CQkJPGxpPg0KCQkJCQkJCQkNCgkJCQkJCQkJCTxwIGNsYXNzPSJibG9ja19h
70
+ Z2VuZGEtcGhvdG8tbGFiZWwiPg0KCQkJCQkJCQkJCTxzdHJvbmc+RXNwb3J0
71
+ ZSBlIEF0aXZpZGFkZSBGw61zaWNhPC9zdHJvbmc+DQoJCQkJCQkJCQk8L3A+
72
+ DQoJCQkJCQkJCQ0KCQkJCQkJCTwvbGk+DQoJCQkJCQkJPGxpPg0KCQkJCQkJ
73
+ CSAJPGEgY2xhc3M9ImJsb2NrX2FnZW5kYS1hY3Rpb24tbGluayBjb21wYXJ0
74
+ aWxoYXJUaWNrZXQiIGhyZWY9Ii9wcm9ncmFtYWNhby8xMDk0MjRfTU9WRStO
75
+ QVRBQ0FPIiB0aXRsZT0iQ29tcGFydGlsaGFyIiA+DQoJCQkJCQkJCQk8aSBj
76
+ bGFzcz0iYmxvY2tfYWdlbmRhLWFjdGlvbi1pY29uIGNvbXBhcnRpbGhhciI+
77
+ PC9pPiBjb21wYXJ0aWxoYXINCgkJCQkJCQkJPC9hPg0KCQkJCQkJCTwvbGk+
78
+ DQoJCQkJCQk8L3VsPg0KDQoJCQkJCQk8ZGl2ICBjbGFzcz0iY29sb2NhSG92
79
+ ZXIiPg0KDQoJCQkJCQk8aDMgY2xhc3M9ImJsb2NrX2FnZW5kYS10aXRsZSI+
80
+ DQoNCgkJCQkJCQk8Zm9ybSBhY3Rpb249Ii9wcm9ncmFtYWNhby8xMDk0MjRf
81
+ TU9WRStOQVRBQ0FPIiBtZXRob2Q9InBvc3QiPg0KCQkJCQkJCSAgICA8YSBo
82
+ cmVmPSIvcHJvZ3JhbWFjYW8vMTA5NDI0X01PVkUrTkFUQUNBTyIgdGl0bGU9
83
+ InNhaWJhIG1haXMiDQoJCQkJCQkJICAgIGRhdGEtZ2EtY2F0ZWdvcnk9IlBy
84
+ b2dyYW1hY2FvIg0KCQkJCQkJCQlkYXRhLWdhLWFjdGlvbj0iTW92ZSBOYXRh
85
+ w6fDo28iDQoJCQkJCQkJCWRhdGEtZ2EtbGFiZWw9IiI+DQoJCQkJCQkJICAg
86
+ IAlNb3ZlIE5hdGHDp8Ojbw0KCQkJCQkJCQk8L2E+DQoJCQkJCQkJICAgIDxp
87
+ bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2UiIHZhbHVlPSIxIi8+DQoJ
88
+ CQkJCQkJPC9mb3JtPg0KCQkJCQkJPC9oMz4NCgkJCQkJCTwvZGl2Pg0KDQoJ
89
+ CQkJCQkNCgkJCQkJCQkNCg0KCQkJCQkJPGRpdiAgY2xhc3M9ImNvbG9jYUhv
90
+ dmVyIj4NCgkJCQkJCTxkaXYgY2xhc3M9ImxpbmUtaW5mb3MgbGluZS1pbmZv
91
+ cy1saXN0Ij4NCgkJCQkJCQkJPHNwYW4+DQoJCQkJCQkJCQkNCgkJCQkJCQkJ
92
+ CTAzLzAxIGEgMzAvMTINCgkJCQkJCQkJDQoNCgkJCQkJCQkJDQoNCgkJCQkJ
93
+ CQkJPC9zcGFuPg0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPg0KCQkJ
94
+ CQkJCQkJRGl2ZXJzb3MgSG9yw6FyaW9zDQoJCQkJCQkJCTwvc3Bhbj4NCgkJ
95
+ CQkJCQkJPHNwYW4gY2xhc3M9InBsYWNlIj4NCgkJCQkJCQkJDQoJCQkJCQkJ
96
+ CSBWaWxhIE1hcmlhbmENCgkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJPC9kaXY+
97
+ DQoNCgkJCQkJCQk8Zm9ybSBhY3Rpb249Ii9wcm9ncmFtYWNhby8xMDk0MjRf
98
+ TU9WRStOQVRBQ0FPIiBtZXRob2Q9InBvc3QiPg0KCQkJCQkJCSAgICA8YSBj
99
+ bGFzcz0iZGVzYyIgaHJlZj0iL3Byb2dyYW1hY2FvLzEwOTQyNF9NT1ZFK05B
100
+ VEFDQU8iICB0aXRsZT0ic2FpYmEgbWFpcyINCgkJCQkJCQkgICAgZGF0YS1n
101
+ YS1jYXRlZ29yeT0iUHJvZ3JhbWFjYW8iDQoJCQkJCQkJCWRhdGEtZ2EtYWN0
102
+ aW9uPSJNb3ZlIE5hdGHDp8OjbyINCgkJCQkJCQkJZGF0YS1nYS1sYWJlbD0i
103
+ Ij4NCgkJCQkJCQkgICAgCVByb2pldG8gcXVlIGVzdGltdWxhIGEgcHLDoXRp
104
+ Y2EgYXV0w7Rub21hIGRhIG5hdGHDp8OjbywgcG9yIG1laW8gZGUgdHJlaW5v
105
+ cyBwcsOpLW1vbnRhZG9zLCBkaXNwb27DrXZlaXMgbmEuLi4NCgkJCQkJCQkJ
106
+ PC9hPg0KCQkJCQkJCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJw
107
+ YWdlIiB2YWx1ZT0iMSIvPg0KCQkJCQkJCTwvZm9ybT4NCg0KCQkJCQkJPC9k
108
+ aXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJibG9ja19hZ2VuZGEtY29udGVudCI+
109
+ DQoNCgkJCQkJCQk8dWwgY2xhc3M9ImJsb2NrX2FnZW5kYS1idG5zIj48L3Vs
110
+ Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCg0KCQkJCQkJ
111
+ PC9kaXY+DQoNCgkJCQkJPC9kaXY+DQoNCgkJCQkJPGRpdiBjbGFzcz0iY2xl
112
+ YXIiPjwvZGl2Pg0KCQkJCQk8YXNpZGUgY2xhc3M9InZhbG9yZXNfYWNvZXMi
113
+ Pg0KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW46IDdweCAtMjBweCA7Ij4NCgkJ
114
+ CQkJCTx1bCBjbGFzcz0ic2hhcmVfcG9zdCI+DQoJCQkJCQkJPGxpPg0KCQkJ
115
+ CQkJCQkgPGEgY2xhc3M9Imljb19zYWx2YXIiDQoJCQkJCQkJICAgICAgICAg
116
+ IGhyZWY9Ii9tZXUtcGVyZmlsL21vZGFsL3NhbHZhck5vdmFQcm9ncmFtYWNh
117
+ by5hY3Rpb24/YWdlbmRhSWQ9MTA5NDI0IiB0aXRsZT0iU2FsdmFyIg0KCQkJ
118
+ CQkJCSAgICAgICAgICBjbGFzcz0icnBsIGljb19zYWx2YXIgaWNvX3NhbHZh
119
+ cl9tdWx0aXBsb3MiIHJlbD0iYWRkLW15LXNlc2MgbXVsdGlwbGUtaXRlbnMg
120
+ b3Blbi1zYXZlLW1vZGFsIg0KCQkJCQkJCSAgICAgICAgICBkYXRhLWdhLWNh
121
+ dGVnb3J5PSJQcm9ncmFtYWNhbyINCgkJCQkJCQkJCQlkYXRhLWdhLWFjdGlv
122
+ bj0iTW92ZSBOYXRhw6fDo28iDQoJCQkJCQkJCQkJZGF0YS1nYS1sYWJlbD0i
123
+ U2FsdmFyIFByb2dyYW1hY2FvIj5zYWx2YXI8L2E+DQoJCQkJCQkJPC9saT4N
124
+ CgkJCQkJCTwvdWw+DQoJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0i
125
+ ZmFpeGEtZXRhcmlhIj4NCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJ
126
+ CQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InJlZCI+MTI8
127
+ L3NwYW4+DQoJCQkJCQkJCQkJPHA+TsOjbyByZWNvbWVuZGFkbyBwYXJhIG1l
128
+ bm9yZXMgZGUgMTIgYW5vczwvcD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJ
129
+ CQkJCQk8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJwcmljZXMiPg0KCQkJ
130
+ CQkJCQk8dWw+DQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJ
131
+ CQk8dWwgY2xhc3M9ImJsb2NrX2FnZW5kYS10aWtldHMiPg0KCQkJCQkJCQkJ
132
+ PHVsIGNsYXNzPSJwcmVjb3NfZXZlbnRvIj4NCgkJCQkJCQkJCQkJCTxsaSBj
133
+ bGFzcz0iIj48c3BhbiBjbGFzcz0iaWNvX2dyYXRpcyI+PC9zcGFuPkdyJmFh
134
+ Y3V0ZTt0aXM8L2xpPg0KCQkJCQkJCQkJPC91bD4NCgkJCQkJCQkJPC91bD4N
135
+ CgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQk8L3VsPg0KCQkJCQkJPC9kaXY+
136
+ DQoJCQkJCQkJPC9hc2lkZT4NCgkJCQk8L2FydGljbGU+DQoNCgkJDQoJCQkJ
137
+ CTwvZGl2Pg0KCQ0KCQ0K
138
+ http_version:
139
+ recorded_at: Tue, 28 Nov 2017 21:57:32 GMT
140
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,140 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://www.sescsp.org.br/programacao/ajax/homeView.action?atividades=&calendar_dates=&maxResults=1&remove_dates=
6
+ body:
7
+ encoding: US-ASCII
8
+ string: q=
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - www.sescsp.org.br
18
+ Content-Type:
19
+ - application/x-www-form-urlencoded
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Content-Type:
26
+ - text/html;charset=UTF-8
27
+ Content-Length:
28
+ - '3975'
29
+ Connection:
30
+ - keep-alive
31
+ Content-Language:
32
+ - pt-BR
33
+ Date:
34
+ - Tue, 28 Nov 2017 21:57:09 GMT
35
+ Server:
36
+ - Apache-Coyote/1.1
37
+ Set-Cookie:
38
+ - AWSELB=43E7B53B16A3E20276CAE860896B6B294B42D0285E55D42E45C93711ACFBF47321A27BB3FD5DC2CF04BE64D493522F3B4EAA370454153E7B133B512C7BABAC0E7860E29C51863FDA7F811E0BED2853B5FE4DA5A057;PATH=/;HTTPONLY
39
+ - JSESSIONID=48430761B055530D2E168CBA160B0C34; Path=/; HttpOnly
40
+ X-Cache:
41
+ - Miss from cloudfront
42
+ Via:
43
+ - 1.1 5f9453c691ff80c0367281bc0092a9fc.cloudfront.net (CloudFront)
44
+ X-Amz-Cf-Id:
45
+ - VrLKrUwBRhHiYMli_azioJjaaEOmUBJa2XqZ6ne6CLpMjFNvDxKjkQ==
46
+ body:
47
+ encoding: ASCII-8BIT
48
+ string: !binary |-
49
+ CgoKCgoKCgoKCgoKCgoKCg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
50
+ dG90YWxfcmVnaXN0cm9zIiB2YWx1ZT0iMTY2NyIvPg0KCQ0KCQ0KCTxkaXYg
51
+ aWQ9ImhvbGRlcl9yZXN1bHRzIiBjbGFzcz0icHJvZ3JhbWFjYW8iPg0KDQoJ
52
+ CQ0KCQkJPGFydGljbGUgY2xhc3M9ImJsb2NrX2FnZW5kYSI+DQoJCQkJPGRp
53
+ diBjbGFzcz0iYmxvY2tfYWdlbmRhLXBob3RvIj4NCgkJCQkJPGRpdiBjbGFz
54
+ cz1maWd1cmUtYXJ0aWNsZT4NCgkJCQkJPGZvcm0gYWN0aW9uPSIvcHJvZ3Jh
55
+ bWFjYW8vMTA5NDI0X01PVkUrTkFUQUNBTyIgbWV0aG9kPSJwb3N0Ij4NCgkJ
56
+ CQkJICAgIDxhIGhyZWY9Ii9wcm9ncmFtYWNhby8xMDk0MjRfTU9WRStOQVRB
57
+ Q0FPIg0KCQkJCQkgICAgZGF0YS1nYS1jYXRlZ29yeT0iUHJvZ3JhbWFjYW8i
58
+ DQoJCQkJCQlkYXRhLWdhLWFjdGlvbj0iTW92ZSBOYXRhw6fDo28iDQoJCQkJ
59
+ CQlkYXRhLWdhLWxhYmVsPSIiPg0KCQkJCQkgICAgCQ0KCQkJCQkJICAgIAkJ
60
+ PHNwYW4gY2xhc3M9ImJsb2NrX2FnZW5kYS1pbWFnZS1maWxlIGZyYW1lX292
61
+ ZXJmbG93X2ltZyIgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgvZmls
62
+ ZXMvcHJvZ3JhbWFjYW8vZWFmOTVmMzctNDIwOS00NjQ5LThkMGUtNzUyMzRl
63
+ MmVlM2ZjLmpwZyk7Ij48L3NwYW4+DQoJCQkJCSAgICAJDQoJCQkJCSAgICAJ
64
+ DQoJCQkJCQk8L2E+DQoJCQkJCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBu
65
+ YW1lPSJwYWdlIiB2YWx1ZT0iMSIvPg0KCQkJCQk8L2Zvcm0+DQoJCQkJCTwv
66
+ ZGl2Pg0KDQoJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoNCgkJCQkJ
67
+ PC9kaXY+DQoNCgkJCQkJPGRpdiBjbGFzcz0iYmxvY2tfYWdlbmRhLWNvbnRh
68
+ aW5lciI+DQoNCgkJCQkJCTx1bCBjbGFzcz0ic2hhcmVfcG9zdCI+DQoJCQkJ
69
+ CQkJPGxpPg0KCQkJCQkJCQkNCgkJCQkJCQkJCTxwIGNsYXNzPSJibG9ja19h
70
+ Z2VuZGEtcGhvdG8tbGFiZWwiPg0KCQkJCQkJCQkJCTxzdHJvbmc+RXNwb3J0
71
+ ZSBlIEF0aXZpZGFkZSBGw61zaWNhPC9zdHJvbmc+DQoJCQkJCQkJCQk8L3A+
72
+ DQoJCQkJCQkJCQ0KCQkJCQkJCTwvbGk+DQoJCQkJCQkJPGxpPg0KCQkJCQkJ
73
+ CSAJPGEgY2xhc3M9ImJsb2NrX2FnZW5kYS1hY3Rpb24tbGluayBjb21wYXJ0
74
+ aWxoYXJUaWNrZXQiIGhyZWY9Ii9wcm9ncmFtYWNhby8xMDk0MjRfTU9WRStO
75
+ QVRBQ0FPIiB0aXRsZT0iQ29tcGFydGlsaGFyIiA+DQoJCQkJCQkJCQk8aSBj
76
+ bGFzcz0iYmxvY2tfYWdlbmRhLWFjdGlvbi1pY29uIGNvbXBhcnRpbGhhciI+
77
+ PC9pPiBjb21wYXJ0aWxoYXINCgkJCQkJCQkJPC9hPg0KCQkJCQkJCTwvbGk+
78
+ DQoJCQkJCQk8L3VsPg0KDQoJCQkJCQk8ZGl2ICBjbGFzcz0iY29sb2NhSG92
79
+ ZXIiPg0KDQoJCQkJCQk8aDMgY2xhc3M9ImJsb2NrX2FnZW5kYS10aXRsZSI+
80
+ DQoNCgkJCQkJCQk8Zm9ybSBhY3Rpb249Ii9wcm9ncmFtYWNhby8xMDk0MjRf
81
+ TU9WRStOQVRBQ0FPIiBtZXRob2Q9InBvc3QiPg0KCQkJCQkJCSAgICA8YSBo
82
+ cmVmPSIvcHJvZ3JhbWFjYW8vMTA5NDI0X01PVkUrTkFUQUNBTyIgdGl0bGU9
83
+ InNhaWJhIG1haXMiDQoJCQkJCQkJICAgIGRhdGEtZ2EtY2F0ZWdvcnk9IlBy
84
+ b2dyYW1hY2FvIg0KCQkJCQkJCQlkYXRhLWdhLWFjdGlvbj0iTW92ZSBOYXRh
85
+ w6fDo28iDQoJCQkJCQkJCWRhdGEtZ2EtbGFiZWw9IiI+DQoJCQkJCQkJICAg
86
+ IAlNb3ZlIE5hdGHDp8Ojbw0KCQkJCQkJCQk8L2E+DQoJCQkJCQkJICAgIDxp
87
+ bnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2UiIHZhbHVlPSIxIi8+DQoJ
88
+ CQkJCQkJPC9mb3JtPg0KCQkJCQkJPC9oMz4NCgkJCQkJCTwvZGl2Pg0KDQoJ
89
+ CQkJCQkNCgkJCQkJCQkNCg0KCQkJCQkJPGRpdiAgY2xhc3M9ImNvbG9jYUhv
90
+ dmVyIj4NCgkJCQkJCTxkaXYgY2xhc3M9ImxpbmUtaW5mb3MgbGluZS1pbmZv
91
+ cy1saXN0Ij4NCgkJCQkJCQkJPHNwYW4+DQoJCQkJCQkJCQkNCgkJCQkJCQkJ
92
+ CTAzLzAxIGEgMzAvMTINCgkJCQkJCQkJDQoNCgkJCQkJCQkJDQoNCgkJCQkJ
93
+ CQkJPC9zcGFuPg0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPg0KCQkJ
94
+ CQkJCQkJRGl2ZXJzb3MgSG9yw6FyaW9zDQoJCQkJCQkJCTwvc3Bhbj4NCgkJ
95
+ CQkJCQkJPHNwYW4gY2xhc3M9InBsYWNlIj4NCgkJCQkJCQkJDQoJCQkJCQkJ
96
+ CSBWaWxhIE1hcmlhbmENCgkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJPC9kaXY+
97
+ DQoNCgkJCQkJCQk8Zm9ybSBhY3Rpb249Ii9wcm9ncmFtYWNhby8xMDk0MjRf
98
+ TU9WRStOQVRBQ0FPIiBtZXRob2Q9InBvc3QiPg0KCQkJCQkJCSAgICA8YSBj
99
+ bGFzcz0iZGVzYyIgaHJlZj0iL3Byb2dyYW1hY2FvLzEwOTQyNF9NT1ZFK05B
100
+ VEFDQU8iICB0aXRsZT0ic2FpYmEgbWFpcyINCgkJCQkJCQkgICAgZGF0YS1n
101
+ YS1jYXRlZ29yeT0iUHJvZ3JhbWFjYW8iDQoJCQkJCQkJCWRhdGEtZ2EtYWN0
102
+ aW9uPSJNb3ZlIE5hdGHDp8OjbyINCgkJCQkJCQkJZGF0YS1nYS1sYWJlbD0i
103
+ Ij4NCgkJCQkJCQkgICAgCVByb2pldG8gcXVlIGVzdGltdWxhIGEgcHLDoXRp
104
+ Y2EgYXV0w7Rub21hIGRhIG5hdGHDp8OjbywgcG9yIG1laW8gZGUgdHJlaW5v
105
+ cyBwcsOpLW1vbnRhZG9zLCBkaXNwb27DrXZlaXMgbmEuLi4NCgkJCQkJCQkJ
106
+ PC9hPg0KCQkJCQkJCSAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJw
107
+ YWdlIiB2YWx1ZT0iMSIvPg0KCQkJCQkJCTwvZm9ybT4NCg0KCQkJCQkJPC9k
108
+ aXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJibG9ja19hZ2VuZGEtY29udGVudCI+
109
+ DQoNCgkJCQkJCQk8dWwgY2xhc3M9ImJsb2NrX2FnZW5kYS1idG5zIj48L3Vs
110
+ Pg0KCQkJCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCg0KCQkJCQkJ
111
+ PC9kaXY+DQoNCgkJCQkJPC9kaXY+DQoNCgkJCQkJPGRpdiBjbGFzcz0iY2xl
112
+ YXIiPjwvZGl2Pg0KCQkJCQk8YXNpZGUgY2xhc3M9InZhbG9yZXNfYWNvZXMi
113
+ Pg0KCQkJCQk8ZGl2IHN0eWxlPSJtYXJnaW46IDdweCAtMjBweCA7Ij4NCgkJ
114
+ CQkJCTx1bCBjbGFzcz0ic2hhcmVfcG9zdCI+DQoJCQkJCQkJPGxpPg0KCQkJ
115
+ CQkJCQkgPGEgY2xhc3M9Imljb19zYWx2YXIiDQoJCQkJCQkJICAgICAgICAg
116
+ IGhyZWY9Ii9tZXUtcGVyZmlsL21vZGFsL3NhbHZhck5vdmFQcm9ncmFtYWNh
117
+ by5hY3Rpb24/YWdlbmRhSWQ9MTA5NDI0IiB0aXRsZT0iU2FsdmFyIg0KCQkJ
118
+ CQkJCSAgICAgICAgICBjbGFzcz0icnBsIGljb19zYWx2YXIgaWNvX3NhbHZh
119
+ cl9tdWx0aXBsb3MiIHJlbD0iYWRkLW15LXNlc2MgbXVsdGlwbGUtaXRlbnMg
120
+ b3Blbi1zYXZlLW1vZGFsIg0KCQkJCQkJCSAgICAgICAgICBkYXRhLWdhLWNh
121
+ dGVnb3J5PSJQcm9ncmFtYWNhbyINCgkJCQkJCQkJCQlkYXRhLWdhLWFjdGlv
122
+ bj0iTW92ZSBOYXRhw6fDo28iDQoJCQkJCQkJCQkJZGF0YS1nYS1sYWJlbD0i
123
+ U2FsdmFyIFByb2dyYW1hY2FvIj5zYWx2YXI8L2E+DQoJCQkJCQkJPC9saT4N
124
+ CgkJCQkJCTwvdWw+DQoJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0i
125
+ ZmFpeGEtZXRhcmlhIj4NCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJ
126
+ CQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InJlZCI+MTI8
127
+ L3NwYW4+DQoJCQkJCQkJCQkJPHA+TsOjbyByZWNvbWVuZGFkbyBwYXJhIG1l
128
+ bm9yZXMgZGUgMTIgYW5vczwvcD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJ
129
+ CQkJCQk8L2Rpdj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJwcmljZXMiPg0KCQkJ
130
+ CQkJCQk8dWw+DQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJ
131
+ CQk8dWwgY2xhc3M9ImJsb2NrX2FnZW5kYS10aWtldHMiPg0KCQkJCQkJCQkJ
132
+ PHVsIGNsYXNzPSJwcmVjb3NfZXZlbnRvIj4NCgkJCQkJCQkJCQkJCTxsaSBj
133
+ bGFzcz0iIj48c3BhbiBjbGFzcz0iaWNvX2dyYXRpcyI+PC9zcGFuPkdyJmFh
134
+ Y3V0ZTt0aXM8L2xpPg0KCQkJCQkJCQkJPC91bD4NCgkJCQkJCQkJPC91bD4N
135
+ CgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQk8L3VsPg0KCQkJCQkJPC9kaXY+
136
+ DQoJCQkJCQkJPC9hc2lkZT4NCgkJCQk8L2FydGljbGU+DQoNCgkJDQoJCQkJ
137
+ CTwvZGl2Pg0KCQ0KCQ0K
138
+ http_version:
139
+ recorded_at: Tue, 28 Nov 2017 21:57:09 GMT
140
+ recorded_with: VCR 3.0.3