sesc 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -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