EGP_Rates 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/egp_rates.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'oga'
4
4
  require 'json'
5
+ require 'thread'
5
6
  require 'egp_rates/bank'
6
7
  require 'egp_rates/cbe'
7
8
  require 'egp_rates/nbe'
@@ -16,6 +17,13 @@ require 'egp_rates/saib'
16
17
  require 'egp_rates/midb'
17
18
  require 'egp_rates/ube'
18
19
  require 'egp_rates/cae'
20
+ require 'egp_rates/edbe'
21
+ require 'egp_rates/alex_bank'
22
+ require 'egp_rates/blom'
23
+ require 'egp_rates/adib'
24
+ require 'egp_rates/egb'
25
+ require 'egp_rates/nbg'
26
+ require 'egp_rates/faisal_bank'
19
27
 
20
28
  # Base Module
21
29
  module EGPRates
@@ -23,4 +31,56 @@ module EGPRates
23
31
  # while scraping the [Bank] data
24
32
  class ResponseError < StandardError
25
33
  end
34
+
35
+ # Threaded execution to get the exchange rates from different banks
36
+ # @return [Hash] of the exchange rates of different banks
37
+ # {
38
+ # BANK: {
39
+ # sell: { SYM: rate, SYM: rate },
40
+ # buy: { SYM: rate, SYM: rate }
41
+ # },
42
+ # BANK: {
43
+ # sell: { SYM: rate, SYM: rate },
44
+ # buy: { SYM: rate, SYM: rate }
45
+ # },
46
+ # }
47
+ def self.exchange_rates
48
+ semaphore = Mutex.new
49
+ # Fetch all the constants (Banks) implemented
50
+ (constants - [:Bank, :ResponseError]).each_with_object({}) do |klass, rates|
51
+ Thread.new do
52
+ bank = EGPRates.const_get(klass).new
53
+
54
+ semaphore.synchronize do
55
+ begin
56
+ rates[klass] = bank.exchange_rates
57
+ rescue ResponseError
58
+ rates[klass] = 'Failed to get exchange rates'
59
+ end
60
+ end
61
+ end.join
62
+ end
63
+ end
64
+
65
+ # Return the exchange rate of a single currency from different banks
66
+ # @param [Symbol] sym, 3 charachter ISO symbol of the currency
67
+ # @param [Boolean] cache_result, a boolean to indicate whether or not
68
+ # the result of the exchange_rates call be cached
69
+ # @return [Hash] of the exchange rates in different banks for a specific
70
+ # currency
71
+ def self.exchange_rate(sym = :USD, cache_result = true)
72
+ @exchange_rates ||= exchange_rates if cache_result
73
+ @exchange_rates = exchange_rates unless cache_result
74
+
75
+ @exchange_rates.each_with_object({}) do |rates, result|
76
+ begin
77
+ result[rates[0]] = {
78
+ sell: rates[1][:sell].fetch(sym.upcase, 'Not Available'),
79
+ buy: rates[1][:buy].fetch(sym.upcase, 'Not Available')
80
+ }
81
+ rescue TypeError
82
+ result[rates[0]] = rates[1]
83
+ end
84
+ end
85
+ end
26
86
  end
@@ -0,0 +1,457 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.adib.eg/
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
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.adib.eg
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Cache-Control:
24
+ - private,no-cache
25
+ Content-Type:
26
+ - text/html; charset=utf-8
27
+ X-Content-Type-Options:
28
+ - nosniff
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ X-Xss-Protection:
32
+ - '1'
33
+ Strict-Transport-Security:
34
+ - max-age=31536000;includeSubDomains
35
+ Date:
36
+ - Sun, 20 Nov 2016 20:08:35 GMT
37
+ Content-Length:
38
+ - '18557'
39
+ body:
40
+ encoding: ASCII-8BIT
41
+ string: !binary |-
42
+ PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAg
43
+ VHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1s
44
+ MS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPjxodG1sIHhtbG5zPSJo
45
+ dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD4KPG1ldGEgbmFt
46
+ ZT0ic3VtbWFyeSIgY29udGVudD0iIGRlc2NyaXB0aW9uIiBjb250ZW50PSJB
47
+ RElCIEVneXB0IGlzIG9uZSBvZiB0aGUgbGFyZ2VzdCBJc2xhbWljIGJhbmtz
48
+ IG9wZXJhdGluZyBpbiBFZ3lwdCwgcHJvdmlkaW5nIGEgY29tcHJlaGVuc2l2
49
+ ZSByYW5nZSBvZiBJc2xhbWljIFNoYXJp4oCZYSBjb21wbGlhbnQgYmFua2lu
50
+ ZyBhbmQgZmluYW5jaWFsIHNlcnZpY2VzLiIgLz4KPG1ldGEgbmFtZT0iZGVz
51
+ Y3JpcHRpb24iIGNvbnRlbnQ9IkFESUIgRWd5cHQgaXMgb25lIG9mIHRoZSBs
52
+ YXJnZXN0IElzbGFtaWMgYmFua3Mgb3BlcmF0aW5nIGluIEVneXB0LCBwcm92
53
+ aWRpbmcgYSBjb21wcmVoZW5zaXZlIHJhbmdlIG9mIElzbGFtaWMgU2hhcmni
54
+ gJlhIGNvbXBsaWFudCBiYW5raW5nIGFuZCBmaW5hbmNpYWwgc2VydmljZXMu
55
+ Ii8+CjxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJJbnRlcm5ldCBi
56
+ YW5raW5nLCBiYW5rLCBiYW5raW5nLCBiYW5rcywgYmFuaydzLCBmaW5hbmNp
57
+ YWwsIGZpbmFuY2lhbHMsIEJhbmtzIGluIEVneXB0LCBFZ3lwdCBCYW5rcywg
58
+ QmFuayBpbiBFZ3lwdCwgSXNsYW1pYyBCYW5rLCBFZ3lwdCBCYW5rLCBTYXZp
59
+ bmdzIEFjY291bnQsIFNhdmluZ3MsIEFjY291bnQsIEludmVzdG1lbnQgQWNj
60
+ b3VudCwgQ3VycmVudCBBY2NvdW50LCBVQUUtRWd5cHQgQWNjb3VudCwgIE1h
61
+ c3RlciBDYXJkLCBDcmVkaXQgQ2FyZCwgQ2FzaGJhY2ssIEVneXB0LCBCYW5r
62
+ LCBCYW5rcywgUGVyc29uYWwgYmFua2luZywgQ29ycG9yYXRlIGJhbmtpbmcs
63
+ IEludmVzdG1lbnQsIGZpbmFuY2lhbCwgQ2FzaCBNYW5hZ2VtZW50LCBDb3Jw
64
+ b3JhdGUgZmluYW5jZSwgUGVyc29uYWwgRmluYW5jZSwgVHJhdmVsIEZpbmFu
65
+ Y2UsIENsdWIgRmluYW5jZSwgSGFqaiwgT21yYSwgVW1yYWgsIEVkdWNhdGlv
66
+ biBGaW5hbmNlLCBJc2xhbWljIEJhbmtpbmcsIFNhbmFiZWwsIENoYXJpdGFi
67
+ bGUgQWNjb3VudHMsIFVuZGVyc3RhbmRpbmcgSXNsYW1pYyBCYW5raW5nLCBB
68
+ RElCLCBMb2FuLCBNb25leSwgU1VLVUssIEF1dG8gTG9hbiwgQXV0bywgTXVy
69
+ YWJhaGEsIElqYXJhaCwgTXVkYXJhYmEsIEd1YXJhbnRlZSBTZXJ2aWNlcywg
70
+ RXhwb3J0IFNlcnZpY2VzLCBJbXBvcnQgU2VydmljZXMiLz4KPG1ldGEgbmFt
71
+ ZT0ibXN2YWxpZGF0ZS4wMSIgY29udGVudD0iMEUxQjY4NTkwOUVGNjU1MTFF
72
+ MEU5Rjk3NUZDRDI3NjAiIC8+CjxtZXRhIG5hbWU9InJvYm90cyIgY29udGVu
73
+ dD0iaW5kZXgsIGZvbGxvdyIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVu
74
+ dC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIvPjx0
75
+ aXRsZT5BYnUgRGhhYmkgSXNsYW1pYyBCYW5rIChBRElCKSAtIEVneXB0PC90
76
+ aXRsZT48bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9Ii9pbWFnZXMv
77
+ ZmF2aWNvbi5wbmciIHR5cGU9ImltYWdlL3gtaWNvbiI+PGxpbmsgcmVsPSJz
78
+ dHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iL2Nzcy9jc3MuY3Nz
79
+ Ii8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL3NsaWRlci5j
80
+ c3MiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIi8+PHNjcmlwdCB0
81
+ eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIHZhciBfZ2FxID0gX2dhcSB8fCBb
82
+ XTsKdmFyIHBsdWdpblVybCA9CicvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNv
83
+ bS9wbHVnaW5zL2dhL2lucGFnZV9saW5raWQuanMnOwpfZ2FxLnB1c2goWydf
84
+ cmVxdWlyZScsICdpbnBhZ2VfbGlua2lkJywgcGx1Z2luVXJsXSk7CiAgX2dh
85
+ cS5wdXNoKFsnX3NldEFjY291bnQnLCAnVUEtNDM3NjEzODAtMSddKTsKICBf
86
+ Z2FxLnB1c2goWydfdHJhY2tQYWdldmlldyddKTsKIAogIChmdW5jdGlvbigp
87
+ IHsKICAgIHZhciBnYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Njcmlw
88
+ dCcpOyBnYS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7IGdhLmFzeW5jID0g
89
+ dHJ1ZTsKICAgIGdhLnNyYyA9ICgnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2Nh
90
+ dGlvbi5wcm90b2NvbCA/ICdodHRwczovLycgOiAnaHR0cDovLycpICsgJ3N0
91
+ YXRzLmcuZG91YmxlY2xpY2submV0L2RjLmpzJzsKICAgIHZhciBzID0gZG9j
92
+ dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3NjcmlwdCcpWzBdOyBzLnBh
93
+ cmVudE5vZGUuaW5zZXJ0QmVmb3JlKGdhLCBzKTsKICB9KSgpOwo8L3Njcmlw
94
+ dD4KICAgPHNjcmlwdCBzcmM9Ii9jc3MvanMvanF1ZXJ5LTEuOS4xLmpzIj48
95
+ L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iL2Nzcy9qcy9qcXVlcnktdWku
96
+ Y3NzIj48L3NjcmlwdD4KICAKICA8c3R5bGU+CiAgICAjbWFzayB7CiBkaXNw
97
+ bGF5OiBub25lOwogYmFja2dyb3VuZDogIzAwMDsKIHBvc2l0aW9uOiBmaXhl
98
+ ZDsgbGVmdDogMDsgdG9wOiAwOwogei1pbmRleDogMTA7CiB3aWR0aDogMTAw
99
+ JTsgaGVpZ2h0OiAxMDAlOwogb3BhY2l0eTogMC44Owogei1pbmRleDogOTk5
100
+ OwogICAgICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JnU3ViTWVudS5wbmcp
101
+ IGxlZnQgMCByZXBlYXQ7Cn0KICAgIDwvc3R5bGU+CjxzY3JpcHQ+CmZ1bmN0
102
+ aW9uIG15RnVuY3Rpb24oKSB7CiAgICB2YXIgbXlXaW5kb3cgPSB3aW5kb3cu
103
+ b3BlbigiaHR0cHM6Ly9pYi5hZGliLmVnL2RvY3VtZW50cy9zZWN1cml0eVRp
104
+ cC5odG1sIiwgIm15V2luZG93IiwgInRvb2xiYXI9eWVzLCBzY3JvbGxiYXJz
105
+ PXllcyx3aWR0aD02MDAsIGhlaWdodD02MDAiKTsKCn0KPC9zY3JpcHQ+CiAg
106
+ ICA8c2NyaXB0PgogIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29n
107
+ bGVBbmFseXRpY3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsK
108
+ ICAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJndW1lbnRzKX0saVtyXS5s
109
+ PTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSwKICBtPXMuZ2V0
110
+ RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5w
111
+ YXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pCiAgfSkod2luZG93LGRvY3Vt
112
+ ZW50LCdzY3JpcHQnLCcvL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFs
113
+ eXRpY3MuanMnLCdnYScpOwogIGdhKCdjcmVhdGUnLCAnVUEtNDM3NjEzODAt
114
+ MScsICdhZGliLmVnJyk7CiAgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTsKPC9z
115
+ Y3JpcHQ+CiAgPHNjcmlwdD4KICAgICQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0
116
+ aW9uKCl7CiAgICAgICQoIiNsbmthcmFiaWMiKS5jbGljayggZnVuY3Rpb24o
117
+ KXsKdmFyIGxuayA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmOwogICAgICAgd2lu
118
+ ZG93LmxvY2F0aW9uLmhyZWYgPSBsbmsucmVwbGFjZSgiLmVnIiwiLmVnL2Fy
119
+ YWJpYyIpOwogICAgICB9CiAgICAKICAgICk7CiAgICAKICAgIH0pOwogICAg
120
+ CiAgICA8L3NjcmlwdD4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
121
+ dCI+CjwhLS0KZnVuY3Rpb24gZ2V0Q29uZmlybWF0aW9uKCl7CiAgIHZhciBy
122
+ ZXRWYWwgPSBjb25maXJtKCJZb3UgYXJlIGFib3V0IHRvIG9wZW4gYW4gZXh0
123
+ ZXJhbmwgbGluaywgcGxlYXNlIG5vdGUgdGhhdCBBRElCIEVneXB0IGlzIG5v
124
+ dCByZXNwb25zaWJsZSBmb3IgdGhlIGNvbnRlbnQgb3IgdGhlIHNlY3VyaXR5
125
+ IG9mIGFueSBleHRlcm5hbCBsaW5rcy4iKTsKICAgaWYoIHJldFZhbCA9PSB0
126
+ cnVlICl7CiAgIAogIHdpbmRvdy5vcGVuKCJodHRwOi8vaWZuYXdhcmRzLnJl
127
+ ZG1vbmV5Z3JvdXAuY29tL2Jlc3RiYW5rcy8yMDE1L2NhdC5hc3A/Y2F0PTEi
128
+ LCAiTXNnV2luZG93IiwgIndpZHRoPTEwMDAsIGhlaWdodD0xMDAwLCBzY3Jv
129
+ bGxiYXJzPXllcyIpOwoKICAgfWVsc2V7CgogICB9Cn0KLy8tLT4KPC9zY3Jp
130
+ cHQ+CjxtZXRhIG5hbWU9InA6ZG9tYWluX3ZlcmlmeSIgY29udGVudD0iYjcz
131
+ Mjk2NTNlOGVjZjI5MTRjNWM1MmEyMjk5NTdmNjciLz4KICA8L2hlYWQ+PGJv
132
+ ZHk+CgogIDwhLS0gR29vZ2xlIFRhZyBNYW5hZ2VyIC0tPgo8bm9zY3JpcHQ+
133
+ PGlmcmFtZSBzcmM9Ii8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL25zLmh0
134
+ bWw/aWQ9R1RNLU03SlQ4QiIKaGVpZ2h0PSIwIiB3aWR0aD0iMCIgc3R5bGU9
135
+ ImRpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbiI+PC9pZnJhbWU+PC9u
136
+ b3NjcmlwdD4KPHNjcmlwdD4oZnVuY3Rpb24odyxkLHMsbCxpKXt3W2xdPXdb
137
+ bF18fFtdO3dbbF0ucHVzaCh7J2d0bS5zdGFydCc6Cm5ldyBEYXRlKCkuZ2V0
138
+ VGltZSgpLGV2ZW50OidndG0uanMnfSk7dmFyIGY9ZC5nZXRFbGVtZW50c0J5
139
+ VGFnTmFtZShzKVswXSwKaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2Rh
140
+ dGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CicvL3d3
141
+ dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndG0uanM/aWQ9JytpK2RsO2YucGFy
142
+ ZW50Tm9kZS5pbnNlcnRCZWZvcmUoaixmKTsKfSkod2luZG93LGRvY3VtZW50
143
+ LCdzY3JpcHQnLCdkYXRhTGF5ZXInLCdHVE0tTTdKVDhCJyk7PC9zY3JpcHQ+
144
+ CjwhLS0gRW5kIEdvb2dsZSBUYWcgTWFuYWdlciAtLT4KCiAgPGZvcm0gbWV0
145
+ aG9kPSJwb3N0IiBhY3Rpb249Ii8iIGlkPSJmb3JtMSI+DQo8ZGl2IGNsYXNz
146
+ PSJhc3BOZXRIaWRkZW4iPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
147
+ X19WSUVXU1RBVEUiIGlkPSJfX1ZJRVdTVEFURSIgdmFsdWU9Ii93RVBEd1VF
148
+ TlRNNE1XUmtsZ1pPVHBxcnZacE5QK2hwUnBzTXJYR0tTSVA5REtwMnh0dktr
149
+ RDkvQlA4PSIgLz4NCjwvZGl2Pg0KPGRpdiBpZD0id3JhcHBlciI+PGRpdiBp
150
+ ZD0iY29udHNXcmFwIj4KICAKICAgCiAgCiAgPGRpdiBpZD0iaGVhZGVyd3Jh
151
+ cCI+PGEgaWQ9Imxua2FyYWJpYyIgY2xhc3M9ImxhbmdlIj48L2E+PGRpdiBp
152
+ ZD0iTmJkX0xvZ28iPjxzcGFuPjxhIGhyZWY9Ii8iIHRpdGxlPSJBRElCIEVn
153
+ eXB0Ij48L2E+PC9zcGFuPjwvZGl2PgogIDxkaXYgY2xhc3M9InRvcE5hdiI+
154
+ CiAgICA8dWwgaWQ9ImpEcm9wRG93biI+CiAgICAgIDxsaT48YSBocmVmPSIv
155
+ Ij5Ib21lPC9hPjwvbGk+CiAgICAgIDxsaT58PC9saT4KICAgICAgPGxpPjxh
156
+ IGhyZWY9Ii9hYm91dC1hZGliLWVneXB0Ij4gQWJvdXQgQURJQiBFZ3lwdDwv
157
+ YT4KICAgICAgPGRpdiBjbGFzcz0iY29sdW1uXzIiPgogICAgICAgIDx1bD4K
158
+ ICAgICAgICAgIDxsaT48YSBocmVmPSIvYWJvdXQtYWRpYi1lZ3lwdC9hYm91
159
+ dC1hZGliLWVneXB0Ij5BYm91dCBBRElCIEVneXB0IDwvYT48L2xpPgogICAg
160
+ ICAgICAgPGxpPjxhIGhyZWY9Ii9hYm91dC1hZGliLWVneXB0L3Zpc2lvbi1t
161
+ aXNzaW9uIj5WaXNpb24gJiBNaXNzaW9uIDwvYT48L2xpPgogICAgICAgICAg
162
+ PGxpPjxhIGhyZWY9Ii9hYm91dC1hZGliLWVneXB0L2JvYXJkLW9mLWRpcmVj
163
+ dG9ycyI+Qm9hcmQgb2YgRGlyZWN0b3JzIDwvYT48L2xpPgogICAgICAgICAg
164
+ PGxpPjxhIGhyZWY9Ii9hYm91dC1hZGliLWVneXB0L2NvcnBvcmF0ZS12YWx1
165
+ ZXMiPkNvcnBvcmF0ZSBWYWx1ZXMgPC9hPjwvbGk+CiAgICAgICAgPC91bD4K
166
+ ICAgICAgPC9kaXY+CiAgICAgIDwvbGk+CiAgICAgIDxsaT58PC9saT4KICAg
167
+ ICAgPGxpPjxhIGhyZWY9Ii91bmRlcnN0YW5kaW5nLWlzbGFtaWMtYmFua2lu
168
+ ZyI+VW5kZXJzdGFuZGluZyBJc2xhbWljIEJhbmtpbmc8L2E+PC9saT4KICAg
169
+ ICAgPGxpPnw8L2xpPgogICAgICA8bGkgY2xhc3M9ImRpc3BsYXlOb25lIj58
170
+ PC9saT48bGk+PGEgaHJlZj0iL2NzciI+Q1NSPC9hPjwvbGk+CiAgICAgIDxs
171
+ aT58PC9saT48bGk+PGEgPkludmVzdG9yIFJlbGF0aW9uczwvYT4KICAgICAg
172
+ PGRpdiBjbGFzcz0iY29sdW1uXzIiPgogICAgICAgIDx1bD4KICAgICAgICA8
173
+ bGk+PGEgaHJlZj0iL2ZpbmFuY2lhbC1yZXN1bHRzIj5GaW5hbmNpYWwgUmVw
174
+ b3J0cyA8L2E+PC9saT4KICAgICAgICAgIDxsaT48YSBocmVmPSIvYXVkaXQt
175
+ Y29tbWl0dGVlLXJlcG9ydHMiPkF1ZGl0IENvbW1pdHRlZSBSZXBvcnRzPC9h
176
+ PjwvbGk+CiAgICAgICAgICA8bGk+PGEgaHJlZj0iL3NoYXJlaG9sZGVycy1z
177
+ dHJ1Y3R1cmUiPlNoYXJlaG9sZGVycyBTdHJ1Y3R1cmU8L2E+PC9saT4KICAg
178
+ ICAgICAgIDxsaT48YSBocmVmPSIvZXhlY3V0aXZlLW1hbmFnZW1lbnQiPkV4
179
+ ZWN1dGl2ZSBNYW5hZ2VtZW50PC9hPjwvbGk+CiAgICAgICAgICA8bGk+PGEg
180
+ aHJlZj0iL2Fib3V0LWFkaWItZWd5cHQvYm9hcmQtb2YtZGlyZWN0b3JzIj5C
181
+ b2FyZCBvZiBEaXJlY3RvcnM8L2E+PC9saT4KICAgICAgICAgIDxsaT48YSBo
182
+ cmVmPSIvZ2FtLXJlc29sdXRpb25zIj5HYW0gUmVzb2x1dGlvbnM8L2E+PC9s
183
+ aT4KICAgICAgICAgIDxsaT48YSBocmVmPSIvZ2FtLW1pbnV0ZXMiPkdhbSBN
184
+ aW51dGVzPC9hPjwvbGk+CiAgICAgICAgICA8bGk+PGEgaHJlZj0iL21ham9y
185
+ LWRlY2lzaW9ucyI+TWFqb3IgRGVjaXNpb25zPC9hPjwvbGk+CiAgICAgICAg
186
+ ICA8bGk+PGEgaHJlZj0iL2ludmVzdG9ycy1yZWxhdGlvbnMtb2ZmaWNpYWxz
187
+ Ij5JbnZlc3RvcnMgUmVsYXRpb25zIE9mZmljaWFsczwvYT48L2xpPgogICAg
188
+ ICAgICAgPGxpPjxhIGhyZWY9Ii9hZGRpdGlvbmFsLWluZm9ybWF0aW9uIj5B
189
+ RElCIEFkZGl0aW9uYWwgSW5mb3JtYXRpb248L2E+PC9saT4KICAgICAgICA8
190
+ L3VsPgogICAgICA8L2Rpdj4KICAgICAgPC9saT4KICAgICAgPGxpPnw8L2xp
191
+ PjxsaT48YSBocmVmPSIvY29udGFjdC11cyI+Q29udGFjdCBVczwvYT48L2xp
192
+ PjxsaT4KICAgICAgICAgICAgPGEgaWQ9Imxua2FyYWJpYyIgY2xhc3M9Imxh
193
+ bmciPj8/Pz88L2E+CiAgICAgICAgICAgIDwvbGk+PC91bD48L2Rpdj48L2Rp
194
+ dj48ZGl2IGlkPSJMZWZ0U2lkZSI+PGRpdiBpZD0iaGVhZGVyIj48ZGl2IGNs
195
+ YXNzPSJ3cmFwIj48ZGl2IGlkPSJzbGlkZS1ob2xkZXIiPjxkaXYgaWQ9InNs
196
+ aWRlLXJ1bm5lciI+CiAgICAgICAgICAgIDxwPjxhIGhyZWY9Ii9uZXdicmFu
197
+ Y2hlcy9pbmRleC5odG1sIj48aW1nIHNyYz0iL21lZGlhLzE5NjQxOS9uZXct
198
+ YnJhbmNoZXN3d3cuanBnIiB3aWR0aD0iNzU3IiBoZWlnaHQ9IjE4MiIgYWx0
199
+ PSJBRElCIFNNQVJUIiBjbGFzcz0ic2xpZGUiIGlkPSJzbGlkZS1pbWctMTAy
200
+ Ii8+PC9hPjxhIGhyZWY9Ii9wZXJzb25hbC1iYW5raW5nL0FESUItU21hcnQv
201
+ c21hcnQiPjxpbWcgc3JjPSIvbWVkaWEvMTY2NTQ5L3NtYXJ0LS0tZW4tNzU3
202
+ LmpwZyIgd2lkdGg9Ijc1NyIgaGVpZ2h0PSIxODIiIGFsdD0iQURJQiBTTUFS
203
+ VCIgY2xhc3M9InNsaWRlIiBpZD0ic2xpZGUtaW1nLTEwMyIvPjwvYT48YSBo
204
+ cmVmPSIvcGVyc29uYWwtYmFua2luZy9zdWt1ay91c2Qtc3VrdWsiIHRpdGxl
205
+ PSJVU0QgU3VrdWsiPjxpbWcgc3JjPSIvbWVkaWEvMTQyMDUwL2FkaWJfLV91
206
+ c2Rfc3VrdWtfZW5nbGlzaF83NTd4MTgyX2Jhbm5lcl8yMC05LTE1LmpwZyIg
207
+ d2lkdGg9Ijc1NyIgaGVpZ2h0PSIxODIiIGFsdD0iVVNEIFN1a3VrIiBjbGFz
208
+ cz0ic2xpZGUiIGlkPSJzbGlkZS1pbWctMTA0Ii8+PC9hPjxhIGhyZWY9Ii9i
209
+ dXNpbmVzcy1iYW5raW5nL2J1c2luZXNzLWZpbmFuY2luZyIgdGl0bGU9IkFE
210
+ SUIgQnVzaW5lc3MiPjxpbWcgc3JjPSIvbWVkaWEvMTUzNTAyL2J1c2luZXNz
211
+ YmFua2luZy1lbi13ZWJiYW5uZXIuanBnIiB3aWR0aD0iNzU3IiBoZWlnaHQ9
212
+ IjE4MiIgYWx0PSJTYXZpbmcgRmVzdGl2YWwiIGNsYXNzPSJzbGlkZSIgaWQ9
213
+ InNsaWRlLWltZy0xMDUiLz48L2E+PGEgaHJlZj0iL3BlcnNvbmFsLWJhbmtp
214
+ bmcvY2FzaC1iYWNrLWNhcmQiPjxpbWcgc3JjPSIvbWVkaWEvMTMwNTc4L3dl
215
+ YnNpdGVfYmFubmVycy03NTd4MTgyLWVuZy5qcGciIHdpZHRoPSI3NTciIGhl
216
+ aWdodD0iMTgyIiBhbHQ9IkNhc2ggRGVib3NpdCBBVE1zIiBjbGFzcz0ic2xp
217
+ ZGUiIGlkPSJzbGlkZS1pbWctMTA2Ii8+PC9hPjxhIGhyZWY9Ii93aG9sZXNh
218
+ bGUtYmFua2luZyI+PGltZyBzcmM9Ii9tZWRpYS8xNTYxNDgvY29ycG9yYXRl
219
+ LWJhbm5lci1lbi5qcGciIHdpZHRoPSI3NTciIGhlaWdodD0iMTgyIiBhbHQ9
220
+ IlRvZ3RoZXIuLi4gV2Ugd2lsbCBoZWxwIHlvdSB3aXRoIHlvdXIgbmVlZHMi
221
+ IGNsYXNzPSJzbGlkZSIgaWQ9InNsaWRlLWltZy0xMDciLz48L2E+PC9wPgog
222
+ ICAgICAgICAgICAKICAgICAgICAgICAgPGRpdiBpZD0ic2xpZGUtY29udHJv
223
+ bHMiPjxwIGlkPSJzbGlkZS1uYXYiPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48
224
+ L2Rpdj48L2Rpdj4KICAgICAgICAgICAgPHAgY2xhc3M9IkJhbmtpbmdNTUYi
225
+ PkNsb3NpbmcgcHJpY2Ugb2YgQURJQiBFZ3lwdCBTaGFyaSdhIENvbXBsaWFu
226
+ dCBNb25leSBNYXJrZXQgRnVuZCB3aXRoPGJyIC8+RGFpbHkgQ3VtdWxhdGl2
227
+ ZSBSZXR1cm5zIGFzIG9mOiAxOS8xMS8yMDE2IGF0IDxzcGFuIGNsYXNzPSJy
228
+ ZWQiPkVHUCAxMTYuPHNwYW4gY2xhc3M9InJlZCI+ODM1MDwvc3Bhbj48L3Nw
229
+ YW4+PC9wPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJCb3hBbGwiPgogICAg
230
+ ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4K
231
+ ICAgICAgICAgICAgCgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJCb3giPjxk
232
+ aXYgY2xhc3M9IkJveFRvcDIiPjxzcGFuPlBlcnNvbmFsIEJhbmtpbmc8L3Nw
233
+ YW4+PC9kaXY+PGRpdiBjbGFzcz0iQm94Q29udGVudCI+PHVsPgo8bGkgc3R5
234
+ bGU9IndpZHRoOiAxNTBweDsiPjxhIGhyZWY9Ii9wZXJzb25hbC1iYW5raW5n
235
+ L0FESUItU21hcnQiIHRpdGxlPSJBRElCIFNNQVJUIj5BRElCIFNNQVJUPC9h
236
+ PjwvbGk+CjxsaSBzdHlsZT0id2lkdGg6IDE1MHB4OyI+PGEgaHJlZj0iL3Bl
237
+ cnNvbmFsLWJhbmtpbmcvY2FzaC1iYWNrLWNhcmQiIHRpdGxlPSJDYXNoIEJh
238
+ Y2sgQ2FyZCI+Q2FzaCBCYWNrIENhcmQ8L2E+PC9saT4KPGxpPjxhIGhyZWY9
239
+ Ii9wZXJzb25hbC1iYW5raW5nL2FjY291bnRzIiB0aXRsZT0iQWNjb3VudHMi
240
+ PkFjY291bnRzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvcGVyc29uYWwtYmFu
241
+ a2luZy9zdWt1ayIgdGl0bGU9IlNoYXJpJ2EgQ29tcGxpYW50IENlcnRpZmlj
242
+ YXRlcyBvZiBEZXBvc2l0Ij5TdWt1azwvYT48L2xpPgo8bGk+PGEgaHJlZj0i
243
+ L3BlcnNvbmFsLWJhbmtpbmcvZmluYW5jaW5nLW9wdGlvbnMiIHRpdGxlPSJG
244
+ aW5hbmNpbmcgT3B0aW9ucyI+RmluYW5jaW5nIE9wdGlvbnM8L2E+PC9saT4K
245
+ PGxpPjxhIGhyZWY9Ii9wZXJzb25hbC1iYW5raW5nL2NoYXJpdGFibGUtYWNj
246
+ b3VudHMiIHRpdGxlPSJDaGFyaXRhYmxlIEFjY291bnRzIj5DaGFyaXRhYmxl
247
+ IEFjY291bnRzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvcGVyc29uYWwtYmFu
248
+ a2luZy9zYW5hYmVsIiB0aXRsZT0iU2FuYWJlbCI+U2FuYWJlbDwvYT48L2xp
249
+ Pgo8L3VsPjwvZGl2PjxkaXYgY2xhc3M9Ik1vcmVCb3gyIj48YSBocmVmPSIv
250
+ cGVyc29uYWwtYmFua2luZyI+Q2xpY2sgaGVyZSB0byBrbm93IG1vcmU8L2E+
251
+ PC9kaXY+PGRpdiBjbGFzcz0iQm94RW5kIj48L2Rpdj48L2Rpdj4KICAgICAg
252
+ ICAgICAgPGRpdiBjbGFzcz0iQm94Ij48ZGl2IGNsYXNzPSJCb3hUb3AyIj48
253
+ c3Bhbj5CdXNpbmVzcyBCYW5raW5nPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9
254
+ IkJveENvbnRlbnQiPjx1bD4KPGxpPjxhIGhyZWY9Ii9idXNpbmVzcy1iYW5r
255
+ aW5nL2FkaWItYnVzaW5lc3MtYmFua2luZyIgdGl0bGU9IkFESUIgQnVzaW5l
256
+ c3MgQmFua2luZyI+QURJQiBCdXNpbmVzcyBCYW5raW5nPC9hPjwvbGk+Cjxs
257
+ aT48YSBocmVmPSIvYnVzaW5lc3MtYmFua2luZy9idXNpbmVzcy1maW5hbmNp
258
+ bmciIHRpdGxlPSJCdXNpbmVzcyBGaW5hbmNpbmciPkJ1c2luZXNzIEJhbmtp
259
+ bmcgRmluYW5jaW5nPC9hPjwvbGk+CjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0i
260
+ TW9yZUJveDIiPjxhIGhyZWY9Ii9idXNpbmVzcy1iYW5raW5nIj5DbGljayBo
261
+ ZXJlIHRvIGtub3cgbW9yZTwvYT48L2Rpdj48ZGl2IGNsYXNzPSJCb3hFbmQi
262
+ PjwvZGl2PjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJCb3giPjxk
263
+ aXYgY2xhc3M9IkJveFRvcDIiPjxzcGFuPldob2xlc2FsZSBCYW5raW5nPC9z
264
+ cGFuPjwvZGl2PjxkaXYgY2xhc3M9IkJveENvbnRlbnQiPjx1bD4KPGxpPjxh
265
+ IGhyZWY9Ii93aG9sZXNhbGUtYmFua2luZy9jb3Jwb3JhdGUtYmFua2luZy1w
266
+ YXJ0Ij5Db3Jwb3JhdGUgQmFua2luZzwvYT48L2xpPgo8bGk+PGEgaHJlZj0i
267
+ L3dob2xlc2FsZS1iYW5raW5nL2ZpbmFuY2lhbC1pbnN0aXR1dGlvbnMtZmki
268
+ PkZpbmFuY2lhbCBJbnN0aXR1dGlvbnPCoCZhbXA7PC9hPiA8YSBocmVmPSIv
269
+ d2hvbGVzYWxlLWJhbmtpbmcvdHJhZGUtZmluYW5jZSI+VHJhZGU8L2E+PC9s
270
+ aT4KPGxpPjxhIGhyZWY9Ii93aG9sZXNhbGUtYmFua2luZyI+Q2FzaCBNYW5h
271
+ Z2VtZW50PC9hPjwvbGk+CjxsaT48YSBocmVmPSIvd2hvbGVzYWxlLWJhbmtp
272
+ bmcvY29ycG9yYXRlLWZpbmFuY2UiPkNvcnBvcmF0ZSBGaW5hbmNlPC9hPjwv
273
+ bGk+CjxsaT48YSBocmVmPSIvbWVkaWEvNzk0NzAvYmFua2luZ19zZXJ2aWNl
274
+ c19hZ3JlZW1lbnRfZm9yX2NvcnBvcmF0ZXMucGRmIj5Db3Jwb3JhdGUgQlNB
275
+ PC9hPsKgYW5kIDxhIGhyZWY9Ii9tZWRpYS83OTQ3My9ic2EtY29ycC10ZXJt
276
+ c19hbmRfY29uZGl0aW9ucy5wZGYiPnRlcm1zICZhbXA7IGNvbmRpdGlvbnM8
277
+ L2E+wqA8aW1nIHNyYz0iL21lZGlhLzc5NzY5L3BkZi5wbmciIHdpZHRoPSIx
278
+ NCIgaGVpZ2h0PSIxOCIgYWx0PSJQZGYiLz48L2xpPgo8L3VsPjwvZGl2Pjxk
279
+ aXYgY2xhc3M9Ik1vcmVCb3gyIj48YSBocmVmPSIvd2hvbGVzYWxlLWJhbmtp
280
+ bmciPkNsaWNrIGhlcmUgdG8ga25vdyBtb3JlPC9hPjwvZGl2PjxkaXYgY2xh
281
+ c3M9IkJveEVuZCI+PC9kaXY+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xh
282
+ c3M9IkJveCI+PGRpdiBjbGFzcz0iQm94VG9wMiI+PHNwYW4+VHJlYXN1cnk8
283
+ L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iQm94Q29udGVudCI+PHVsPgo8bGk+
284
+ PGEgaHJlZj0iL3RyZWFzdXJ5Ij5Gb3JlaWduIEV4Y2hhbmdlPC9hPjwvbGk+
285
+ CjxsaT48YSBocmVmPSIvdHJlYXN1cnkiPlNoYXJpJ2EgY29tcGxpYW50IHBy
286
+ b2R1Y3RzPC9hPjwvbGk+CjxsaT48YSBocmVmPSIvdHJlYXN1cnkiPk1hcmtl
287
+ dCBBbmFseXNpcy9VcGRhdGVzPC9hPjwvbGk+CjwvdWw+PC9kaXY+PGRpdiBj
288
+ bGFzcz0iTW9yZUJveDIiPjxhIGhyZWY9Ii90cmVhc3VyeSI+Q2xpY2sgaGVy
289
+ ZSB0byBrbm93IG1vcmU8L2E+PC9kaXY+PGRpdiBjbGFzcz0iQm94RW5kIj48
290
+ L2Rpdj48L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgICAgIDxkaXYgY2xh
291
+ c3M9ImNsZWFyIj48L2Rpdj4KCjxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MjVw
292
+ eCIgYWxpZ249ImNlbnRlciIgPgogICAgPGEgaHJlZj0iL2JyYW5jaGVzLTki
293
+ PjxpbWcgU3JjPSIvbWVkaWEvMTg2NTk0LzlwbS5qcGciIGJvcmRlcj0iMCI+
294
+ PC9hPgogICAgICAgIDwhLS0gICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6Z2V0
295
+ Q29uZmlybWF0aW9uKCk7Ij48aW1nIFNyYz0iL21lZGlhLzE0ODgyNi9pZm5f
296
+ YXdhcmRfcG9sbF8yMDE1LmpwZyIgYm9yZGVyPSIwIj48L2E+LS0+PC9kaXY+
297
+ CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAKICAgICAgICAgICAg
298
+ PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IlJpZ2h0U2lkZSI+PGRp
299
+ diBjbGFzcz0iV2F5cyI+PC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFz
300
+ cz0iQ2FsbFVzIj4KICAgICAgICAgICAgICAgIDx1bD4KPGxpPjxzdHJvbmc+
301
+ ZS1BRElCPGJyIC8+SW50ZXJuZXQgQmFua2luZzwvc3Ryb25nPgo8ZGl2IGNs
302
+ YXNzPSJsb2dpbiI+Cjx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIw
303
+ IiBjZWxscGFkZGluZz0iMCIgc3R5bGU9IndpZHRoOiAxNzBweDsgaGVpZ2h0
304
+ OiAxMnB4OyI+Cjx0Ym9keT4KPHRyPgo8dGQgYWxpZ249ImxlZnQiIHN0eWxl
305
+ PSJ3aWR0aDogMTAwcHg7Ij48YSBocmVmPSIvcmVnaXN0cmF0aW9uIiB0aXRs
306
+ ZT0iSW50ZXJuZXQgQmFua2luZyBSZWdpc3RyYXRpb24iPjxpbWcgc3JjPSIv
307
+ bWVkaWEvMTA4NDE3L3JlZ2lzdGVyLW9ubGluZS5wbmciIHdpZHRoPSI5NCIg
308
+ aGVpZ2h0PSIyMCIgYWx0PSJSZWdpc3RlciAtb25saW5lIi8+PC9hPjwvdGQ+
309
+ Cjx0ZCBhbGlnbj0ibGVmdCI+PGEgaHJlZj0iaHR0cHM6Ly9pYi5hZGliLmVn
310
+ L3JlYi9yZWJjdy9Db250cm9sbGVyLmpwZiIgdGl0bGU9IkludGVybmV0IEJh
311
+ bmtpbmcgTG9naW4iPjxpbWcgc3JjPSIvbWVkaWEvMTA4NDIyL2xvZ2luLnBu
312
+ ZyIgd2lkdGg9IjQ3IiBoZWlnaHQ9IjIwIiBhbHQ9IkxvZ2luIi8+PC9hPjwv
313
+ dGQ+CjwvdHI+Cjx0cj4KPHRkIGNvbHNwYW49IjIiPgo8YSBocmVmPSIiPjxp
314
+ bWcgc3JjPSIvbWVkaWEvODU1MjYvc24tZW4tbGluay5wbmciIHdpZHRoPSIx
315
+ MzBweCIgc3R5bGU9InBhZGRpbmctdG9wOjVweCIgb25jbGljaz0ibXlGdW5j
316
+ dGlvbigpIiAvPjwvYT4KPC90ZD4KPC90cj4KPC90Ym9keT4KPC90YWJsZT4K
317
+ PC9kaXY+CjwvbGk+CjxsaT48c3Ryb25nPkNBTEwgVVMgT048L3N0cm9uZz4K
318
+ PHAgY2xhc3M9IkltZ2UiPsKgPC9wPgo8L2xpPgo8bGkgc3R5bGU9ImZvbnQt
319
+ c2l6ZTogMTVweDsiPjxhIGhyZWY9Ii9icmFuY2hlcyIgY2xhc3M9IkNhbGxV
320
+ c0xpbmsiPkJyYW5jaGVzPC9hPjwvbGk+CjxsaSBzdHlsZT0iZm9udC1zaXpl
321
+ OiAxNXB4OyI+PGEgaHJlZj0iL2F0bS1sb2NhdGlvbnMiIGNsYXNzPSJDYWxs
322
+ VXNMaW5rIj5BVE0gTG9jYXRpb25zPC9hPjwvbGk+CjwvdWw+Cjx0YWJsZSBi
323
+ b3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIyIiBjZWxscGFkZGluZz0iMiIgc3R5
324
+ bGU9IndpZHRoOiAxOTVweDsiPgo8dGJvZHk+Cjx0cj4KPHRkIGNvbHNwYW49
325
+ IjMiIHdpZHRoPSIxOTUiIGhlaWdodD0iMjUiPgo8aDM+Q3VycmVuY3kgRXhj
326
+ aGFuZ2UgUmF0ZXM8L2gzPgoyMC8xMS8yMDE2IC0gMTA8c3Bhbj46MjYgQU08
327
+ L3NwYW4+PC90ZD4KPC90cj4KPHRyIHN0eWxlPSJjb2xvcjogd2hpdGU7Ij4K
328
+ PHRkIGJnY29sb3I9IiMyMmFlZWMiPjxzdHJvbmc+Q3VycmVuY3k8L3N0cm9u
329
+ Zz48L3RkPgo8dGQgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iIzIyYWVlYyI+
330
+ PHN0cm9uZz5CdXlpbmc8L3N0cm9uZz48L3RkPgo8dGQgYWxpZ249ImNlbnRl
331
+ ciIgYmdjb2xvcj0iIzIyYWVlYyI+PHN0cm9uZz5TZWxsaW5nPC9zdHJvbmc+
332
+ PC90ZD4KPC90cj4KPHRyPgo8dGQ+VVNEPC90ZD4KPHRkIGFsaWduPSJjZW50
333
+ ZXIiPjxzcGFuPjE3LjAwMDA8L3NwYW4+PC90ZD4KPHRkIGFsaWduPSJjZW50
334
+ ZXIiPjE3LjUwMDA8L3RkPgo8L3RyPgo8dHI+Cjx0ZCBiZ2NvbG9yPSIjZGZm
335
+ NWZiIj5HQlA8L3RkPgo8dGQgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iI2Rm
336
+ ZjVmYiI+PHNwYW4+PHNwYW4+MjAuOTA0OTwvc3Bhbj48L3NwYW4+PC90ZD4K
337
+ PHRkIGFsaWduPSJjZW50ZXIiIGJnY29sb3I9IiNkZmY1ZmIiPjxzcGFuPjIx
338
+ Ljc2MzA8L3NwYW4+PC90ZD4KPC90cj4KPHRyPgo8dGQ+RVVSPC90ZD4KPHRk
339
+ IGFsaWduPSJjZW50ZXIiPjxzcGFuPjxzcGFuPjE3Ljk2Mzk8L3NwYW4+PC9z
340
+ cGFuPjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48c3Bhbj4xOC42MjM1PC9z
341
+ cGFuPjwvdGQ+CjwvdHI+Cjx0cj4KPHRkIGJnY29sb3I9IiNkZmY1ZmIiPlNB
342
+ UjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIiBiZ2NvbG9yPSIjZGZmNWZiIj48
343
+ c3Bhbj48c3Bhbj40LjUzMjU8L3NwYW4+PC9zcGFuPjwvdGQ+Cjx0ZCBhbGln
344
+ bj0iY2VudGVyIiBiZ2NvbG9yPSIjZGZmNWZiIj48c3Bhbj40LjY2Njk8L3Nw
345
+ YW4+PC90ZD4KPC90cj4KPHRyPgo8dGQ+QUVEPC90ZD4KPHRkIGFsaWduPSJj
346
+ ZW50ZXIiPjxzcGFuPjxzcGFuPjQuNjI4NDwvc3Bhbj48L3NwYW4+PC90ZD4K
347
+ PHRkIGFsaWduPSJjZW50ZXIiPjxzcGFuPjQuNzY0Njwvc3Bhbj48L3RkPgo8
348
+ L3RyPgo8L3Rib2R5Pgo8L3RhYmxlPgogICAgICAgICAgICAgIDwvZGl2Pgog
349
+ ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNsciI+PC9kaXY+PGJy
350
+ Lz4gICAgCiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNjaGVkdWxlIj4K
351
+ ICAgICAgICAgICAgICA8aDM+U0NIRURVTEUgT0YgQ0hBUkdFUzwvaDM+CiAg
352
+ ICAgICAgICAgICAgPHA+RGV0YWlsZWQgcGVyc29uYWwgYXMgd2VsbCBhcyBj
353
+ b3Jwb3JhdGUgYmFua2luZyByZWxhdGVkIGZlZXMgYW5kIGNoYXJnZXMuIDwv
354
+ cD4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJNb3JlU2NoZWR1bGUiPjxh
355
+ IGhyZWY9Ii9zY2hlZHVsZS1vZi1jaGFyZ2VzIj5DbGljayBoZXJlIHRvIGtu
356
+ b3cgbW9yZTwvYT48L2Rpdj4KICAgICAgICAgICAgICAgICAKICAgICAgICAg
357
+ ICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2
358
+ IGNsYXNzPSJOZXdzU2VjdGlvbiI+CiAgICAgICAgICAgICAgPGRpdiBjbGFz
359
+ cz0iTmV3c3VwZGF0ZXMiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
360
+ QWxsIj4KICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InZp
361
+ c2liaWxpdHlIaWRkZW4iPlZpZXcgQWxsIDwvYT4KICAgICAgICAgICAgICAg
362
+ ICAgPGltZyBzcmM9Ii9pbWFnZXMvTmV3cy5qcGciIGFsdD0iTmV3cyIgd2lk
363
+ dGg9IjkyIiBoZWlnaHQ9IjgxIi8+CiAgICAgICAgICAgICAgICA8L2Rpdj4K
364
+ ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Ik5ld3NEZXMiPgogICAgICAg
365
+ ICAgICAgICAgICA8aDI+TmV3cyAmIHVwZGF0ZXM8L2gyPgogICAgICAgICAg
366
+ ICAgICAgICA8dWw+PGxpPjxzdHJvbmc+MDEtMDQtMjAxNjwvc3Ryb25nPjxh
367
+ IGhyZWY9Ii9uZXdzL2dsb2JhbC1maW5hbmNlLTIwMTYiPkFESUItRWd5cHQg
368
+ TmFtZWQg4oCcQmVzdCBJc2xhbWljIEZpbmFuY2lhbCBJbnN0aXR1dGlvbuKA
369
+ nSBieSBHbG9iYWwgRmluYW5jZSA8L2E+PC9saT48L3VsPjxkaXYgY2xhc3M9
370
+ Ik1vcmVCb3gzIiBzdHlsZT0iZmxvYXQ6cmlnaHQ7Ij48YSBjbGFzcz0idmll
371
+ dyIgaHJlZj0iL25ld3MiPlZpZXcgQWxsPC9hPjwvZGl2PgogICAgICAgICAg
372
+ ICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAg
373
+ ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iTmV3c3VwZGF0ZXMiPgogICAg
374
+ ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQWxsIj4KICAgICAgICAg
375
+ ICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InZpc2liaWxpdHlI
376
+ aWRkZW4iPlZpZXcgQWxsIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAg
377
+ PGltZyBzcmM9Ii9pbWFnZXMvZmluYW5jYWwtcmVwb3J0LmpwZyIgYWx0PSJG
378
+ aW5hbmNpYWwgUmVwb3J0cyIgd2lkdGg9IjkyIiBoZWlnaHQ9IjgxIi8+PC9k
379
+ aXY+PGRpdiBjbGFzcz0iTmV3c0RlcyI+PGgyPiBGaW5hbmNpYWwgUmVwb3J0
380
+ czwvaDI+PHVsPgo8bGk+PHN0cm9uZz4zMS0wMy0yMDE2PC9zdHJvbmc+PGEg
381
+ aHJlZj0iL21lZGlhLzE2ODMwMi9xMV8yMDE2X2NvbnNpbGlkYXRlZF9lbi5w
382
+ ZGYiIHRhcmdldD0iX2JsYW5rIj4gUTEgLSAyMDE2IEZpbmFuY2lhbCBSZXBv
383
+ cnQgKENvbnMpPC9hPjwvbGk+CjxsaT48c3Ryb25nPjMxLTAzLTIwMTY8L3N0
384
+ cm9uZz48YSBocmVmPSIvbWVkaWEvMTY4Mjk5L3ExXzIwMTZfc3RhbmRhbG9u
385
+ ZV9lbi5wZGYiIHRhcmdldD0iX2JsYW5rIj4gUTEgLSAyMDE2IEZpbmFuY2lh
386
+ bCBSZXBvcnQgKFNBKTwvYT48L2xpPgo8L3VsPgo8ZGl2IGNsYXNzPSJNb3Jl
387
+ Qm94MyI+PGEgaHJlZj0iL2ZpbmFuY2lhbC1yZXN1bHRzIj5Nb3JlIEZpbmFu
388
+ Y2lhbCBSZXBvcnRzPC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9
389
+ Ik5ld3N1cGRhdGVzIj48ZGl2IGNsYXNzPSJBbGwiPjwvZGl2PjxkaXYgY2xh
390
+ c3M9Ik5ld3NEZXMiPjxoMj4gQW5udWFsIFJlcG9ydDwvaDI+PHVsPgo8bGk+
391
+ PHN0cm9uZz4zMS0xMi0yMDEzPC9zdHJvbmc+PGEgaHJlZj0iL0FESUIlMjBB
392
+ bm51YWwlMjBSZXBvcnQlMjAyMDEzJTIwRW4ucGRmIiB0YXJnZXQ9Il9ibGFu
393
+ ayI+IEFubnVhbCBSZXBvcnQgMjAxMzwvYT48L2xpPgo8L3VsPjwvZGl2Pjwv
394
+ ZGl2PjwvZGl2PjxkaXYgY2xhc3M9IkJnRm9vdGVyIj48YSBocmVmPSIvY2Fs
395
+ Y3VsYXRvciIgY2xhc3M9ImFGb290ZXIiPkZpbmFuY2UgQ2FsY3VsYXRvcjwv
396
+ YT48L2Rpdj48ZGl2IGNsYXNzPSJGb290ZXJMaW5rcyI+PGEgaHJlZj0iL3Np
397
+ dGVtYXAiPlNpdGUgTWFwPC9hPiB8IDxhIGhyZWY9Ii90ZXJtLWNvbmRpdGlv
398
+ biI+VGVybXMgJiBDb25kaXRpb25zIDwvYT48L2Rpdj48ZGl2IGNsYXNzPSJD
399
+ b3B5UmlnaHQiPkRldmVsb3BlZCBCeSA8YSBocmVmPSJodHRwOi8vd3d3Lm5l
400
+ dC13YXZlLm5ldCIgdGFyZ2V0PSJfYmxhbmsiPk5ldFdhdmU8L2E+PC9kaXY+
401
+ PC9kaXY+PC9kaXY+PC9mb3JtPgogICAgICAgICAgPHNjcmlwdCBzcmM9Ii9j
402
+ c3MvanMvanF1ZXJ5LTEuOS4xLmpzIj48L3NjcmlwdD4KICAgICAgICAgIDxz
403
+ Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNj
404
+ cmlwdCIgc3JjPSIvY3NzL2pzL3NjcmlwdHMuanMiPjwvc2NyaXB0PgogICAg
405
+ ICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgbGFuZ3Vh
406
+ Z2U9ImphdmFzY3JpcHQiIHNyYz0iL2Nzcy9qcy9kcm9wZG93bi5jbGFzcy5q
407
+ cyI+PC9zY3JpcHQ+CiAgICAgICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
408
+ YXZhc2NyaXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCIgc3JjPSIvY3NzL2pz
409
+ L21lbnUuanMiPjwvc2NyaXB0PgogICAgICAgICAgICA8c2NyaXB0IHR5cGU9
410
+ InRleHQvamF2YXNjcmlwdCIgc3JjPSIvY3NzL2pzL2NvbnZlcnNpb24uanMi
411
+ Pjwvc2NyaXB0Pjxub3NjcmlwdD48ZGl2PjxpbWcgaGVpZ2h0PSIxIiB3aWR0
412
+ aD0iMSIgYm9yZGVyPSIwIiBhbHQ9IiIgc3JjPSIvL2dvb2dsZWFkcy5nLmRv
413
+ dWJsZWNsaWNrLm5ldC9wYWdlYWQvdmlld3Rocm91Z2hjb252ZXJzaW9uLzEw
414
+ MDg2OTI1OTMvP3ZhbHVlPTAmbGFiZWw9cFhlbENMZXg5d0lROGRyOTRBTSZn
415
+ dWlkPU9OJnNjcmlwdD0wIi8+PC9kaXY+PC9ub3NjcmlwdD4KICAgICAgICAg
416
+ ICAgICA8ZGl2IGlkPSJtYXNrIj48L2Rpdj4KICAgICAgICAgICAgICA8YSB0
417
+ aXRsZT0iUmVhbCBUaW1lIFdlYiBBbmFseXRpY3MiIGhyZWY9Imh0dHA6Ly9j
418
+ bGlja3kuY29tLzEwMDc4OTM0MSI+PC9hPgo8c2NyaXB0IHNyYz0iLy9zdGF0
419
+ aWMuZ2V0Y2xpY2t5LmNvbS9qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
420
+ L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnRyeXsg
421
+ Y2xpY2t5LmluaXQoMTAwNzg5MzQxKTsgfWNhdGNoKGUpe308L3NjcmlwdD4K
422
+ PG5vc2NyaXB0Pjwvbm9zY3JpcHQ+CiAgICAgICAgICAgICAgCiAgICAgICAg
423
+ ICAgICAgPCEtLSBTdGFydCBvZiBBc3luYyBIdWJTcG90IEFuYWx5dGljcyBD
424
+ b2RlIC0tPgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAg
425
+ IChmdW5jdGlvbihkLHMsaSxyKSB7CiAgICAgIGlmIChkLmdldEVsZW1lbnRC
426
+ eUlkKGkpKXtyZXR1cm47fQogICAgICB2YXIgbj1kLmNyZWF0ZUVsZW1lbnQo
427
+ cyksZT1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdOwogICAgICBuLmlk
428
+ PWk7bi5zcmM9Jy8vanMuaHMtYW5hbHl0aWNzLm5ldC9hbmFseXRpY3MvJyso
429
+ TWF0aC5jZWlsKG5ldyBEYXRlKCkvcikqcikrJy80NzI1NjMuanMnOwogICAg
430
+ ICBlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4sIGUpOwogICAgfSkoZG9j
431
+ dW1lbnQsInNjcmlwdCIsImhzLWFuYWx5dGljcyIsMzAwMDAwKTsKICA8L3Nj
432
+ cmlwdD4KPCEtLSBFbmQgb2YgQXN5bmMgSHViU3BvdCBBbmFseXRpY3MgQ29k
433
+ ZSAtLT4KICAgICAgICAgICAgICAgICAgICAgIDwhLS0gR29vZ2xlIENvZGUg
434
+ Zm9yIFJlbWFya2V0aW5nIFRhZyAtLT4KPCEtLS0tLS0tLS0tLS0tLS0tLS0t
435
+ LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpSZW1hcmtldGluZyB0
436
+ YWdzIG1heSBub3QgYmUgYXNzb2NpYXRlZCB3aXRoIHBlcnNvbmFsbHkgaWRl
437
+ bnRpZmlhYmxlIGluZm9ybWF0aW9uIG9yIHBsYWNlZCBvbiBwYWdlcyByZWxh
438
+ dGVkIHRvIHNlbnNpdGl2ZSBjYXRlZ29yaWVzLiBTZWUgbW9yZSBpbmZvcm1h
439
+ dGlvbiBhbmQgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBzZXR1cCB0aGUgdGFn
440
+ IG9uOiBodHRwOi8vZ29vZ2xlLmNvbS9hZHMvcmVtYXJrZXRpbmdzZXR1cAot
441
+ LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
442
+ LS0tLS0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyogPCFb
443
+ Q0RBVEFbICovCnZhciBnb29nbGVfY29udmVyc2lvbl9pZCA9IDk1NTg3NjMw
444
+ MTsKdmFyIGdvb2dsZV9jdXN0b21fcGFyYW1zID0gd2luZG93Lmdvb2dsZV90
445
+ YWdfcGFyYW1zOwp2YXIgZ29vZ2xlX3JlbWFya2V0aW5nX29ubHkgPSB0cnVl
446
+ OwovKiBdXT4gKi8KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
447
+ c2NyaXB0IiBzcmM9Ii8vd3d3Lmdvb2dsZWFkc2VydmljZXMuY29tL3BhZ2Vh
448
+ ZC9jb252ZXJzaW9uLmpzIj4KPC9zY3JpcHQ+Cjxub3NjcmlwdD4KPGRpdiBz
449
+ dHlsZT0iZGlzcGxheTppbmxpbmU7Ij4KPGltZyBoZWlnaHQ9IjEiIHdpZHRo
450
+ PSIxIiBzdHlsZT0iYm9yZGVyLXN0eWxlOm5vbmU7IiBhbHQ9IiIgc3JjPSIv
451
+ L2dvb2dsZWFkcy5nLmRvdWJsZWNsaWNrLm5ldC9wYWdlYWQvdmlld3Rocm91
452
+ Z2hjb252ZXJzaW9uLzk1NTg3NjMwMS8/dmFsdWU9MCZhbXA7Z3VpZD1PTiZh
453
+ bXA7c2NyaXB0PTAiLz4KPC9kaXY+Cjwvbm9zY3JpcHQ+CiAgICAgICAgICAg
454
+ ICAgPC9ib2R5PjwvaHRtbD4=
455
+ http_version:
456
+ recorded_at: Sun, 20 Nov 2016 20:08:42 GMT
457
+ recorded_with: VCR 3.0.3