From a532ba6b5673ab07048c75850b63aed6490dd5a1 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Wed, 1 Oct 2014 15:41:54 +0900
Subject: [PATCH 01/14] require faraday
---
enju_news.gemspec | 7 ++++---
lib/enju_news/engine.rb | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/enju_news.gemspec b/enju_news.gemspec
index c9f47fe..fc5cb3e 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -16,15 +16,16 @@ Gem::Specification.new do |s|
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
s.test_files = Dir["spec/**/*"] - Dir["spec/dummy/log/*"]
- s.add_dependency "enju_seed", "~> 0.1.1.pre10"
+ s.add_dependency "enju_seed", "~> 0.1.1.pre11"
+ s.add_dependency "faraday"
s.add_development_dependency "sqlite3"
- s.add_development_dependency "rspec-rails", "~> 3.0"
+ s.add_development_dependency "rspec-rails", "~> 3.0.2"
s.add_development_dependency "factory_girl_rails"
s.add_development_dependency "vcr"
s.add_development_dependency "fakeweb"
s.add_development_dependency "simplecov"
s.add_development_dependency "annotate"
s.add_development_dependency "sunspot-rails-tester"
- s.add_development_dependency "enju_leaf", "~> 1.1.0.rc13"
+ s.add_development_dependency "enju_leaf", "~> 1.1.0.rc14"
end
diff --git a/lib/enju_news/engine.rb b/lib/enju_news/engine.rb
index 5c94c80..ecc6240 100644
--- a/lib/enju_news/engine.rb
+++ b/lib/enju_news/engine.rb
@@ -1,4 +1,5 @@
require 'enju_seed'
+require 'faraday'
module EnjuNews
class Engine < ::Rails::Engine
From 6f938000821f9b1893b671b8379f74bb9aea70ad Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Wed, 1 Oct 2014 16:18:13 +0900
Subject: [PATCH 02/14] added gemfiles
---
.travis.yml | 7 ++++++-
app/models/news_feed.rb | 4 +---
enju_news.gemspec | 1 -
gemfiles/rails3_2.gemfile | 6 ++++++
gemfiles/rails4_1.gemfile | 9 +++++++++
5 files changed, 22 insertions(+), 5 deletions(-)
create mode 100644 gemfiles/rails3_2.gemfile
create mode 100644 gemfiles/rails4_1.gemfile
diff --git a/.travis.yml b/.travis.yml
index 69c3acd..0020748 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,5 +2,10 @@ language: ruby
rvm:
- 1.9.3
- 2.0.0
- - 2.1.2
+ - 2.1.3
before_script: "bundle exec rake db:migrate"
+services:
+ - redis-server
+gemfile:
+ - gemfiles/rails3_2.gemfile
+ - gemfiles/rails4_1.gemfile
diff --git a/app/models/news_feed.rb b/app/models/news_feed.rb
index 73b8107..2fc9fd9 100644
--- a/app/models/news_feed.rb
+++ b/app/models/news_feed.rb
@@ -16,9 +16,7 @@ def self.per_page
def fetch
begin
- feed = open(url) do |f|
- f.read
- end
+ feed = Faraday.get(url).body
if rss = RSS::Parser.parse(feed, false)
self.body = feed
end
diff --git a/enju_news.gemspec b/enju_news.gemspec
index 4d27b1f..fc5cb3e 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
s.add_dependency "enju_seed", "~> 0.1.1.pre11"
s.add_dependency "faraday"
- s.add_development_dependency "rails", "~> 3.2.19"
s.add_development_dependency "sqlite3"
s.add_development_dependency "rspec-rails", "~> 3.0.2"
s.add_development_dependency "factory_girl_rails"
diff --git a/gemfiles/rails3_2.gemfile b/gemfiles/rails3_2.gemfile
new file mode 100644
index 0000000..2e6fb56
--- /dev/null
+++ b/gemfiles/rails3_2.gemfile
@@ -0,0 +1,6 @@
+source "https://rubygems.org"
+
+gem "rails", "~> 3.2.19"
+gem "jquery-rails"
+
+gemspec path: "../"
diff --git a/gemfiles/rails4_1.gemfile b/gemfiles/rails4_1.gemfile
new file mode 100644
index 0000000..141aa0d
--- /dev/null
+++ b/gemfiles/rails4_1.gemfile
@@ -0,0 +1,9 @@
+source "https://rubygems.org"
+
+gem "rails", "~> 4.1.6"
+gem "jquery-rails"
+gem "protected_attributes"
+gem "enju_leaf", github: "next-l/enju_leaf", branch: '1.1'
+gem "enju_library", github: "next-l/enju_library", branch: '1.1'
+
+gemspec path: "../"
From 79b3d85271cc27173a5c487ad843723be2bd0b50 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Wed, 1 Oct 2014 16:21:22 +0900
Subject: [PATCH 03/14] added vcr files
---
.../NewsFeed/should_get_content.yml | 546 ++++++++++++++++++
...not_get_content_if_the_feed_is_invalid.yml | 66 +++
.../NewsFeed/should_reload_content.yml | 546 ++++++++++++++++++
spec/spec_helper.rb | 7 +
4 files changed, 1165 insertions(+)
create mode 100644 spec/cassette_library/NewsFeed/should_get_content.yml
create mode 100644 spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
create mode 100644 spec/cassette_library/NewsFeed/should_reload_content.yml
diff --git a/spec/cassette_library/NewsFeed/should_get_content.yml b/spec/cassette_library/NewsFeed/should_get_content.yml
new file mode 100644
index 0000000..5f65b8c
--- /dev/null
+++ b/spec/cassette_library/NewsFeed/should_get_content.yml
@@ -0,0 +1,546 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: http://iss.ndl.go.jp/information/feed/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ user-agent:
+ - Faraday v0.9.0
+ accept-encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ date:
+ - Wed, 01 Oct 2014 07:21:03 GMT
+ server:
+ - Apache
+ expires:
+ - Thu, 19 Nov 1981 08:52:00 GMT
+ cache-control:
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ pragma:
+ - no-cache
+ x-pingback:
+ - http://iss.ndl.go.jp/information/xmlrpc.php
+ last-modified:
+ - Tue, 30 Sep 2014 10:39:17 GMT
+ etag:
+ - '"a7c11f1aac82a10a604c4cdf2924af0b"'
+ content-type:
+ - text/xml; charset=UTF-8
+ set-cookie:
+ - PHPSESSID=3kfppbttfsd087lqong8p8kti7; path=/
+ - serverid=1101; path=/
+ - ROUTEID=.wp02; path=/
+ vary:
+ - Accept-Encoding,User-Agent
+ content-encoding:
+ - gzip
+ x-content-type-options:
+ - nosniff
+ x-frame-options:
+ - SAMEORIGIN
+ connection:
+ - close
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2
+ ZXJzaW9uPSIyLjAiCgl4bWxuczpjb250ZW50PSJodHRwOi8vcHVybC5vcmcv
+ cnNzLzEuMC9tb2R1bGVzL2NvbnRlbnQvIgoJeG1sbnM6d2Z3PSJodHRwOi8v
+ d2VsbGZvcm1lZHdlYi5vcmcvQ29tbWVudEFQSS8iCgl4bWxuczpkYz0iaHR0
+ cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCgl4bWxuczphdG9tPSJo
+ dHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCgl4bWxuczpzeT0iaHR0cDov
+ L3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9zeW5kaWNhdGlvbi8iCgl4bWxu
+ czpzbGFzaD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9zbGFz
+ aC8iCgkJeG1sbnM6eGh0bWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
+ bWwiCj4KCjxjaGFubmVsPgoJPHRpdGxlPuWbveeri+WbveS8muWbs+abuOmk
+ qOOCteODvOODgeOBq+OBpOOBhOOBpjwvdGl0bGU+Cgk8YXRvbTpsaW5rIGhy
+ ZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZlZWQvIiBy
+ ZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+Cgk8bGlu
+ az5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbjwvbGluaz4KCTxk
+ ZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPgoJPGxhc3RCdWlsZERhdGU+VHVl
+ LCAzMCBTZXAgMjAxNCAxMDozOToxNyArMDAwMDwvbGFzdEJ1aWxkRGF0ZT4K
+ CTxsYW5ndWFnZT5qYTwvbGFuZ3VhZ2U+CgkJPHN5OnVwZGF0ZVBlcmlvZD5o
+ b3VybHk8L3N5OnVwZGF0ZVBlcmlvZD4KCQk8c3k6dXBkYXRlRnJlcXVlbmN5
+ PjE8L3N5OnVwZGF0ZUZyZXF1ZW5jeT4KCTxnZW5lcmF0b3I+aHR0cDovL3dv
+ cmRwcmVzcy5vcmcvP3Y9My45LjI8L2dlbmVyYXRvcj4KPHhodG1sOmxpbmsg
+ cmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9o
+ dG1sIiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi9m
+ ZWVkLyIgLz4KCTxpdGVtPgoJCTx0aXRsZT7lm73nq4vlm73kvJrlm7Pmm7jp
+ pKjjgrXjg7zjg4Hjg6rjg7Pjgq/pm4bjga7jg5rjg7zjgrjjgpLmm7TmlrDj
+ gZfjgb7jgZfjgZ/vvIgyMDE05bm0OeaciDI55pel77yJPC90aXRsZT4KCQk8
+ bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5
+ LzI5X2Fubm91bmNlLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8yOV9hbm5vdW5jZS8jY29t
+ bWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPk1vbiwgMjkgU2VwIDIwMTQg
+ MDQ6NDc6MDUgKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFbQ0RB
+ VEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVnb3J5Pjwh
+ W0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlkIGlzUGVy
+ bWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRp
+ b24vP3A9MTAzNjwvZ3VpZD4KCQk8ZGVzY3JpcHRpb24+PCFbQ0RBVEFb5Zu9
+ 56uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44GM5o+Q5L6b44GZ44KL5aSW
+ 6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O844K577yIQVBJ77yJ44KS5Yip
+ 55So44GX44Gm44GE44KL44K344K544OG44Og44GK44KI44Gz44K144Kk44OI
+ 44KE44CB5Zu956uL5Zu95Lya5ZuzIFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRp
+ b24+CgkJCQk8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxwPgrlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4HjgYzmj5DkvpvjgZnjgovlpJbpg6jm
+ j5DkvpvjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnvvIhBUEnvvInjgpLliKnnlKjj
+ gZfjgabjgYTjgovjgrfjgrnjg4bjg6DjgYrjgojjgbPjgrXjgqTjg4jjgoTj
+ gIHlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4HjgpLntLnku4vjgZfj
+ gabjgYTjgovoqJjkuovjgarjganjgpLpm4bjgoHjgZ/jgIHjgIzlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjg6rjg7Pjgq/pm4bjgI3jga7jg5rj
+ g7zjgrjvvIg8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi9saW5rLyI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24v
+ bGluay88L2E+77yJ44KS5pu05paw44GX44G+44GX44Gf44CC44CMMi7lm7Pm
+ m7jppKjogbflk6HlkJHjgZHjg4Tjg7zjg6vjgI3jgavjgIHmlrDjgZ/jgasz
+ 56iu6aGe44Gu44OE44O844Or44GM5Yqg44KP44KK44G+44GX44Gf44CCPGJy
+ IC8+CjwvcD4KXV0+PC9jb250ZW50OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVu
+ dFJzcz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5
+ LzI5X2Fubm91bmNlL2ZlZWQvPC93Znc6Y29tbWVudFJzcz4KCQk8c2xhc2g6
+ Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVudHM+Cgk8eGh0bWw6bGluayByZWw9
+ ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRoZWxkIiB0eXBlPSJ0ZXh0L2h0bWwi
+ IGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQv
+ MDkvMjlfYW5ub3VuY2UvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJCTx0aXRs
+ ZT7mlrDopo/pgKPmkLrmqZ/plqLjga7ov73liqDjgajml6LlrZjpgKPmkLrm
+ qZ/plqLjgajjga7pgKPmkLrmlrnlvI/jga7lpInmm7TjgpLooYzjgYTjgb7j
+ gZfjgZ/vvIgyMDE05bm0OeaciDIy5pel77yJPC90aXRsZT4KCQk8bGluaz5o
+ dHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fu
+ bm91bmNlLTMvPC9saW5rPgoJCTxjb21tZW50cz5odHRwOi8vaXNzLm5kbC5n
+ by5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fubm91bmNlLTMvI2NvbW1l
+ bnRzPC9jb21tZW50cz4KCQk8cHViRGF0ZT5Nb24sIDIyIFNlcCAyMDE0IDA0
+ OjAwOjE1ICswMDAwPC9wdWJEYXRlPgoJCTxkYzpjcmVhdG9yPjwhW0NEQVRB
+ W+S6i+WLmeWxgF1dPjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRlZ29yeT48IVtD
+ REFUQVvmnKrliIbpoZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3VpZCBpc1Blcm1h
+ TGluaz0iZmFsc2UiPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9u
+ Lz9wPTEwMjk8L2d1aWQ+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBW+adseS6
+ rOmDveeri+Wbs+abuOmkqOODh+OCuOOCv+ODq+OCouODvOOCq+OCpOODlu+8
+ iFRPS1lP44Ki44O844Kr44Kk44OW77yJ44Go44Gu6YCj5pC644KS6ZaL5aeL
+ 44GX44G+44GX44GfIOWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOB
+ p+OBr+OAgeadseS6rCBbJiM4MjMwO11dXT48L2Rlc2NyaXB0aW9uPgoJCQkJ
+ PGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD4KPHVsPgoJPGxpPgo8aDQ+
+ CeadseS6rOmDveeri+Wbs+abuOmkqOODh+OCuOOCv+ODq+OCouODvOOCq+OC
+ pOODlu+8iFRPS1lP44Ki44O844Kr44Kk44OW77yJ44Go44Gu6YCj5pC644KS
+ 6ZaL5aeL44GX44G+44GX44GfPC9oND4KPC9saT4KPC91bD4KICDlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjgafjga/jgIHmnbHkuqzpg73nq4vl
+ m7Pmm7jppKjjg4fjgrjjgr/jg6vjgqLjg7zjgqvjgqTjg5bvvIhUT0tZT+OC
+ ouODvOOCq+OCpOODlu+8iSggPGEgaHJlZj0iaHR0cDovL2FyY2hpdmUubGli
+ cmFyeS5tZXRyby50b2t5by5qcC8gIj5odHRwOi8vYXJjaGl2ZS5saWJyYXJ5
+ Lm1ldHJvLnRva3lvLmpwLzwvYT4gKeOBqOOBruaWsOimj+mAo+aQuuOCkumW
+ i+Wni+OBl+OBvuOBl+OBn+OAgjxiciAvPgrjgIDmnbHkuqzpg73nq4vlm7Pm
+ m7jppKjjg4fjgrjjgr/jg6vjgqLjg7zjgqvjgqTjg5bvvIhUT0tZT+OCouOD
+ vOOCq+OCpOODlu+8ieOBr+OAgeadseS6rOmDveeri+Wbs+abuOmkqOOBjOOD
+ h+OCuOOCv+ODq+WMluOBl+OBn+OAgeaxn+aIuOODu+adseS6rOOBq+mWouOB
+ meOCi+izh+aWmeeUu+WDj+OCkuaknOe0ouODu+mWsuimp+OBp+OBjeOCi+OC
+ t+OCueODhuODoOOBp+OBmeOAguaxn+aIuOWfjumAoOWWtumWouS/guizh+aW
+ meOAgea1ruS4lue1teOAgeaxn+aIuOWbs+OAgee1teiRieabuOOAgeadseS6
+ rOW6nOODu+adseS6rOW4gumWouS/guizh+aWmeOBquOBqTEz44Kr44OG44K0
+ 44Oq44KS5YWs6ZaL44GX44Gm44GE44G+44GZ44CCPGJyIC8+CjxiciAvPgrl
+ pJbpg6jmj5DkvpvjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnvvIhBUEnvvInjgavj
+ gojjgorjgIHmpJzntKLjga7jgb/lj6/og73jgafjgZnjgII8YnIgLz4K44OH
+ 44O844K/44OX44Ot44OQ44Kk44OASUTvvJp0b2t5by1tZXRyby1kYTxiciAv
+ Pgrjg6rjg53jgrjjg4jjg6rnlarlj7fvvJpSMTAwMDAwMDg2PGJyIC8+Cuak
+ nOe0oueUqEFQSe+8mlNSVeOAgVNSV+OAgU9wZW5TZWFyY2jjgIFaMzkuNTA8
+ YnIgLz4KPGJyIC8+CiZuYnNwOzxiciAvPgo8dWw+Cgk8bGk+CjxoND4J6aeS
+ 5r6k5aSn5a2m6Zu75a2Q6LK06YeN5pu45bqr44Go44Gu6YCj5pC66ZaL5aeL
+ PC9oND4KPC9saT4KPC91bD4KICDlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXj
+ g7zjg4Hjgafjga/jgIHpp5LmvqTlpKflrabpm7vlrZDosrTph43mm7jluqso
+ IDxhIGhyZWY9Imh0dHA6Ly9yZXBvLmtvbWF6YXdhLXUuYWMuanAvcmV0cmll
+ dmUva2l0eW91LyI+aHR0cDovL3JlcG8ua29tYXphd2EtdS5hYy5qcC9yZXRy
+ aWV2ZS9raXR5b3UvPC9hPiAp44Go44Gu5paw6KaP6YCj5pC644KS6ZaL5aeL
+ 44GX44G+44GX44Gf44CCPGJyIC8+Cumnkua+pOWkp+Wtpumbu+WtkOiytOmH
+ jeabuOW6q+OBr+mnkua+pOWkp+WtpuOAgemnkua+pOWkp+WtpuWbs+abuOmk
+ qOOBjOaJgOiUteOBl+OBpuOBhOOCi+iytOmHjeOBquemheexjeODu+S7j+aV
+ meabuOOCkuS4reW/g+OBq+OAgeOBguOCj+OBm+OBpuWbveaWh+WtpuODu+Wb
+ veiqnuWtpuODu+iqnuWtpuODu+attOWPsuWtpuetieOBruWQhOWIhumHjuOB
+ ruiytOmHjeOBquizh+aWmeOBruabuOiqjOOBqOeUu+WDj+OCkumWsuimp+OB
+ p+OBjeOCi+OCt+OCueODhuODoOOBp+OBmeOAgjxiciAvPgo8YnIgLz4K5aSW
+ 6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O844K577yIQVBJ77yJ44Gr44KI
+ 44KK44CB44OH44O844K/44Gu5qSc57Si44Go44OP44O844OZ44K544OI44GM
+ 5Y+v6IO944Gn44GZ44CCPGJyIC8+CuODh+ODvOOCv+ODl+ODreODkOOCpOOD
+ gElE77yaIGtvbWF6d2EtdW5pdjxiciAvPgrjg6rjg53jgrjjg4jjg6rnlarl
+ j7fvvJpSMTAwMDAwMDg3PGJyIC8+CuaknOe0oueUqEFQSe+8mlNSVeOAgVNS
+ V+OAgU9wZW5TZWFyY2jjgIFaMzkuNTA8YnIgLz4K44OP44O844OZ44K544OI
+ 55SoQVBJ77yaT0FJLVBNSDxiciAvPgo8YnIgLz4KJm5ic3A7PGJyIC8+Cjx1
+ bD4KCTxsaT4KPGg0Pgnlj6Hmmbrjga7mnZxXZWLvvIjlrq7ln47nnIzlm7Pm
+ m7jppKjvvInjgajjga7pgKPmkLrmlrnlvI/lpInmm7Q8L2g0Pgo8L2xpPgo8
+ L3VsPgogIOWPoeaZuuOBruadnFdlYiggPGEgaHJlZj0iaHR0cDovL3d3dy5s
+ aWJyYXJ5LnByZWYubWl5YWdpLmpwL2VpY2hpLmh0bWwiPmh0dHA6Ly93d3cu
+ bGlicmFyeS5wcmVmLm1peWFnaS5qcC9laWNoaS5odG1sPC9hPiAp44Gv5a6u
+ 5Z+O55yM44Gr6Zai44GZ44KL6KiY5LqL44O76KuW5paH57Si5byV44KE44CB
+ 44CM5LyK6YGU5paH5bqr44CN44KE44CM6Z2S5p+z5paH5bqr44CN44Gq44Gp
+ 5Y+k5YW457GN562J44Gu5pu46KqM5oOF5aCx44KE44OH44K444K/44Or5YyW
+ 6LOH5paZ44KS5qSc57Si44O76Zay6Kan44Gn44GN44KL44K344K544OG44Og
+ 44Gn44GZ44CCPGJyIC8+CuOBk+OCjOOBvuOBp+OCguWbveeri+WbveS8muWb
+ s+abuOmkqOOCteODvOODgeOBqOWPoeaZuuOBruadnFdlYuOBr+mAo+aQuuOC
+ kuihjOOBo+OBpuOBvuOBhOOCiuOBvuOBl+OBn+OBjOOAgeWPoeaZuuOBruad
+ nFdlYuOBruODquODi+ODpeODvOOCouODq+OBq+S8tOOBhOOAgVJTU+OBq+OC
+ iOOCi+mAo+aQuuOBi+OCiU9BSS1QTUjjgavjgojjgovpgKPmkLrjgbjjgajl
+ iIfjgormm7/jgo/jgorjgb7jgZnjgILpgKPmkLrmlrnlvI/jga7liIfjgorm
+ m7/jgYjjgajjg4fjg7zjgr/jga7lhajku7blhaXjgozmm7/jgYjjgavjgojj
+ gorjgIFPQUktUE1I44Gn44OH44O844K/44KS5Y+W5b6X44GZ44KL5aC05ZCI
+ 44Gu44OH44O844K/44Gu6LW354K55pel44GM5aSJ5pu044Go44Gq44KK44G+
+ 44GZ44CCPGJyIC8+CjxiciAvPgrigLvpgKPmkLrmlrnlvI/liIfjgormm7/j
+ gYjlvozjgoLjgIHlvJXjgY3ntprjgY3lpJbpg6jmj5DkvpvjgqTjg7Pjgr/j
+ g5Xjgqfjg7zjgrnvvIhBUEnvvInjgavjgojjgorjgIHjg4fjg7zjgr/jga7m
+ pJzntKLjgajjg4/jg7zjg5njgrnjg4jjgYzlj6/og73jgafjgZnjgII8YnIg
+ Lz4K44CA44OH44O844K/44OX44Ot44OQ44Kk44OASUTvvJptaXlhZ2k8YnIg
+ Lz4K44CA44Oq44Od44K444OI44Oq55Wq5Y+377yaUjAwMDAwMDA1NDxiciAv
+ PgrjgIDmpJzntKLnlKhBUEnvvJpTUlXjgIFTUlfjgIFPcGVuU2VhcmNo44CB
+ WjM5LjUwPGJyIC8+CuOAgOODj+ODvOODmeOCueODiOeUqEFQSe+8mk9BSS1Q
+ TUg8YnIgLz4K44CAT0FJLVBNSOOBp+OBruODh+ODvOOCv+OBrui1t+eCueaX
+ pe+8mjIwMTTlubQ55pyIMTnml6U8YnIgLz4KPGJyIC8+CjwvcD4KXV0+PC9j
+ b250ZW50OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVudFJzcz5odHRwOi8vaXNz
+ Lm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fubm91bmNlLTMv
+ ZmVlZC88L3dmdzpjb21tZW50UnNzPgoJCTxzbGFzaDpjb21tZW50cz4wPC9z
+ bGFzaDpjb21tZW50cz4KCTx4aHRtbDpsaW5rIHJlbD0iYWx0ZXJuYXRlIiBt
+ ZWRpYT0iaGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDov
+ L2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8yMl9hbm5vdW5j
+ ZS0zLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8dGl0bGU+6Zu75rCX6Kit
+ 5YKZ44Gu5a6a5pyf54K55qSc5L2c5qWt562J44Gr5Ly044GG44CB5LiA6YOo
+ 5qmf6IO95Yi26ZmQ44Gu44GK55+l44KJ44Gb77yIMjAxNOW5tDEw5pyI77yJ
+ PC90aXRsZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi8yMDE0LzA5LzIwMTQwOTE3X2Fubm91bmNlLTAxLzwvbGluaz4KCQk8
+ Y29tbWVudHM+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAx
+ NC8wOS8yMDE0MDkxN19hbm5vdW5jZS0wMS8jY29tbWVudHM8L2NvbW1lbnRz
+ PgoJCTxwdWJEYXRlPldlZCwgMTcgU2VwIDIwMTQgMDc6NDk6MjAgKzAwMDA8
+ L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFbQ0RBVEFbTkRMIFNlYXJjaF1d
+ PjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRlZ29yeT48IVtDREFUQVvmnKrliIbp
+ oZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2Ui
+ Pmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLz9wPTEwMjg8L2d1
+ aWQ+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBW+mbu+awl+ioreWCmeOBruWu
+ muacn+eCueaknOS9nOalreetieOBq+S8tOOBhuWBnOmbu+OBq+OCiOOCiuOA
+ geS7peS4i+OBruapn+iDveOBjOWIqeeUqOOBp+OBjeOBvuOBm+OCk+OAgiDv
+ vJzlm7Pmm7jppKjlk6Hjga7mlrnlkJHjgZHvvJ4g6Zu75a2Q44Oh44O844Or
+ 44Gn44Gu55u4IFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRpb24+CgkJCQk8Y29u
+ dGVudDplbmNvZGVkPjwhW0NEQVRBWzxwPgrpm7vmsJfoqK3lgpnjga7lrprm
+ nJ/ngrnmpJzkvZzmpa3nrYnjgavkvLTjgYblgZzpm7vjgavjgojjgorjgIHk
+ u6XkuIvjga7mqZ/og73jgYzliKnnlKjjgafjgY3jgb7jgZvjgpPjgII8YnIg
+ Lz4KPGJyIC8+Cu+8nOWbs+abuOmkqOWToeOBruaWueWQkeOBke+8njxiciAv
+ Pgrpm7vlrZDjg6Hjg7zjg6vjgafjga7nm7jkupLosrjlgJ/kvp3poLzvvIjl
+ m7Pmm7jppKjplpPosrjlh7rvvIk8YnIgLz4K5YGc5q2i5pyf6ZaT77yaMTDm
+ nIgxMeaXpSjlnJ8pIDE5OjMw44CA772e44CAMTDmnIgxM+aXpSjmnIgpIDEy
+ OjAwPGJyIC8+CjxiciAvPgrjgZTkuI3kvr/jgpLjgYrjgYvjgZHjgZfjgb7j
+ gZnjgYzjgIHjgZTkuobmib/jgY/jgaDjgZXjgYTjgb7jgZnjgojjgYbjgYrp
+ oZjjgYTjgYTjgZ/jgZfjgb7jgZnjgII8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wOS8yMDE0MDkxN19hbm5vdW5jZS0wMS9mZWVk
+ Lzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNvbW1lbnRzPjA8L3NsYXNo
+ OmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlh
+ PSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBocmVmPSJodHRwOi8vaXNz
+ Lm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIwMTQwOTE3X2Fubm91
+ bmNlLTAxLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8dGl0bGU+5Zu956uL
+ 5Zu95Lya5Zuz5pu46aSo44K144O844OBIEFQSeWIqeeUqOeUs+iri+ODleOC
+ qeODvOODoOOCkuabtOaWsOOBl+OBvuOBl+OBn+OAgjwvdGl0bGU+CgkJPGxp
+ bms+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8w
+ MV9hbm5vdW5jZS0xLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8wMV9hbm5vdW5jZS0xLyNj
+ b21tZW50czwvY29tbWVudHM+CgkJPHB1YkRhdGU+TW9uLCAwMSBTZXAgMjAx
+ NCAwNDowMDoyOSArMDAwMDwvcHViRGF0ZT4KCQk8ZGM6Y3JlYXRvcj48IVtD
+ REFUQVvkuovli5nlsYBdXT48L2RjOmNyZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+
+ PCFbQ0RBVEFb5pyq5YiG6aGeXV0+PC9jYXRlZ29yeT4KCgkJPGd1aWQgaXNQ
+ ZXJtYUxpbms9ImZhbHNlIj5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi8/cD0xMDEzPC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFUQVvl
+ m73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjga5BUEnliKnnlKjjgavj
+ gaTjgY3jgb7jgZfjgabjgIHjgZPjgozjgb7jgafjga/jgIHjgYrllY/jgYTl
+ kIjjgo/jgZvjg5Xjgqnjg7zjg6DjgYvjgonlv4XopoHkuovpoIXjgpLoqJjl
+ haXjgZfjgabnlLPoq4vjgZfjgabjgYQgWyYjODIzMDtdXV0+PC9kZXNjcmlw
+ dGlvbj4KCQkJCTxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPHA+CuWbveer
+ i+WbveS8muWbs+abuOmkqOOCteODvOODgeOBrkFQSeWIqeeUqOOBq+OBpOOB
+ jeOBvuOBl+OBpuOAgeOBk+OCjOOBvuOBp+OBr+OAgeOBiuWVj+OBhOWQiOOC
+ j+OBm+ODleOCqeODvOODoOOBi+OCieW/heimgeS6i+mgheOCkuiomOWFpeOB
+ l+OBpueUs+iri+OBl+OBpuOBhOOBn+OBoOOBhOOBpuOBhOOBvuOBl+OBn+OB
+ jOOAgeaWsOOBn+OBq+WIqeeUqOeUs+iri+ODleOCqeODvOODoOOCkuioreOB
+ keOBpuOAgeeUs+iri+OBruaJi+e2muOBjeOCkuewoee0oOWMluOBl+OBvuOB
+ l+OBn+OAgjxiciAvPgo8YnIgLz4KPGEgaHJlZj0iaHR0cDovL3d3dy5uZGwu
+ Z28uanAvanAvc2VydmljZS9hcGlfYXBwbGljYXRpb24uaHRtbCI+5Zu956uL
+ 5Zu95Lya5Zuz5pu46aSo44K144O844OBQVBJ5Yip55So55Sz6KuL44OV44Kp
+ 44O844OgPC9hPjxiciAvPgo8YSBocmVmPSJodHRwOi8vd3d3Lm5kbC5nby5q
+ cC9lbi9zZXJ2aWNlL2FwaV9hcHBsaWNhdGlvbi5odG1sIj5BcHBsaWNhdGlv
+ biBQcm9ncmFtbWluZyBJbnRlcmZhY2UgKEFQSSkgb2YgdGhlIE5ETCBTZWFy
+ Y2g6IEFwcGxpY2F0aW9uIEZvcm08L2E+PGJyIC8+CjxiciAvPgrjgarjgYrj
+ gIHlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjga5BUEnjgpLjgZTl
+ iKnnlKjjgYTjgZ/jgaDjgY/loLTlkIjjgIHjgZTliKnnlKjnm67nmoTjgavj
+ gojjgaPjgabmiYvntprjgY3jgYznlbDjgarjgorjgb7jgZnjgILjgZTliKnn
+ lKjjga7liY3jgavjgIHlv4XjgZrjgIw8YSBocmVmPSJodHRwOi8vaXNzLm5k
+ bC5nby5qcC9pbmZvcm1hdGlvbi9hcGkvcml5b3UvIj7lm73nq4vlm73kvJrl
+ m7Pmm7jppKjjgrXjg7zjg4HjgavjgaTjgYTjgabvvJ5BUEnjga7jgZTliKnn
+ lKjjgavjgaTjgYTjgaY8L2E+44CN44KS44GU6Kan44GP44Gg44GV44GE44CC
+ PGJyIC8+CjxiciAvPgo8L3A+Cl1dPjwvY29udGVudDplbmNvZGVkPgoJCQk8
+ d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRp
+ b24vMjAxNC8wOS8wMV9hbm5vdW5jZS0xL2ZlZWQvPC93Znc6Y29tbWVudFJz
+ cz4KCQk8c2xhc2g6Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVudHM+Cgk8eGh0
+ bWw6bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRoZWxkIiB0eXBl
+ PSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9y
+ bWF0aW9uLzIwMTQvMDkvMDFfYW5ub3VuY2UtMS8iIC8+Cgk8L2l0ZW0+CgkJ
+ PGl0ZW0+CgkJPHRpdGxlPuWbveeri+WbveS8muWbs+abuOmkqOOBruOCquOD
+ s+ODqeOCpOODs+OCteODvOODk+OCueOChOmBoOmalOikh+WGmeOCteODvOOD
+ k+OCueetieOBq+mWouOBmeOCi+OCouODs+OCseODvOODiOOBq+OBlOWNlOWK
+ m+OCkuOBiumhmOOBhOOBl+OBvuOBme+8iDnmnIgyNuaXpe+8iOmHke+8ieOB
+ vuOBp++8ieOAgjwvdGl0bGU+CgkJPGxpbms+aHR0cDovL2lzcy5uZGwuZ28u
+ anAvaW5mb3JtYXRpb24vMjAxNC8wOS8wMV9hbm5vdW5jZS0yLzwvbGluaz4K
+ CQk8Y29tbWVudHM+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24v
+ MjAxNC8wOS8wMV9hbm5vdW5jZS0yLyNjb21tZW50czwvY29tbWVudHM+CgkJ
+ PHB1YkRhdGU+TW9uLCAwMSBTZXAgMjAxNCAwNDowMDoxMiArMDAwMDwvcHVi
+ RGF0ZT4KCQk8ZGM6Y3JlYXRvcj48IVtDREFUQVvkuovli5nlsYBdXT48L2Rj
+ OmNyZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+PCFbQ0RBVEFb5pyq5YiG6aGeXV0+
+ PC9jYXRlZ29yeT4KCgkJPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRw
+ Oi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8/cD0xMDE0PC9ndWlkPgoJ
+ CTxkZXNjcmlwdGlvbj48IVtDREFUQVvlm73nq4vlm73kvJrlm7Pmm7jppKjj
+ ga7jgqrjg7Pjg6njgqTjg7PjgrXjg7zjg5PjgrnjgoTpgaDpmpTopIflhpnj
+ grXjg7zjg5PjgrnnrYnjgpLmlLnlloTjgZnjgovjgZ/jgoHjgavjgIHjgqLj
+ g7PjgrHjg7zjg4jjgpLlrp/mlr3jgZfjgabjgYTjgb7jgZnjgIIg5Zu956uL
+ 5Zu95LyaIFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRpb24+CgkJCQk8Y29udGVu
+ dDplbmNvZGVkPjwhW0NEQVRBWzxwPgrlm73nq4vlm73kvJrlm7Pmm7jppKjj
+ ga7jgqrjg7Pjg6njgqTjg7PjgrXjg7zjg5PjgrnjgoTpgaDpmpTopIflhpnj
+ grXjg7zjg5PjgrnnrYnjgpLmlLnlloTjgZnjgovjgZ/jgoHjgavjgIE8YSBo
+ cmVmPSJodHRwczovL2VucTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25kbGh5b2th
+ L0gyNkhQRW5xdWV0ZS9IMjZIUEVucXVldGUuY2dpIj7jgqLjg7PjgrHjg7zj
+ g4g8L2E+44KS5a6f5pa944GX44Gm44GE44G+44GZ44CCPGJyIC8+CjxiciAv
+ Pgo8YSBocmVmPSJodHRwczovL2VucTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25k
+ bGh5b2thL0gyNkhQRW5xdWV0ZS9IMjZIUEVucXVldGUuY2dpIj7lm73nq4vl
+ m73kvJrlm7Pmm7jppKjjg5vjg7zjg6Djg5rjg7zjgrjjgqLjg7PjgrHjg7zj
+ g4g8L2E+PGJyIC8+CjxiciAvPgrlvZPppKjjga7jgrXjg7zjg5Pjgrnjga7k
+ uIDlsaTjga7mlLnlloTjgavlvbnnq4vjgabjgovjgZ/jgoHjgIHnmobmp5jj
+ ga7jgZTmhI/opovjgpLjgYrogZ7jgYvjgZvjgY/jgaDjgZXjgYTjgII8YnIg
+ Lz4KPC9wPgpdXT48L2NvbnRlbnQ6ZW5jb2RlZD4KCQkJPHdmdzpjb21tZW50
+ UnNzPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDkv
+ MDFfYW5ub3VuY2UtMi9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNo
+ OmNvbW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVs
+ PSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1s
+ IiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0
+ LzA5LzAxX2Fubm91bmNlLTIvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJCTx0
+ aXRsZT5OREwtT1BBQ+ODoeODs+ODhuODiuODs+OCueOBruOBiuefpeOCieOB
+ m++8iDIwMTTlubQ55pyIMTTml6U35pmC44GL44KJMjLmmYLvvIk8L3RpdGxl
+ PgoJCTxsaW5rPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIw
+ MTQvMDgvMjAxNDA4MjlfYW5ub3VuY2UvPC9saW5rPgoJCTxjb21tZW50cz5o
+ dHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4LzIwMTQw
+ ODI5X2Fubm91bmNlLyNjb21tZW50czwvY29tbWVudHM+CgkJPHB1YkRhdGU+
+ RnJpLCAyOSBBdWcgMjAxNCAwMjo0ODo0OSArMDAwMDwvcHViRGF0ZT4KCQk8
+ ZGM6Y3JlYXRvcj48IVtDREFUQVtOREwgU2VhcmNoXV0+PC9kYzpjcmVhdG9y
+ PgoJCQkJPGNhdGVnb3J5PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdv
+ cnk+CgoJCTxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vP3A9MTAxNTwvZ3VpZD4KCQk8ZGVzY3Jp
+ cHRpb24+PCFbQ0RBVEFbMjAxNOW5tDnmnIgxNOaXpSjml6UpIDfmmYLjgYvj
+ gokyMuaZguOBrumWk+OAgU5ETC1PUEFD44GM44K344K544OG44Og44Oh44Oz
+ 44OG44OK44Oz44K544Gu44Gf44KB5YGc5q2i44GX44G+44GZ44CCIOOBneOB
+ riBbJiM4MjMwO11dXT48L2Rlc2NyaXB0aW9uPgoJCQkJPGNvbnRlbnQ6ZW5j
+ b2RlZD48IVtDREFUQVs8cD4KMjAxNOW5tDnmnIgxNOaXpSjml6UpIDfmmYLj
+ gYvjgokyMuaZguOBrumWk+OAgU5ETC1PUEFD44GM44K344K544OG44Og44Oh
+ 44Oz44OG44OK44Oz44K544Gu44Gf44KB5YGc5q2i44GX44G+44GZ44CCPGJy
+ IC8+CuOBneOBrumWk+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOOD
+ geOBp+OBr+OAgeaknOe0oue1kOaenOOBiuOCiOOBs+abuOiqjOips+e0sOOB
+ i+OCieOBrk5ETC1PUEFD44G444Gu44Oq44Oz44Kv44GM5L2/55So44Gn44GN
+ 44G+44Gb44KT44CCPGJyIC8+CjxiciAvPgrjgZTkuI3kvr/jgpLjgYrjgYvj
+ gZHjgZfjgb7jgZnjgYzjgIHjgZTkuobmib/jgY/jgaDjgZXjgYTjgII8L3A+
+ Cl1dPjwvY29udGVudDplbmNvZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0
+ cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOC8yMDE0MDgy
+ OV9hbm5vdW5jZS9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNv
+ bW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJh
+ bHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4
+ LzIwMTQwODI5X2Fubm91bmNlLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8
+ dGl0bGU+44CQ5b6p5pen44Gu44GK55+l44KJ44Gb44CR44K344K544OG44Og
+ 6Zqc5a6z44Gr44Gk44GE44Gm77yIMjAxNOW5tDjmnIg05pel77yJPC90aXRs
+ ZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8y
+ MDE0LzA4LzIwMTQwODA0X2Fubm91bmNlLTIvPC9saW5rPgoJCTxjb21tZW50
+ cz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4LzIw
+ MTQwODA0X2Fubm91bmNlLTIvI2NvbW1lbnRzPC9jb21tZW50cz4KCQk8cHVi
+ RGF0ZT5TdW4sIDAzIEF1ZyAyMDE0IDIzOjQ1OjIxICswMDAwPC9wdWJEYXRl
+ PgoJCTxkYzpjcmVhdG9yPjwhW0NEQVRBW05ETCBTZWFyY2hdXT48L2RjOmNy
+ ZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+PCFbQ0RBVEFb5pyq5YiG6aGeXV0+PC9j
+ YXRlZ29yeT4KCgkJPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwOi8v
+ aXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8/cD05OTE8L2d1aWQ+CgkJPGRl
+ c2NyaXB0aW9uPjwhW0NEQVRBW+manOWus+OBruOBn+OCgeWBnOatouOBl+OB
+ puOBhOOBn+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBruak
+ nOe0ouapn+iDveOBjOW+qeaXp+OBhOOBn+OBl+OBvuOBl+OBn+OAgiDjgZTo
+ v7fmg5HjgpLjgYrjgYvjgZHjgZfjgb7jgZfjgabjgIHnlLPjgZfoqLPjgZTj
+ gZYgWyYjODIzMDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJCTxjb250ZW50OmVu
+ Y29kZWQ+PCFbQ0RBVEFbPHA+CumanOWus+OBruOBn+OCgeWBnOatouOBl+OB
+ puOBhOOBn+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBruak
+ nOe0ouapn+iDveOBjOW+qeaXp+OBhOOBn+OBl+OBvuOBl+OBn+OAgjxiciAv
+ Pgo8YnIgLz4K44GU6L+35oOR44KS44GK44GL44GR44GX44G+44GX44Gm44CB
+ 55Sz44GX6Kiz44GU44GW44GE44G+44Gb44KT44Gn44GX44Gf44CCPC9wPgpd
+ XT48L2NvbnRlbnQ6ZW5jb2RlZD4KCQkJPHdmdzpjb21tZW50UnNzPmh0dHA6
+ Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDgvMjAxNDA4MDRf
+ YW5ub3VuY2UtMi9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNv
+ bW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJh
+ bHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4
+ LzIwMTQwODA0X2Fubm91bmNlLTIvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJ
+ CTx0aXRsZT7ml6LlrZjpgKPmkLrmqZ/plqLjgajjga7pgKPmkLrmlrnlvI/l
+ pInmm7TjgavjgaTjgYTjgabvvIgyMDE05bm0N+aciDE45pel77yJPC90aXRs
+ ZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8y
+ MDE0LzA3LzE4X2Fubm91bmNlLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDov
+ L2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNy8xOF9hbm5vdW5j
+ ZS8jY29tbWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPkZyaSwgMTggSnVs
+ IDIwMTQgMDU6MDA6MDggKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+
+ PCFbQ0RBVEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVn
+ b3J5PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlk
+ IGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5m
+ b3JtYXRpb24vP3A9OTY5PC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFU
+ QVvovrLmnpfmsLTnlKPplqLkv4LoqabpqJPnoJTnqbbmqZ/plqLnt4/lkIjn
+ m67pjLLjgajjga7pgKPmkLrjgpLplovlp4vjgZfjgb7jgZfjgZ/jgIIg44CA
+ 6L6y5p6X5rC055Sj6Zai5L+C6Kmm6aiT56CU56m25qmf6Zai57eP5ZCI55uu
+ 6Yyy77yIaHR0cDovL28gWyYjODIzMDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJ
+ CTxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPHA+Cjx1bD4KCTxsaT4KPGg0
+ Pui+suael+awtOeUo+mWouS/guippumok+eglOeptuapn+mWoue3j+WQiOeb
+ rumMsuOBqOOBrumAo+aQuuOCkumWi+Wni+OBl+OBvuOBl+OBn+OAgjwvaDQ+
+ CjwvbGk+CjwvdWw+CuOAgOi+suael+awtOeUo+mWouS/guippumok+eglOep
+ tuapn+mWoue3j+WQiOebrumMsu+8iDxhIGhyZWY9Imh0dHA6Ly9vcGFjLmNj
+ LmFmZnJjLmdvLmpwLyI+aHR0cDovL29wYWMuY2MuYWZmcmMuZ28uanAvPC9h
+ Pu+8ieOBr+i+suael+awtOeUo+ecgeaJgOeuoeOBruWFqOWbveOBruippumo
+ k+eglOeptuapn+mWouOBjOaJgOiUteOBmeOCi+Wbs+abuOizh+aWmemhnuOB
+ iuOCiOOBs+mbkeiqjOOBrue3j+WQiOebrumMsuOBp+OBmeOAguabuOiqjOOB
+ iuOCiOOBs+aJgOWcqOaDheWgseOCkuaPkOS+m+OBl+OBpuOBhOOBvuOBmeOA
+ gjxiciAvPgo8YnIgLz4K5aSW6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O8
+ 44K577yIQVBJ77yJ44Gr44KI44KK44CB44OH44O844K/44Gu5qSc57Si44Go
+ 44OP44O844OZ44K544OI44GM5Y+v6IO944Gn44GZ44CCPGJyIC8+CuODh+OD
+ vOOCv+ODl+ODreODkOOCpOODgElE77yabm9zdWk8YnIgLz4K44Oq44Od44K4
+ 44OI44Oq55Wq5Y+377yaUjEwMDAwMDA3NDxiciAvPgrmpJzntKLnlKhBUEnv
+ vJpTUlXjgIFTUlfjgIFPcGVuU2VhcmNo44CBWjM5LjUwPGJyIC8+CuODj+OD
+ vOODmeOCueODiOeUqEFQSe+8mk9BSS1QTUg8YnIgLz4KPGJyIC8+CuOAgOOB
+ quOBiuOAgeaXouWtmOOBruODh+ODvOOCv+ODl+ODreODkOOCpOODgOOAjOi+
+ suael+awtOeUo+mWouS/guippumok+eglOeptuapn+mWoue3j+WQiOebrumM
+ su+8iOmbkeiqjO+8ieOAjeOAjOi+suael+awtOeUo+mWouS/guippumok+eg
+ lOeptuapn+mWoue3j+WQiOebrumMsu+8iOWbs+abuO+8ieOAjeOBr+OAgeaW
+ sOimj+mAo+aQuumWi+Wni+OBq+S8tOOBhOOAjOi+suael+awtOeUo+mWouS/
+ guippumok+eglOeptuapn+mWoue3j+WQiOebrumMsuOAjeOBq+mbhue0hOOB
+ leOCjOOBvuOBmeOAgjxiciAvPgo8YnIgLz4KJm5ic3A7PGJyIC8+Cjx1bD4K
+ CTxsaT4KPGg0PuS5neW3nuWkp+Wtpue3j+WQiOeglOeptuWNmueJqemkqOOD
+ h+OCuOOCv+ODq+OCouODvOOCq+OCpOODluOBqOOBrumAo+aQuuOCkue1guS6
+ huOBl+OBvuOBl+OBn+OAgjwvaDQ+CjwvbGk+CjwvdWw+CuOAgOS5neW3nuWk
+ p+Wtpue3j+WQiOeglOeptuWNmueJqemkqOODh+OCuOOCv+ODq+OCouODvOOC
+ q+OCpOODlu+8iDxhIGhyZWY9Imh0dHA6Ly93d3cubXVzZXVtLmt5dXNodS11
+ LmFjLmpwLyI+aHR0cDovL3d3dy5tdXNldW0ua3l1c2h1LXUuYWMuanAvPC9h
+ Pu+8ieOBruOCteODvOODk+OCueaPkOS+m+e1guS6huOBq+S8tOOBhOOAgU5E
+ TOOCteODvOODgeOBqOOBrumAo+aQuuOCkue1guS6huOBl+OBvuOBl+OBn+OA
+ gjxiciAvPgo8YnIgLz4K44CA44GT44Gu44Gf44KB44CB44OH44O844K/44OX
+ 44Ot44OQ44Kk44OASUQoa3l1c2h1KeOBq+OBpOOBhOOBpuOBr+OAgU9BSS1Q
+ TUjjga5MaXN0SWRlbnRpZmllcnPjgIFMaXN0UmVjb3Jkc+OBrmZyb23jg5Hj
+ g6njg6Hjg7zjgr/jgavliYrpmaTml6XvvIgyMDE0LTA3LTE377yJ44KS5oyH
+ 5a6a44GZ44KL44GT44Go44Gr44KI44KK44CB5YmK6Zmk44KS56S644GZ44Oh
+ 44K/44OH44O844K/44GM6L+U5oi744GV44KM44G+44GZ44CCPGJyIC8+CuOA
+ gOips+e0sOOBq+OBpOOBhOOBpuOBr+OAgTxhIGhyZWY9Imh0dHA6Ly9pc3Mu
+ bmRsLmdvLmpwL2luZm9ybWF0aW9uL2FwaS8iPkFQSeS7leanmOabuDwvYT7j
+ gpLjgZTopqfjgY/jgaDjgZXjgYTjgII8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wNy8xOF9hbm5vdW5jZS9mZWVkLzwvd2Z3OmNv
+ bW1lbnRSc3M+CgkJPHNsYXNoOmNvbW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRz
+ PgoJPHhodG1sOmxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVs
+ ZCIgdHlwZT0idGV4dC9odG1sIiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5q
+ cC9pbmZvcm1hdGlvbi8yMDE0LzA3LzE4X2Fubm91bmNlLyIgLz4KCTwvaXRl
+ bT4KCQk8aXRlbT4KCQk8dGl0bGU+44CMV2ViIE5ETCBBdXRob3JpdGllcyDj
+ gqLjg7PjgrHjg7zjg4jjgI3jgavjgZTljZTlipvjgY/jgaDjgZXjgYTvvIg2
+ 5pyIMjPml6XjgYvjgok55pyIMjbml6Xjgb7jgafvvIk8L3RpdGxlPgoJCTxs
+ aW5rPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDYv
+ MjNfYW5ub3VuY2UtMy88L2xpbms+CgkJPGNvbW1lbnRzPmh0dHA6Ly9pc3Mu
+ bmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDYvMjNfYW5ub3VuY2UtMy8j
+ Y29tbWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPk1vbiwgMjMgSnVuIDIw
+ MTQgMDA6MDA6NTAgKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFb
+ Q0RBVEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVnb3J5
+ PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlkIGlz
+ UGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3Jt
+ YXRpb24vP3A9OTYwPC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFUQVs2
+ 5pyIMjPml6XvvIjmnIjvvInjgYvjgok55pyIMjbml6XvvIjph5HvvInjgb7j
+ gafjgIEg5Zu956uL5Zu95Lya5Zuz5pu46aSo5YW45oug44OH44O844K/5qSc
+ 57Si44O75o+Q5L6b44K144O844OT44K577yIV2ViIE5ETCBBdXQgWyYjODIz
+ MDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJCTxjb250ZW50OmVuY29kZWQ+PCFb
+ Q0RBVEFbPHA+CjbmnIgyM+aXpe+8iOaciO+8ieOBi+OCiTnmnIgyNuaXpe+8
+ iOmHke+8ieOBvuOBp+OAgTxhIGhyZWY9Imh0dHA6Ly9pZC5uZGwuZ28uanAv
+ YXV0aC9uZGxhIj4g5Zu956uL5Zu95Lya5Zuz5pu46aSo5YW45oug44OH44O8
+ 44K/5qSc57Si44O75o+Q5L6b44K144O844OT44K577yIV2ViIE5ETCBBdXRo
+ b3JpdGllc++8iTwvYT7jgavplqLjgZnjgos8YSBocmVmPSJodHRwczovL2Vu
+ cTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25kbGh5b2thL05ETEEvTkRMQS5jZ2ki
+ PuOCouODs+OCseODvOODiDwvYT7jgpLlrp/mlr3jgZfjgabjgYTjgb7jgZnj
+ gII8YnIgLz4KV2ViIE5ETCBBdXRob3JpdGllc+OBr+OAgeWbveeri+WbveS8
+ muWbs+abuOmkqOOBjOe2reaMgeeuoeeQhuOBmeOCi+WFuOaLoOODh+ODvOOC
+ v+OCkuS4gOWFg+eahOOBq+aknOe0ouODu+aPkOS+m+OBmeOCi+OCteODvOOD
+ k+OCueOBp+OBmeOAguWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOB
+ rjxhIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2Z1
+ bmN0aW9uLyMxNSI+6Zai6YCj44Kt44O844Ov44O844OJPC9hPuOBq+WIqeeU
+ qOOBmeOCi+OBquOBqeOAgeebuOS6kuOBq+mAo+aQuuOBl+OBpuOBhOOBvuOB
+ meOAgjxiciAvPgo8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9lbnEzLmNzdmll
+ dy5qcC9xdWVzdGlvbi9uZGxoeW9rYS9ORExBL05ETEEuY2dpIj5XZWIgTkRM
+ IEF1dGhvcml0aWVz44Gr6Zai44GZ44KL44Ki44Oz44Kx44O844OIPC9hPjxi
+ ciAvPgo8YnIgLz4KV2ViIE5ETCBBdXRob3JpdGllc+OBruS4gOWxpOOBruaU
+ ueWWhOOBq+W9ueeri+OBpuOCi+OBn+OCgeOAgeOBlOWNlOWKm+OCkuOBiumh
+ mOOBhOOBl+OBvuOBmeOAgjxiciAvPgo8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wNi8yM19hbm5vdW5jZS0zL2ZlZWQvPC93Znc6
+ Y29tbWVudFJzcz4KCQk8c2xhc2g6Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVu
+ dHM+Cgk8eGh0bWw6bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRo
+ ZWxkIiB0eXBlPSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdv
+ LmpwL2luZm9ybWF0aW9uLzIwMTQvMDYvMjNfYW5ub3VuY2UtMy8iIC8+Cgk8
+ L2l0ZW0+CgkJPGl0ZW0+CgkJPHRpdGxlPumAo+aQuuOCkuW4jOacm+OBleOC
+ jOOCi+apn+mWouOBruaWueOBq+WQkeOBkeOBn+ODmuODvOOCuOOCkuabtOaW
+ sOOBl+OBvuOBl+OBnyDvvIgyMDE05bm0NuaciDE35pel77yJPC90aXRsZT4K
+ CQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0
+ LzA2LzE3X2Fubm91bmNlLTYvPC9saW5rPgoJCTxjb21tZW50cz5odHRwOi8v
+ aXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA2LzE3X2Fubm91bmNl
+ LTYvI2NvbW1lbnRzPC9jb21tZW50cz4KCQk8cHViRGF0ZT5UdWUsIDE3IEp1
+ biAyMDE0IDA0OjAwOjMzICswMDAwPC9wdWJEYXRlPgoJCTxkYzpjcmVhdG9y
+ PjwhW0NEQVRBW+S6i+WLmeWxgF1dPjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRl
+ Z29yeT48IVtDREFUQVvmnKrliIbpoZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3Vp
+ ZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2lu
+ Zm9ybWF0aW9uLz9wPTk2MTwvZ3VpZD4KCQk8ZGVzY3JpcHRpb24+PCFbQ0RB
+ VEFb5Zu956uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44Gv44CB5qeY44CF
+ 44Gq5aSW6YOo5qmf6Zai44GL44KJ44OH44O844K/44KS5Y+O6ZuG44GX44CB
+ 5o+Q5L6b44GX44Gm44GE44G+44GZ44CCIOOBk+OBruW6puOAgeWbveeri+Wb
+ veS8muWbs+abuOmkqOOCteODvOODgeOBqOmAo+aQuiBbJiM4MjMwO11dXT48
+ L2Rlc2NyaXB0aW9uPgoJCQkJPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8
+ cD4K5Zu956uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44Gv44CB5qeY44CF
+ 44Gq5aSW6YOo5qmf6Zai44GL44KJ44OH44O844K/44KS5Y+O6ZuG44GX44CB
+ 5o+Q5L6b44GX44Gm44GE44G+44GZ44CCPGJyIC8+CuOBk+OBruW6puOAgeWb
+ veeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBqOmAo+aQuuOBhOOBn+OB
+ oOOBj+mam+OBq+OBlOa0u+eUqOOBhOOBn+OBoOOBkeOCi+OCueOCreODvOOD
+ nuODleOCoeOCpOODq+OChOmAo+aQuuOBvuOBp+OBruaJi+mghuOBquOBqeOC
+ kuOAgeaWsOOBn+OBq+WFrOmWi+OBl+OBvuOBl+OBn+OAgjxiciAvPgo8dWw+
+ Cgk8bGk+REMtTkRMKFJERinjgIFEQy1OREwoU2ltcGxlKVhNTOOCueOCreOD
+ vOODnjwvbGk+CuWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBqOOB
+ rumAo+aQuuOBq+WQkeOBkeOBpuOAgeWHuuWKm+OBhOOBn+OBoOOBj1hNTOOB
+ jOODleOCqeODvOODnuODg+ODiOS7leanmOmAmuOCiuOBq+OBquOBo+OBpuOB
+ hOOCi+OBi+OCkuOBlOeiuuiqjeOBhOOBn+OBoOOBkeOCi+OAgURDLU5ETChS
+ REYp44CBREMtTkRMKFNpbXBsZSlYTUzjgrnjgq3jg7zjg57jgpLkvZzmiJDj
+ gZfjgb7jgZfjgZ/jgILjgZTliKnnlKjmlrnms5XjgarjganjgavjgaTjgYTj
+ gabjga/jgIHjgIw8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZv
+ cm1hdGlvbi9yZW5rZWkvIzUiPumAo+aQuuOCkuW4jOacm+OBleOCjOOCi+ap
+ n+mWouOBruaWueOBuO+8njUu5Y+C6ICD6LOH5paZPC9hPuOAjeOCkuOBlOWP
+ gueFp+OBj+OBoOOBleOBhOOAgjxiciAvPgo8YnIgLz4KCTxsaT7lm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4HpgKPmkLrjg57jg4vjg6XjgqLjg6s8
+ L2xpPgrpgKPmkLrplovlp4vjgb7jgafjga7miYvpoIbjgpLjgb7jgajjgoHj
+ gZ/jgIzlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4HpgKPmkLrjg57j
+ g4vjg6XjgqLjg6vjgI3jgpLkvZzmiJDjgZfjgb7jgZfjgZ/jgILjgIw8YSBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi9yZW5rZWkv
+ IzUiPumAo+aQuuOCkuW4jOacm+OBleOCjOOCi+apn+mWouOBruaWueOBuO+8
+ njUu5Y+C6ICD6LOH5paZPC9hPuOAjeOBq+aOsui8ieOBl+OBpuOBhOOBvuOB
+ meOAgjxiciAvPgo8YnIgLz4KCTxsaT7lm73nq4vlm73kvJrlm7Pmm7jppKjn
+ t4/lkIjnm67pjLLjg43jg4Pjg4jjg6/jg7zjgq/vvIjjgobjgavjgYvjga3j
+ gaPjgajvvInjg4fjg7zjgr/mj5DkvpvppKjjga7mlrnjgbjlkJHjgZHjgZ/j
+ g5rjg7zjgrjvvIg8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZv
+ cm1hdGlvbi9zb21va3UvIj5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi9zb21va3UvPC9hPu+8ieOCkui/veWKoOOBl+OBvuOBl+OBn+OAgjwv
+ bGk+CjxiciAvPgoJPGxpPuODh+ODvOOCv+aPkOS+m+OBq+mWouOBmeOCi+OB
+ lOizquWVj+OCkuOAgeOAjOOCiOOBj+OBguOCi+OBlOizquWVj+OAje+8iDxh
+ IGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZhcS8i
+ Pmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZhcS88L2E+77yJ
+ 44Gr6L+95Yqg44GX44G+44GX44Gf44CCPC9saT4KPC91bD4KPGJyIC8+CuOB
+ nOOBsuOBlOWIqeeUqOOBj+OBoOOBleOBhOOAgjwvcD4KXV0+PC9jb250ZW50
+ OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVudFJzcz5odHRwOi8vaXNzLm5kbC5n
+ by5qcC9pbmZvcm1hdGlvbi8yMDE0LzA2LzE3X2Fubm91bmNlLTYvZmVlZC88
+ L3dmdzpjb21tZW50UnNzPgoJCTxzbGFzaDpjb21tZW50cz4wPC9zbGFzaDpj
+ b21tZW50cz4KCTx4aHRtbDpsaW5rIHJlbD0iYWx0ZXJuYXRlIiBtZWRpYT0i
+ aGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNi8xN19hbm5vdW5jZS02LyIg
+ Lz4KCTwvaXRlbT4KCTwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: '1.0'
+ recorded_at: Wed, 01 Oct 2014 07:21:05 GMT
+recorded_with: VCR 2.9.3
diff --git a/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml b/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
new file mode 100644
index 0000000..e4000aa
--- /dev/null
+++ b/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
@@ -0,0 +1,66 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: http://example.com/invalid_feed
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ user-agent:
+ - Faraday v0.9.0
+ accept-encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ accept:
+ - "*/*"
+ response:
+ status:
+ code: 404
+ message: Not Found
+ headers:
+ accept-ranges:
+ - bytes
+ cache-control:
+ - max-age=604800
+ content-type:
+ - text/html
+ date:
+ - Wed, 01 Oct 2014 07:21:05 GMT
+ etag:
+ - '"359670651"'
+ expires:
+ - Wed, 08 Oct 2014 07:21:05 GMT
+ last-modified:
+ - Fri, 09 Aug 2013 23:54:35 GMT
+ server:
+ - ECS (lax/4514)
+ x-cache:
+ - HIT
+ x-ec-custom-error:
+ - '1'
+ content-length:
+ - '1270'
+ connection:
+ - close
+ body:
+ encoding: UTF-8
+ string: "\n\n\n Example Domain\n\n
+ \ \n \n \n \n\n\n\n\n
Example Domain
\n
+ \
This domain is established to be used for illustrative examples in
+ documents. You may use this\n domain in examples without prior coordination
+ or asking for permission.
\n
More
+ information...
\n
\n\n\n"
+ http_version: '1.1'
+ recorded_at: Wed, 01 Oct 2014 07:21:05 GMT
+recorded_with: VCR 2.9.3
diff --git a/spec/cassette_library/NewsFeed/should_reload_content.yml b/spec/cassette_library/NewsFeed/should_reload_content.yml
new file mode 100644
index 0000000..4f93d0a
--- /dev/null
+++ b/spec/cassette_library/NewsFeed/should_reload_content.yml
@@ -0,0 +1,546 @@
+---
+http_interactions:
+- request:
+ method: get
+ uri: http://iss.ndl.go.jp/information/feed/
+ body:
+ encoding: US-ASCII
+ string: ''
+ headers:
+ user-agent:
+ - Faraday v0.9.0
+ accept-encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ accept:
+ - "*/*"
+ response:
+ status:
+ code: 200
+ message: OK
+ headers:
+ date:
+ - Wed, 01 Oct 2014 07:21:05 GMT
+ server:
+ - Apache
+ expires:
+ - Thu, 19 Nov 1981 08:52:00 GMT
+ cache-control:
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ pragma:
+ - no-cache
+ x-pingback:
+ - http://iss.ndl.go.jp/information/xmlrpc.php
+ last-modified:
+ - Tue, 30 Sep 2014 10:39:17 GMT
+ etag:
+ - '"a7c11f1aac82a10a604c4cdf2924af0b"'
+ content-type:
+ - text/xml; charset=UTF-8
+ set-cookie:
+ - PHPSESSID=b6q4jl7dl4hj724ss96e0rvnc7; path=/
+ - serverid=1101; path=/
+ - ROUTEID=.wp02; path=/
+ vary:
+ - Accept-Encoding,User-Agent
+ content-encoding:
+ - gzip
+ x-content-type-options:
+ - nosniff
+ x-frame-options:
+ - SAMEORIGIN
+ connection:
+ - close
+ body:
+ encoding: ASCII-8BIT
+ string: !binary |-
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJzcyB2
+ ZXJzaW9uPSIyLjAiCgl4bWxuczpjb250ZW50PSJodHRwOi8vcHVybC5vcmcv
+ cnNzLzEuMC9tb2R1bGVzL2NvbnRlbnQvIgoJeG1sbnM6d2Z3PSJodHRwOi8v
+ d2VsbGZvcm1lZHdlYi5vcmcvQ29tbWVudEFQSS8iCgl4bWxuczpkYz0iaHR0
+ cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCgl4bWxuczphdG9tPSJo
+ dHRwOi8vd3d3LnczLm9yZy8yMDA1L0F0b20iCgl4bWxuczpzeT0iaHR0cDov
+ L3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9zeW5kaWNhdGlvbi8iCgl4bWxu
+ czpzbGFzaD0iaHR0cDovL3B1cmwub3JnL3Jzcy8xLjAvbW9kdWxlcy9zbGFz
+ aC8iCgkJeG1sbnM6eGh0bWw9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
+ bWwiCj4KCjxjaGFubmVsPgoJPHRpdGxlPuWbveeri+WbveS8muWbs+abuOmk
+ qOOCteODvOODgeOBq+OBpOOBhOOBpjwvdGl0bGU+Cgk8YXRvbTpsaW5rIGhy
+ ZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZlZWQvIiBy
+ ZWw9InNlbGYiIHR5cGU9ImFwcGxpY2F0aW9uL3Jzcyt4bWwiIC8+Cgk8bGlu
+ az5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbjwvbGluaz4KCTxk
+ ZXNjcmlwdGlvbj48L2Rlc2NyaXB0aW9uPgoJPGxhc3RCdWlsZERhdGU+VHVl
+ LCAzMCBTZXAgMjAxNCAxMDozOToxNyArMDAwMDwvbGFzdEJ1aWxkRGF0ZT4K
+ CTxsYW5ndWFnZT5qYTwvbGFuZ3VhZ2U+CgkJPHN5OnVwZGF0ZVBlcmlvZD5o
+ b3VybHk8L3N5OnVwZGF0ZVBlcmlvZD4KCQk8c3k6dXBkYXRlRnJlcXVlbmN5
+ PjE8L3N5OnVwZGF0ZUZyZXF1ZW5jeT4KCTxnZW5lcmF0b3I+aHR0cDovL3dv
+ cmRwcmVzcy5vcmcvP3Y9My45LjI8L2dlbmVyYXRvcj4KPHhodG1sOmxpbmsg
+ cmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9o
+ dG1sIiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi9m
+ ZWVkLyIgLz4KCTxpdGVtPgoJCTx0aXRsZT7lm73nq4vlm73kvJrlm7Pmm7jp
+ pKjjgrXjg7zjg4Hjg6rjg7Pjgq/pm4bjga7jg5rjg7zjgrjjgpLmm7TmlrDj
+ gZfjgb7jgZfjgZ/vvIgyMDE05bm0OeaciDI55pel77yJPC90aXRsZT4KCQk8
+ bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5
+ LzI5X2Fubm91bmNlLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8yOV9hbm5vdW5jZS8jY29t
+ bWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPk1vbiwgMjkgU2VwIDIwMTQg
+ MDQ6NDc6MDUgKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFbQ0RB
+ VEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVnb3J5Pjwh
+ W0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlkIGlzUGVy
+ bWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRp
+ b24vP3A9MTAzNjwvZ3VpZD4KCQk8ZGVzY3JpcHRpb24+PCFbQ0RBVEFb5Zu9
+ 56uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44GM5o+Q5L6b44GZ44KL5aSW
+ 6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O844K577yIQVBJ77yJ44KS5Yip
+ 55So44GX44Gm44GE44KL44K344K544OG44Og44GK44KI44Gz44K144Kk44OI
+ 44KE44CB5Zu956uL5Zu95Lya5ZuzIFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRp
+ b24+CgkJCQk8Y29udGVudDplbmNvZGVkPjwhW0NEQVRBWzxwPgrlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4HjgYzmj5DkvpvjgZnjgovlpJbpg6jm
+ j5DkvpvjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnvvIhBUEnvvInjgpLliKnnlKjj
+ gZfjgabjgYTjgovjgrfjgrnjg4bjg6DjgYrjgojjgbPjgrXjgqTjg4jjgoTj
+ gIHlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4HjgpLntLnku4vjgZfj
+ gabjgYTjgovoqJjkuovjgarjganjgpLpm4bjgoHjgZ/jgIHjgIzlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjg6rjg7Pjgq/pm4bjgI3jga7jg5rj
+ g7zjgrjvvIg8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi9saW5rLyI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24v
+ bGluay88L2E+77yJ44KS5pu05paw44GX44G+44GX44Gf44CC44CMMi7lm7Pm
+ m7jppKjogbflk6HlkJHjgZHjg4Tjg7zjg6vjgI3jgavjgIHmlrDjgZ/jgasz
+ 56iu6aGe44Gu44OE44O844Or44GM5Yqg44KP44KK44G+44GX44Gf44CCPGJy
+ IC8+CjwvcD4KXV0+PC9jb250ZW50OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVu
+ dFJzcz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5
+ LzI5X2Fubm91bmNlL2ZlZWQvPC93Znc6Y29tbWVudFJzcz4KCQk8c2xhc2g6
+ Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVudHM+Cgk8eGh0bWw6bGluayByZWw9
+ ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRoZWxkIiB0eXBlPSJ0ZXh0L2h0bWwi
+ IGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQv
+ MDkvMjlfYW5ub3VuY2UvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJCTx0aXRs
+ ZT7mlrDopo/pgKPmkLrmqZ/plqLjga7ov73liqDjgajml6LlrZjpgKPmkLrm
+ qZ/plqLjgajjga7pgKPmkLrmlrnlvI/jga7lpInmm7TjgpLooYzjgYTjgb7j
+ gZfjgZ/vvIgyMDE05bm0OeaciDIy5pel77yJPC90aXRsZT4KCQk8bGluaz5o
+ dHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fu
+ bm91bmNlLTMvPC9saW5rPgoJCTxjb21tZW50cz5odHRwOi8vaXNzLm5kbC5n
+ by5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fubm91bmNlLTMvI2NvbW1l
+ bnRzPC9jb21tZW50cz4KCQk8cHViRGF0ZT5Nb24sIDIyIFNlcCAyMDE0IDA0
+ OjAwOjE1ICswMDAwPC9wdWJEYXRlPgoJCTxkYzpjcmVhdG9yPjwhW0NEQVRB
+ W+S6i+WLmeWxgF1dPjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRlZ29yeT48IVtD
+ REFUQVvmnKrliIbpoZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3VpZCBpc1Blcm1h
+ TGluaz0iZmFsc2UiPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9u
+ Lz9wPTEwMjk8L2d1aWQ+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBW+adseS6
+ rOmDveeri+Wbs+abuOmkqOODh+OCuOOCv+ODq+OCouODvOOCq+OCpOODlu+8
+ iFRPS1lP44Ki44O844Kr44Kk44OW77yJ44Go44Gu6YCj5pC644KS6ZaL5aeL
+ 44GX44G+44GX44GfIOWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOB
+ p+OBr+OAgeadseS6rCBbJiM4MjMwO11dXT48L2Rlc2NyaXB0aW9uPgoJCQkJ
+ PGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8cD4KPHVsPgoJPGxpPgo8aDQ+
+ CeadseS6rOmDveeri+Wbs+abuOmkqOODh+OCuOOCv+ODq+OCouODvOOCq+OC
+ pOODlu+8iFRPS1lP44Ki44O844Kr44Kk44OW77yJ44Go44Gu6YCj5pC644KS
+ 6ZaL5aeL44GX44G+44GX44GfPC9oND4KPC9saT4KPC91bD4KICDlm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjgafjga/jgIHmnbHkuqzpg73nq4vl
+ m7Pmm7jppKjjg4fjgrjjgr/jg6vjgqLjg7zjgqvjgqTjg5bvvIhUT0tZT+OC
+ ouODvOOCq+OCpOODlu+8iSggPGEgaHJlZj0iaHR0cDovL2FyY2hpdmUubGli
+ cmFyeS5tZXRyby50b2t5by5qcC8gIj5odHRwOi8vYXJjaGl2ZS5saWJyYXJ5
+ Lm1ldHJvLnRva3lvLmpwLzwvYT4gKeOBqOOBruaWsOimj+mAo+aQuuOCkumW
+ i+Wni+OBl+OBvuOBl+OBn+OAgjxiciAvPgrjgIDmnbHkuqzpg73nq4vlm7Pm
+ m7jppKjjg4fjgrjjgr/jg6vjgqLjg7zjgqvjgqTjg5bvvIhUT0tZT+OCouOD
+ vOOCq+OCpOODlu+8ieOBr+OAgeadseS6rOmDveeri+Wbs+abuOmkqOOBjOOD
+ h+OCuOOCv+ODq+WMluOBl+OBn+OAgeaxn+aIuOODu+adseS6rOOBq+mWouOB
+ meOCi+izh+aWmeeUu+WDj+OCkuaknOe0ouODu+mWsuimp+OBp+OBjeOCi+OC
+ t+OCueODhuODoOOBp+OBmeOAguaxn+aIuOWfjumAoOWWtumWouS/guizh+aW
+ meOAgea1ruS4lue1teOAgeaxn+aIuOWbs+OAgee1teiRieabuOOAgeadseS6
+ rOW6nOODu+adseS6rOW4gumWouS/guizh+aWmeOBquOBqTEz44Kr44OG44K0
+ 44Oq44KS5YWs6ZaL44GX44Gm44GE44G+44GZ44CCPGJyIC8+CjxiciAvPgrl
+ pJbpg6jmj5DkvpvjgqTjg7Pjgr/jg5Xjgqfjg7zjgrnvvIhBUEnvvInjgavj
+ gojjgorjgIHmpJzntKLjga7jgb/lj6/og73jgafjgZnjgII8YnIgLz4K44OH
+ 44O844K/44OX44Ot44OQ44Kk44OASUTvvJp0b2t5by1tZXRyby1kYTxiciAv
+ Pgrjg6rjg53jgrjjg4jjg6rnlarlj7fvvJpSMTAwMDAwMDg2PGJyIC8+Cuak
+ nOe0oueUqEFQSe+8mlNSVeOAgVNSV+OAgU9wZW5TZWFyY2jjgIFaMzkuNTA8
+ YnIgLz4KPGJyIC8+CiZuYnNwOzxiciAvPgo8dWw+Cgk8bGk+CjxoND4J6aeS
+ 5r6k5aSn5a2m6Zu75a2Q6LK06YeN5pu45bqr44Go44Gu6YCj5pC66ZaL5aeL
+ PC9oND4KPC9saT4KPC91bD4KICDlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXj
+ g7zjg4Hjgafjga/jgIHpp5LmvqTlpKflrabpm7vlrZDosrTph43mm7jluqso
+ IDxhIGhyZWY9Imh0dHA6Ly9yZXBvLmtvbWF6YXdhLXUuYWMuanAvcmV0cmll
+ dmUva2l0eW91LyI+aHR0cDovL3JlcG8ua29tYXphd2EtdS5hYy5qcC9yZXRy
+ aWV2ZS9raXR5b3UvPC9hPiAp44Go44Gu5paw6KaP6YCj5pC644KS6ZaL5aeL
+ 44GX44G+44GX44Gf44CCPGJyIC8+Cumnkua+pOWkp+Wtpumbu+WtkOiytOmH
+ jeabuOW6q+OBr+mnkua+pOWkp+WtpuOAgemnkua+pOWkp+WtpuWbs+abuOmk
+ qOOBjOaJgOiUteOBl+OBpuOBhOOCi+iytOmHjeOBquemheexjeODu+S7j+aV
+ meabuOOCkuS4reW/g+OBq+OAgeOBguOCj+OBm+OBpuWbveaWh+WtpuODu+Wb
+ veiqnuWtpuODu+iqnuWtpuODu+attOWPsuWtpuetieOBruWQhOWIhumHjuOB
+ ruiytOmHjeOBquizh+aWmeOBruabuOiqjOOBqOeUu+WDj+OCkumWsuimp+OB
+ p+OBjeOCi+OCt+OCueODhuODoOOBp+OBmeOAgjxiciAvPgo8YnIgLz4K5aSW
+ 6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O844K577yIQVBJ77yJ44Gr44KI
+ 44KK44CB44OH44O844K/44Gu5qSc57Si44Go44OP44O844OZ44K544OI44GM
+ 5Y+v6IO944Gn44GZ44CCPGJyIC8+CuODh+ODvOOCv+ODl+ODreODkOOCpOOD
+ gElE77yaIGtvbWF6d2EtdW5pdjxiciAvPgrjg6rjg53jgrjjg4jjg6rnlarl
+ j7fvvJpSMTAwMDAwMDg3PGJyIC8+CuaknOe0oueUqEFQSe+8mlNSVeOAgVNS
+ V+OAgU9wZW5TZWFyY2jjgIFaMzkuNTA8YnIgLz4K44OP44O844OZ44K544OI
+ 55SoQVBJ77yaT0FJLVBNSDxiciAvPgo8YnIgLz4KJm5ic3A7PGJyIC8+Cjx1
+ bD4KCTxsaT4KPGg0Pgnlj6Hmmbrjga7mnZxXZWLvvIjlrq7ln47nnIzlm7Pm
+ m7jppKjvvInjgajjga7pgKPmkLrmlrnlvI/lpInmm7Q8L2g0Pgo8L2xpPgo8
+ L3VsPgogIOWPoeaZuuOBruadnFdlYiggPGEgaHJlZj0iaHR0cDovL3d3dy5s
+ aWJyYXJ5LnByZWYubWl5YWdpLmpwL2VpY2hpLmh0bWwiPmh0dHA6Ly93d3cu
+ bGlicmFyeS5wcmVmLm1peWFnaS5qcC9laWNoaS5odG1sPC9hPiAp44Gv5a6u
+ 5Z+O55yM44Gr6Zai44GZ44KL6KiY5LqL44O76KuW5paH57Si5byV44KE44CB
+ 44CM5LyK6YGU5paH5bqr44CN44KE44CM6Z2S5p+z5paH5bqr44CN44Gq44Gp
+ 5Y+k5YW457GN562J44Gu5pu46KqM5oOF5aCx44KE44OH44K444K/44Or5YyW
+ 6LOH5paZ44KS5qSc57Si44O76Zay6Kan44Gn44GN44KL44K344K544OG44Og
+ 44Gn44GZ44CCPGJyIC8+CuOBk+OCjOOBvuOBp+OCguWbveeri+WbveS8muWb
+ s+abuOmkqOOCteODvOODgeOBqOWPoeaZuuOBruadnFdlYuOBr+mAo+aQuuOC
+ kuihjOOBo+OBpuOBvuOBhOOCiuOBvuOBl+OBn+OBjOOAgeWPoeaZuuOBruad
+ nFdlYuOBruODquODi+ODpeODvOOCouODq+OBq+S8tOOBhOOAgVJTU+OBq+OC
+ iOOCi+mAo+aQuuOBi+OCiU9BSS1QTUjjgavjgojjgovpgKPmkLrjgbjjgajl
+ iIfjgormm7/jgo/jgorjgb7jgZnjgILpgKPmkLrmlrnlvI/jga7liIfjgorm
+ m7/jgYjjgajjg4fjg7zjgr/jga7lhajku7blhaXjgozmm7/jgYjjgavjgojj
+ gorjgIFPQUktUE1I44Gn44OH44O844K/44KS5Y+W5b6X44GZ44KL5aC05ZCI
+ 44Gu44OH44O844K/44Gu6LW354K55pel44GM5aSJ5pu044Go44Gq44KK44G+
+ 44GZ44CCPGJyIC8+CjxiciAvPgrigLvpgKPmkLrmlrnlvI/liIfjgormm7/j
+ gYjlvozjgoLjgIHlvJXjgY3ntprjgY3lpJbpg6jmj5DkvpvjgqTjg7Pjgr/j
+ g5Xjgqfjg7zjgrnvvIhBUEnvvInjgavjgojjgorjgIHjg4fjg7zjgr/jga7m
+ pJzntKLjgajjg4/jg7zjg5njgrnjg4jjgYzlj6/og73jgafjgZnjgII8YnIg
+ Lz4K44CA44OH44O844K/44OX44Ot44OQ44Kk44OASUTvvJptaXlhZ2k8YnIg
+ Lz4K44CA44Oq44Od44K444OI44Oq55Wq5Y+377yaUjAwMDAwMDA1NDxiciAv
+ PgrjgIDmpJzntKLnlKhBUEnvvJpTUlXjgIFTUlfjgIFPcGVuU2VhcmNo44CB
+ WjM5LjUwPGJyIC8+CuOAgOODj+ODvOODmeOCueODiOeUqEFQSe+8mk9BSS1Q
+ TUg8YnIgLz4K44CAT0FJLVBNSOOBp+OBruODh+ODvOOCv+OBrui1t+eCueaX
+ pe+8mjIwMTTlubQ55pyIMTnml6U8YnIgLz4KPGJyIC8+CjwvcD4KXV0+PC9j
+ b250ZW50OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVudFJzcz5odHRwOi8vaXNz
+ Lm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIyX2Fubm91bmNlLTMv
+ ZmVlZC88L3dmdzpjb21tZW50UnNzPgoJCTxzbGFzaDpjb21tZW50cz4wPC9z
+ bGFzaDpjb21tZW50cz4KCTx4aHRtbDpsaW5rIHJlbD0iYWx0ZXJuYXRlIiBt
+ ZWRpYT0iaGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDov
+ L2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8yMl9hbm5vdW5j
+ ZS0zLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8dGl0bGU+6Zu75rCX6Kit
+ 5YKZ44Gu5a6a5pyf54K55qSc5L2c5qWt562J44Gr5Ly044GG44CB5LiA6YOo
+ 5qmf6IO95Yi26ZmQ44Gu44GK55+l44KJ44Gb77yIMjAxNOW5tDEw5pyI77yJ
+ PC90aXRsZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi8yMDE0LzA5LzIwMTQwOTE3X2Fubm91bmNlLTAxLzwvbGluaz4KCQk8
+ Y29tbWVudHM+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAx
+ NC8wOS8yMDE0MDkxN19hbm5vdW5jZS0wMS8jY29tbWVudHM8L2NvbW1lbnRz
+ PgoJCTxwdWJEYXRlPldlZCwgMTcgU2VwIDIwMTQgMDc6NDk6MjAgKzAwMDA8
+ L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFbQ0RBVEFbTkRMIFNlYXJjaF1d
+ PjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRlZ29yeT48IVtDREFUQVvmnKrliIbp
+ oZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3VpZCBpc1Blcm1hTGluaz0iZmFsc2Ui
+ Pmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLz9wPTEwMjg8L2d1
+ aWQ+CgkJPGRlc2NyaXB0aW9uPjwhW0NEQVRBW+mbu+awl+ioreWCmeOBruWu
+ muacn+eCueaknOS9nOalreetieOBq+S8tOOBhuWBnOmbu+OBq+OCiOOCiuOA
+ geS7peS4i+OBruapn+iDveOBjOWIqeeUqOOBp+OBjeOBvuOBm+OCk+OAgiDv
+ vJzlm7Pmm7jppKjlk6Hjga7mlrnlkJHjgZHvvJ4g6Zu75a2Q44Oh44O844Or
+ 44Gn44Gu55u4IFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRpb24+CgkJCQk8Y29u
+ dGVudDplbmNvZGVkPjwhW0NEQVRBWzxwPgrpm7vmsJfoqK3lgpnjga7lrprm
+ nJ/ngrnmpJzkvZzmpa3nrYnjgavkvLTjgYblgZzpm7vjgavjgojjgorjgIHk
+ u6XkuIvjga7mqZ/og73jgYzliKnnlKjjgafjgY3jgb7jgZvjgpPjgII8YnIg
+ Lz4KPGJyIC8+Cu+8nOWbs+abuOmkqOWToeOBruaWueWQkeOBke+8njxiciAv
+ Pgrpm7vlrZDjg6Hjg7zjg6vjgafjga7nm7jkupLosrjlgJ/kvp3poLzvvIjl
+ m7Pmm7jppKjplpPosrjlh7rvvIk8YnIgLz4K5YGc5q2i5pyf6ZaT77yaMTDm
+ nIgxMeaXpSjlnJ8pIDE5OjMw44CA772e44CAMTDmnIgxM+aXpSjmnIgpIDEy
+ OjAwPGJyIC8+CjxiciAvPgrjgZTkuI3kvr/jgpLjgYrjgYvjgZHjgZfjgb7j
+ gZnjgYzjgIHjgZTkuobmib/jgY/jgaDjgZXjgYTjgb7jgZnjgojjgYbjgYrp
+ oZjjgYTjgYTjgZ/jgZfjgb7jgZnjgII8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wOS8yMDE0MDkxN19hbm5vdW5jZS0wMS9mZWVk
+ Lzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNvbW1lbnRzPjA8L3NsYXNo
+ OmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlh
+ PSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBocmVmPSJodHRwOi8vaXNz
+ Lm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA5LzIwMTQwOTE3X2Fubm91
+ bmNlLTAxLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8dGl0bGU+5Zu956uL
+ 5Zu95Lya5Zuz5pu46aSo44K144O844OBIEFQSeWIqeeUqOeUs+iri+ODleOC
+ qeODvOODoOOCkuabtOaWsOOBl+OBvuOBl+OBn+OAgjwvdGl0bGU+CgkJPGxp
+ bms+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8w
+ MV9hbm5vdW5jZS0xLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOS8wMV9hbm5vdW5jZS0xLyNj
+ b21tZW50czwvY29tbWVudHM+CgkJPHB1YkRhdGU+TW9uLCAwMSBTZXAgMjAx
+ NCAwNDowMDoyOSArMDAwMDwvcHViRGF0ZT4KCQk8ZGM6Y3JlYXRvcj48IVtD
+ REFUQVvkuovli5nlsYBdXT48L2RjOmNyZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+
+ PCFbQ0RBVEFb5pyq5YiG6aGeXV0+PC9jYXRlZ29yeT4KCgkJPGd1aWQgaXNQ
+ ZXJtYUxpbms9ImZhbHNlIj5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi8/cD0xMDEzPC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFUQVvl
+ m73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjga5BUEnliKnnlKjjgavj
+ gaTjgY3jgb7jgZfjgabjgIHjgZPjgozjgb7jgafjga/jgIHjgYrllY/jgYTl
+ kIjjgo/jgZvjg5Xjgqnjg7zjg6DjgYvjgonlv4XopoHkuovpoIXjgpLoqJjl
+ haXjgZfjgabnlLPoq4vjgZfjgabjgYQgWyYjODIzMDtdXV0+PC9kZXNjcmlw
+ dGlvbj4KCQkJCTxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPHA+CuWbveer
+ i+WbveS8muWbs+abuOmkqOOCteODvOODgeOBrkFQSeWIqeeUqOOBq+OBpOOB
+ jeOBvuOBl+OBpuOAgeOBk+OCjOOBvuOBp+OBr+OAgeOBiuWVj+OBhOWQiOOC
+ j+OBm+ODleOCqeODvOODoOOBi+OCieW/heimgeS6i+mgheOCkuiomOWFpeOB
+ l+OBpueUs+iri+OBl+OBpuOBhOOBn+OBoOOBhOOBpuOBhOOBvuOBl+OBn+OB
+ jOOAgeaWsOOBn+OBq+WIqeeUqOeUs+iri+ODleOCqeODvOODoOOCkuioreOB
+ keOBpuOAgeeUs+iri+OBruaJi+e2muOBjeOCkuewoee0oOWMluOBl+OBvuOB
+ l+OBn+OAgjxiciAvPgo8YnIgLz4KPGEgaHJlZj0iaHR0cDovL3d3dy5uZGwu
+ Z28uanAvanAvc2VydmljZS9hcGlfYXBwbGljYXRpb24uaHRtbCI+5Zu956uL
+ 5Zu95Lya5Zuz5pu46aSo44K144O844OBQVBJ5Yip55So55Sz6KuL44OV44Kp
+ 44O844OgPC9hPjxiciAvPgo8YSBocmVmPSJodHRwOi8vd3d3Lm5kbC5nby5q
+ cC9lbi9zZXJ2aWNlL2FwaV9hcHBsaWNhdGlvbi5odG1sIj5BcHBsaWNhdGlv
+ biBQcm9ncmFtbWluZyBJbnRlcmZhY2UgKEFQSSkgb2YgdGhlIE5ETCBTZWFy
+ Y2g6IEFwcGxpY2F0aW9uIEZvcm08L2E+PGJyIC8+CjxiciAvPgrjgarjgYrj
+ gIHlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4Hjga5BUEnjgpLjgZTl
+ iKnnlKjjgYTjgZ/jgaDjgY/loLTlkIjjgIHjgZTliKnnlKjnm67nmoTjgavj
+ gojjgaPjgabmiYvntprjgY3jgYznlbDjgarjgorjgb7jgZnjgILjgZTliKnn
+ lKjjga7liY3jgavjgIHlv4XjgZrjgIw8YSBocmVmPSJodHRwOi8vaXNzLm5k
+ bC5nby5qcC9pbmZvcm1hdGlvbi9hcGkvcml5b3UvIj7lm73nq4vlm73kvJrl
+ m7Pmm7jppKjjgrXjg7zjg4HjgavjgaTjgYTjgabvvJ5BUEnjga7jgZTliKnn
+ lKjjgavjgaTjgYTjgaY8L2E+44CN44KS44GU6Kan44GP44Gg44GV44GE44CC
+ PGJyIC8+CjxiciAvPgo8L3A+Cl1dPjwvY29udGVudDplbmNvZGVkPgoJCQk8
+ d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRp
+ b24vMjAxNC8wOS8wMV9hbm5vdW5jZS0xL2ZlZWQvPC93Znc6Y29tbWVudFJz
+ cz4KCQk8c2xhc2g6Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVudHM+Cgk8eGh0
+ bWw6bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRoZWxkIiB0eXBl
+ PSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9y
+ bWF0aW9uLzIwMTQvMDkvMDFfYW5ub3VuY2UtMS8iIC8+Cgk8L2l0ZW0+CgkJ
+ PGl0ZW0+CgkJPHRpdGxlPuWbveeri+WbveS8muWbs+abuOmkqOOBruOCquOD
+ s+ODqeOCpOODs+OCteODvOODk+OCueOChOmBoOmalOikh+WGmeOCteODvOOD
+ k+OCueetieOBq+mWouOBmeOCi+OCouODs+OCseODvOODiOOBq+OBlOWNlOWK
+ m+OCkuOBiumhmOOBhOOBl+OBvuOBme+8iDnmnIgyNuaXpe+8iOmHke+8ieOB
+ vuOBp++8ieOAgjwvdGl0bGU+CgkJPGxpbms+aHR0cDovL2lzcy5uZGwuZ28u
+ anAvaW5mb3JtYXRpb24vMjAxNC8wOS8wMV9hbm5vdW5jZS0yLzwvbGluaz4K
+ CQk8Y29tbWVudHM+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24v
+ MjAxNC8wOS8wMV9hbm5vdW5jZS0yLyNjb21tZW50czwvY29tbWVudHM+CgkJ
+ PHB1YkRhdGU+TW9uLCAwMSBTZXAgMjAxNCAwNDowMDoxMiArMDAwMDwvcHVi
+ RGF0ZT4KCQk8ZGM6Y3JlYXRvcj48IVtDREFUQVvkuovli5nlsYBdXT48L2Rj
+ OmNyZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+PCFbQ0RBVEFb5pyq5YiG6aGeXV0+
+ PC9jYXRlZ29yeT4KCgkJPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRw
+ Oi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8/cD0xMDE0PC9ndWlkPgoJ
+ CTxkZXNjcmlwdGlvbj48IVtDREFUQVvlm73nq4vlm73kvJrlm7Pmm7jppKjj
+ ga7jgqrjg7Pjg6njgqTjg7PjgrXjg7zjg5PjgrnjgoTpgaDpmpTopIflhpnj
+ grXjg7zjg5PjgrnnrYnjgpLmlLnlloTjgZnjgovjgZ/jgoHjgavjgIHjgqLj
+ g7PjgrHjg7zjg4jjgpLlrp/mlr3jgZfjgabjgYTjgb7jgZnjgIIg5Zu956uL
+ 5Zu95LyaIFsmIzgyMzA7XV1dPjwvZGVzY3JpcHRpb24+CgkJCQk8Y29udGVu
+ dDplbmNvZGVkPjwhW0NEQVRBWzxwPgrlm73nq4vlm73kvJrlm7Pmm7jppKjj
+ ga7jgqrjg7Pjg6njgqTjg7PjgrXjg7zjg5PjgrnjgoTpgaDpmpTopIflhpnj
+ grXjg7zjg5PjgrnnrYnjgpLmlLnlloTjgZnjgovjgZ/jgoHjgavjgIE8YSBo
+ cmVmPSJodHRwczovL2VucTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25kbGh5b2th
+ L0gyNkhQRW5xdWV0ZS9IMjZIUEVucXVldGUuY2dpIj7jgqLjg7PjgrHjg7zj
+ g4g8L2E+44KS5a6f5pa944GX44Gm44GE44G+44GZ44CCPGJyIC8+CjxiciAv
+ Pgo8YSBocmVmPSJodHRwczovL2VucTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25k
+ bGh5b2thL0gyNkhQRW5xdWV0ZS9IMjZIUEVucXVldGUuY2dpIj7lm73nq4vl
+ m73kvJrlm7Pmm7jppKjjg5vjg7zjg6Djg5rjg7zjgrjjgqLjg7PjgrHjg7zj
+ g4g8L2E+PGJyIC8+CjxiciAvPgrlvZPppKjjga7jgrXjg7zjg5Pjgrnjga7k
+ uIDlsaTjga7mlLnlloTjgavlvbnnq4vjgabjgovjgZ/jgoHjgIHnmobmp5jj
+ ga7jgZTmhI/opovjgpLjgYrogZ7jgYvjgZvjgY/jgaDjgZXjgYTjgII8YnIg
+ Lz4KPC9wPgpdXT48L2NvbnRlbnQ6ZW5jb2RlZD4KCQkJPHdmdzpjb21tZW50
+ UnNzPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDkv
+ MDFfYW5ub3VuY2UtMi9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNo
+ OmNvbW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVs
+ PSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1s
+ IiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0
+ LzA5LzAxX2Fubm91bmNlLTIvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJCTx0
+ aXRsZT5OREwtT1BBQ+ODoeODs+ODhuODiuODs+OCueOBruOBiuefpeOCieOB
+ m++8iDIwMTTlubQ55pyIMTTml6U35pmC44GL44KJMjLmmYLvvIk8L3RpdGxl
+ PgoJCTxsaW5rPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIw
+ MTQvMDgvMjAxNDA4MjlfYW5ub3VuY2UvPC9saW5rPgoJCTxjb21tZW50cz5o
+ dHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4LzIwMTQw
+ ODI5X2Fubm91bmNlLyNjb21tZW50czwvY29tbWVudHM+CgkJPHB1YkRhdGU+
+ RnJpLCAyOSBBdWcgMjAxNCAwMjo0ODo0OSArMDAwMDwvcHViRGF0ZT4KCQk8
+ ZGM6Y3JlYXRvcj48IVtDREFUQVtOREwgU2VhcmNoXV0+PC9kYzpjcmVhdG9y
+ PgoJCQkJPGNhdGVnb3J5PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdv
+ cnk+CgoJCTxndWlkIGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vP3A9MTAxNTwvZ3VpZD4KCQk8ZGVzY3Jp
+ cHRpb24+PCFbQ0RBVEFbMjAxNOW5tDnmnIgxNOaXpSjml6UpIDfmmYLjgYvj
+ gokyMuaZguOBrumWk+OAgU5ETC1PUEFD44GM44K344K544OG44Og44Oh44Oz
+ 44OG44OK44Oz44K544Gu44Gf44KB5YGc5q2i44GX44G+44GZ44CCIOOBneOB
+ riBbJiM4MjMwO11dXT48L2Rlc2NyaXB0aW9uPgoJCQkJPGNvbnRlbnQ6ZW5j
+ b2RlZD48IVtDREFUQVs8cD4KMjAxNOW5tDnmnIgxNOaXpSjml6UpIDfmmYLj
+ gYvjgokyMuaZguOBrumWk+OAgU5ETC1PUEFD44GM44K344K544OG44Og44Oh
+ 44Oz44OG44OK44Oz44K544Gu44Gf44KB5YGc5q2i44GX44G+44GZ44CCPGJy
+ IC8+CuOBneOBrumWk+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOOD
+ geOBp+OBr+OAgeaknOe0oue1kOaenOOBiuOCiOOBs+abuOiqjOips+e0sOOB
+ i+OCieOBrk5ETC1PUEFD44G444Gu44Oq44Oz44Kv44GM5L2/55So44Gn44GN
+ 44G+44Gb44KT44CCPGJyIC8+CjxiciAvPgrjgZTkuI3kvr/jgpLjgYrjgYvj
+ gZHjgZfjgb7jgZnjgYzjgIHjgZTkuobmib/jgY/jgaDjgZXjgYTjgII8L3A+
+ Cl1dPjwvY29udGVudDplbmNvZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0
+ cDovL2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wOC8yMDE0MDgy
+ OV9hbm5vdW5jZS9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNv
+ bW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJh
+ bHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4
+ LzIwMTQwODI5X2Fubm91bmNlLyIgLz4KCTwvaXRlbT4KCQk8aXRlbT4KCQk8
+ dGl0bGU+44CQ5b6p5pen44Gu44GK55+l44KJ44Gb44CR44K344K544OG44Og
+ 6Zqc5a6z44Gr44Gk44GE44Gm77yIMjAxNOW5tDjmnIg05pel77yJPC90aXRs
+ ZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8y
+ MDE0LzA4LzIwMTQwODA0X2Fubm91bmNlLTIvPC9saW5rPgoJCTxjb21tZW50
+ cz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4LzIw
+ MTQwODA0X2Fubm91bmNlLTIvI2NvbW1lbnRzPC9jb21tZW50cz4KCQk8cHVi
+ RGF0ZT5TdW4sIDAzIEF1ZyAyMDE0IDIzOjQ1OjIxICswMDAwPC9wdWJEYXRl
+ PgoJCTxkYzpjcmVhdG9yPjwhW0NEQVRBW05ETCBTZWFyY2hdXT48L2RjOmNy
+ ZWF0b3I+CgkJCQk8Y2F0ZWdvcnk+PCFbQ0RBVEFb5pyq5YiG6aGeXV0+PC9j
+ YXRlZ29yeT4KCgkJPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj5odHRwOi8v
+ aXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8/cD05OTE8L2d1aWQ+CgkJPGRl
+ c2NyaXB0aW9uPjwhW0NEQVRBW+manOWus+OBruOBn+OCgeWBnOatouOBl+OB
+ puOBhOOBn+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBruak
+ nOe0ouapn+iDveOBjOW+qeaXp+OBhOOBn+OBl+OBvuOBl+OBn+OAgiDjgZTo
+ v7fmg5HjgpLjgYrjgYvjgZHjgZfjgb7jgZfjgabjgIHnlLPjgZfoqLPjgZTj
+ gZYgWyYjODIzMDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJCTxjb250ZW50OmVu
+ Y29kZWQ+PCFbQ0RBVEFbPHA+CumanOWus+OBruOBn+OCgeWBnOatouOBl+OB
+ puOBhOOBn+OAgeWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBruak
+ nOe0ouapn+iDveOBjOW+qeaXp+OBhOOBn+OBl+OBvuOBl+OBn+OAgjxiciAv
+ Pgo8YnIgLz4K44GU6L+35oOR44KS44GK44GL44GR44GX44G+44GX44Gm44CB
+ 55Sz44GX6Kiz44GU44GW44GE44G+44Gb44KT44Gn44GX44Gf44CCPC9wPgpd
+ XT48L2NvbnRlbnQ6ZW5jb2RlZD4KCQkJPHdmdzpjb21tZW50UnNzPmh0dHA6
+ Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDgvMjAxNDA4MDRf
+ YW5ub3VuY2UtMi9mZWVkLzwvd2Z3OmNvbW1lbnRSc3M+CgkJPHNsYXNoOmNv
+ bW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRzPgoJPHhodG1sOmxpbmsgcmVsPSJh
+ bHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVsZCIgdHlwZT0idGV4dC9odG1sIiBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA4
+ LzIwMTQwODA0X2Fubm91bmNlLTIvIiAvPgoJPC9pdGVtPgoJCTxpdGVtPgoJ
+ CTx0aXRsZT7ml6LlrZjpgKPmkLrmqZ/plqLjgajjga7pgKPmkLrmlrnlvI/l
+ pInmm7TjgavjgaTjgYTjgabvvIgyMDE05bm0N+aciDE45pel77yJPC90aXRs
+ ZT4KCQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8y
+ MDE0LzA3LzE4X2Fubm91bmNlLzwvbGluaz4KCQk8Y29tbWVudHM+aHR0cDov
+ L2lzcy5uZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNy8xOF9hbm5vdW5j
+ ZS8jY29tbWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPkZyaSwgMTggSnVs
+ IDIwMTQgMDU6MDA6MDggKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+
+ PCFbQ0RBVEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVn
+ b3J5PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlk
+ IGlzUGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5m
+ b3JtYXRpb24vP3A9OTY5PC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFU
+ QVvovrLmnpfmsLTnlKPplqLkv4LoqabpqJPnoJTnqbbmqZ/plqLnt4/lkIjn
+ m67pjLLjgajjga7pgKPmkLrjgpLplovlp4vjgZfjgb7jgZfjgZ/jgIIg44CA
+ 6L6y5p6X5rC055Sj6Zai5L+C6Kmm6aiT56CU56m25qmf6Zai57eP5ZCI55uu
+ 6Yyy77yIaHR0cDovL28gWyYjODIzMDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJ
+ CTxjb250ZW50OmVuY29kZWQ+PCFbQ0RBVEFbPHA+Cjx1bD4KCTxsaT4KPGg0
+ Pui+suael+awtOeUo+mWouS/guippumok+eglOeptuapn+mWoue3j+WQiOeb
+ rumMsuOBqOOBrumAo+aQuuOCkumWi+Wni+OBl+OBvuOBl+OBn+OAgjwvaDQ+
+ CjwvbGk+CjwvdWw+CuOAgOi+suael+awtOeUo+mWouS/guippumok+eglOep
+ tuapn+mWoue3j+WQiOebrumMsu+8iDxhIGhyZWY9Imh0dHA6Ly9vcGFjLmNj
+ LmFmZnJjLmdvLmpwLyI+aHR0cDovL29wYWMuY2MuYWZmcmMuZ28uanAvPC9h
+ Pu+8ieOBr+i+suael+awtOeUo+ecgeaJgOeuoeOBruWFqOWbveOBruippumo
+ k+eglOeptuapn+mWouOBjOaJgOiUteOBmeOCi+Wbs+abuOizh+aWmemhnuOB
+ iuOCiOOBs+mbkeiqjOOBrue3j+WQiOebrumMsuOBp+OBmeOAguabuOiqjOOB
+ iuOCiOOBs+aJgOWcqOaDheWgseOCkuaPkOS+m+OBl+OBpuOBhOOBvuOBmeOA
+ gjxiciAvPgo8YnIgLz4K5aSW6YOo5o+Q5L6b44Kk44Oz44K/44OV44Kn44O8
+ 44K577yIQVBJ77yJ44Gr44KI44KK44CB44OH44O844K/44Gu5qSc57Si44Go
+ 44OP44O844OZ44K544OI44GM5Y+v6IO944Gn44GZ44CCPGJyIC8+CuODh+OD
+ vOOCv+ODl+ODreODkOOCpOODgElE77yabm9zdWk8YnIgLz4K44Oq44Od44K4
+ 44OI44Oq55Wq5Y+377yaUjEwMDAwMDA3NDxiciAvPgrmpJzntKLnlKhBUEnv
+ vJpTUlXjgIFTUlfjgIFPcGVuU2VhcmNo44CBWjM5LjUwPGJyIC8+CuODj+OD
+ vOODmeOCueODiOeUqEFQSe+8mk9BSS1QTUg8YnIgLz4KPGJyIC8+CuOAgOOB
+ quOBiuOAgeaXouWtmOOBruODh+ODvOOCv+ODl+ODreODkOOCpOODgOOAjOi+
+ suael+awtOeUo+mWouS/guippumok+eglOeptuapn+mWoue3j+WQiOebrumM
+ su+8iOmbkeiqjO+8ieOAjeOAjOi+suael+awtOeUo+mWouS/guippumok+eg
+ lOeptuapn+mWoue3j+WQiOebrumMsu+8iOWbs+abuO+8ieOAjeOBr+OAgeaW
+ sOimj+mAo+aQuumWi+Wni+OBq+S8tOOBhOOAjOi+suael+awtOeUo+mWouS/
+ guippumok+eglOeptuapn+mWoue3j+WQiOebrumMsuOAjeOBq+mbhue0hOOB
+ leOCjOOBvuOBmeOAgjxiciAvPgo8YnIgLz4KJm5ic3A7PGJyIC8+Cjx1bD4K
+ CTxsaT4KPGg0PuS5neW3nuWkp+Wtpue3j+WQiOeglOeptuWNmueJqemkqOOD
+ h+OCuOOCv+ODq+OCouODvOOCq+OCpOODluOBqOOBrumAo+aQuuOCkue1guS6
+ huOBl+OBvuOBl+OBn+OAgjwvaDQ+CjwvbGk+CjwvdWw+CuOAgOS5neW3nuWk
+ p+Wtpue3j+WQiOeglOeptuWNmueJqemkqOODh+OCuOOCv+ODq+OCouODvOOC
+ q+OCpOODlu+8iDxhIGhyZWY9Imh0dHA6Ly93d3cubXVzZXVtLmt5dXNodS11
+ LmFjLmpwLyI+aHR0cDovL3d3dy5tdXNldW0ua3l1c2h1LXUuYWMuanAvPC9h
+ Pu+8ieOBruOCteODvOODk+OCueaPkOS+m+e1guS6huOBq+S8tOOBhOOAgU5E
+ TOOCteODvOODgeOBqOOBrumAo+aQuuOCkue1guS6huOBl+OBvuOBl+OBn+OA
+ gjxiciAvPgo8YnIgLz4K44CA44GT44Gu44Gf44KB44CB44OH44O844K/44OX
+ 44Ot44OQ44Kk44OASUQoa3l1c2h1KeOBq+OBpOOBhOOBpuOBr+OAgU9BSS1Q
+ TUjjga5MaXN0SWRlbnRpZmllcnPjgIFMaXN0UmVjb3Jkc+OBrmZyb23jg5Hj
+ g6njg6Hjg7zjgr/jgavliYrpmaTml6XvvIgyMDE0LTA3LTE377yJ44KS5oyH
+ 5a6a44GZ44KL44GT44Go44Gr44KI44KK44CB5YmK6Zmk44KS56S644GZ44Oh
+ 44K/44OH44O844K/44GM6L+U5oi744GV44KM44G+44GZ44CCPGJyIC8+CuOA
+ gOips+e0sOOBq+OBpOOBhOOBpuOBr+OAgTxhIGhyZWY9Imh0dHA6Ly9pc3Mu
+ bmRsLmdvLmpwL2luZm9ybWF0aW9uL2FwaS8iPkFQSeS7leanmOabuDwvYT7j
+ gpLjgZTopqfjgY/jgaDjgZXjgYTjgII8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wNy8xOF9hbm5vdW5jZS9mZWVkLzwvd2Z3OmNv
+ bW1lbnRSc3M+CgkJPHNsYXNoOmNvbW1lbnRzPjA8L3NsYXNoOmNvbW1lbnRz
+ PgoJPHhodG1sOmxpbmsgcmVsPSJhbHRlcm5hdGUiIG1lZGlhPSJoYW5kaGVs
+ ZCIgdHlwZT0idGV4dC9odG1sIiBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5q
+ cC9pbmZvcm1hdGlvbi8yMDE0LzA3LzE4X2Fubm91bmNlLyIgLz4KCTwvaXRl
+ bT4KCQk8aXRlbT4KCQk8dGl0bGU+44CMV2ViIE5ETCBBdXRob3JpdGllcyDj
+ gqLjg7PjgrHjg7zjg4jjgI3jgavjgZTljZTlipvjgY/jgaDjgZXjgYTvvIg2
+ 5pyIMjPml6XjgYvjgok55pyIMjbml6Xjgb7jgafvvIk8L3RpdGxlPgoJCTxs
+ aW5rPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDYv
+ MjNfYW5ub3VuY2UtMy88L2xpbms+CgkJPGNvbW1lbnRzPmh0dHA6Ly9pc3Mu
+ bmRsLmdvLmpwL2luZm9ybWF0aW9uLzIwMTQvMDYvMjNfYW5ub3VuY2UtMy8j
+ Y29tbWVudHM8L2NvbW1lbnRzPgoJCTxwdWJEYXRlPk1vbiwgMjMgSnVuIDIw
+ MTQgMDA6MDA6NTAgKzAwMDA8L3B1YkRhdGU+CgkJPGRjOmNyZWF0b3I+PCFb
+ Q0RBVEFb5LqL5YuZ5bGAXV0+PC9kYzpjcmVhdG9yPgoJCQkJPGNhdGVnb3J5
+ PjwhW0NEQVRBW+acquWIhumhnl1dPjwvY2F0ZWdvcnk+CgoJCTxndWlkIGlz
+ UGVybWFMaW5rPSJmYWxzZSI+aHR0cDovL2lzcy5uZGwuZ28uanAvaW5mb3Jt
+ YXRpb24vP3A9OTYwPC9ndWlkPgoJCTxkZXNjcmlwdGlvbj48IVtDREFUQVs2
+ 5pyIMjPml6XvvIjmnIjvvInjgYvjgok55pyIMjbml6XvvIjph5HvvInjgb7j
+ gafjgIEg5Zu956uL5Zu95Lya5Zuz5pu46aSo5YW45oug44OH44O844K/5qSc
+ 57Si44O75o+Q5L6b44K144O844OT44K577yIV2ViIE5ETCBBdXQgWyYjODIz
+ MDtdXV0+PC9kZXNjcmlwdGlvbj4KCQkJCTxjb250ZW50OmVuY29kZWQ+PCFb
+ Q0RBVEFbPHA+CjbmnIgyM+aXpe+8iOaciO+8ieOBi+OCiTnmnIgyNuaXpe+8
+ iOmHke+8ieOBvuOBp+OAgTxhIGhyZWY9Imh0dHA6Ly9pZC5uZGwuZ28uanAv
+ YXV0aC9uZGxhIj4g5Zu956uL5Zu95Lya5Zuz5pu46aSo5YW45oug44OH44O8
+ 44K/5qSc57Si44O75o+Q5L6b44K144O844OT44K577yIV2ViIE5ETCBBdXRo
+ b3JpdGllc++8iTwvYT7jgavplqLjgZnjgos8YSBocmVmPSJodHRwczovL2Vu
+ cTMuY3N2aWV3LmpwL3F1ZXN0aW9uL25kbGh5b2thL05ETEEvTkRMQS5jZ2ki
+ PuOCouODs+OCseODvOODiDwvYT7jgpLlrp/mlr3jgZfjgabjgYTjgb7jgZnj
+ gII8YnIgLz4KV2ViIE5ETCBBdXRob3JpdGllc+OBr+OAgeWbveeri+WbveS8
+ muWbs+abuOmkqOOBjOe2reaMgeeuoeeQhuOBmeOCi+WFuOaLoOODh+ODvOOC
+ v+OCkuS4gOWFg+eahOOBq+aknOe0ouODu+aPkOS+m+OBmeOCi+OCteODvOOD
+ k+OCueOBp+OBmeOAguWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOB
+ rjxhIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2Z1
+ bmN0aW9uLyMxNSI+6Zai6YCj44Kt44O844Ov44O844OJPC9hPuOBq+WIqeeU
+ qOOBmeOCi+OBquOBqeOAgeebuOS6kuOBq+mAo+aQuuOBl+OBpuOBhOOBvuOB
+ meOAgjxiciAvPgo8YnIgLz4KPGEgaHJlZj0iaHR0cHM6Ly9lbnEzLmNzdmll
+ dy5qcC9xdWVzdGlvbi9uZGxoeW9rYS9ORExBL05ETEEuY2dpIj5XZWIgTkRM
+ IEF1dGhvcml0aWVz44Gr6Zai44GZ44KL44Ki44Oz44Kx44O844OIPC9hPjxi
+ ciAvPgo8YnIgLz4KV2ViIE5ETCBBdXRob3JpdGllc+OBruS4gOWxpOOBruaU
+ ueWWhOOBq+W9ueeri+OBpuOCi+OBn+OCgeOAgeOBlOWNlOWKm+OCkuOBiumh
+ mOOBhOOBl+OBvuOBmeOAgjxiciAvPgo8L3A+Cl1dPjwvY29udGVudDplbmNv
+ ZGVkPgoJCQk8d2Z3OmNvbW1lbnRSc3M+aHR0cDovL2lzcy5uZGwuZ28uanAv
+ aW5mb3JtYXRpb24vMjAxNC8wNi8yM19hbm5vdW5jZS0zL2ZlZWQvPC93Znc6
+ Y29tbWVudFJzcz4KCQk8c2xhc2g6Y29tbWVudHM+MDwvc2xhc2g6Y29tbWVu
+ dHM+Cgk8eGh0bWw6bGluayByZWw9ImFsdGVybmF0ZSIgbWVkaWE9ImhhbmRo
+ ZWxkIiB0eXBlPSJ0ZXh0L2h0bWwiIGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdv
+ LmpwL2luZm9ybWF0aW9uLzIwMTQvMDYvMjNfYW5ub3VuY2UtMy8iIC8+Cgk8
+ L2l0ZW0+CgkJPGl0ZW0+CgkJPHRpdGxlPumAo+aQuuOCkuW4jOacm+OBleOC
+ jOOCi+apn+mWouOBruaWueOBq+WQkeOBkeOBn+ODmuODvOOCuOOCkuabtOaW
+ sOOBl+OBvuOBl+OBnyDvvIgyMDE05bm0NuaciDE35pel77yJPC90aXRsZT4K
+ CQk8bGluaz5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0
+ LzA2LzE3X2Fubm91bmNlLTYvPC9saW5rPgoJCTxjb21tZW50cz5odHRwOi8v
+ aXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi8yMDE0LzA2LzE3X2Fubm91bmNl
+ LTYvI2NvbW1lbnRzPC9jb21tZW50cz4KCQk8cHViRGF0ZT5UdWUsIDE3IEp1
+ biAyMDE0IDA0OjAwOjMzICswMDAwPC9wdWJEYXRlPgoJCTxkYzpjcmVhdG9y
+ PjwhW0NEQVRBW+S6i+WLmeWxgF1dPjwvZGM6Y3JlYXRvcj4KCQkJCTxjYXRl
+ Z29yeT48IVtDREFUQVvmnKrliIbpoZ5dXT48L2NhdGVnb3J5PgoKCQk8Z3Vp
+ ZCBpc1Blcm1hTGluaz0iZmFsc2UiPmh0dHA6Ly9pc3MubmRsLmdvLmpwL2lu
+ Zm9ybWF0aW9uLz9wPTk2MTwvZ3VpZD4KCQk8ZGVzY3JpcHRpb24+PCFbQ0RB
+ VEFb5Zu956uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44Gv44CB5qeY44CF
+ 44Gq5aSW6YOo5qmf6Zai44GL44KJ44OH44O844K/44KS5Y+O6ZuG44GX44CB
+ 5o+Q5L6b44GX44Gm44GE44G+44GZ44CCIOOBk+OBruW6puOAgeWbveeri+Wb
+ veS8muWbs+abuOmkqOOCteODvOODgeOBqOmAo+aQuiBbJiM4MjMwO11dXT48
+ L2Rlc2NyaXB0aW9uPgoJCQkJPGNvbnRlbnQ6ZW5jb2RlZD48IVtDREFUQVs8
+ cD4K5Zu956uL5Zu95Lya5Zuz5pu46aSo44K144O844OB44Gv44CB5qeY44CF
+ 44Gq5aSW6YOo5qmf6Zai44GL44KJ44OH44O844K/44KS5Y+O6ZuG44GX44CB
+ 5o+Q5L6b44GX44Gm44GE44G+44GZ44CCPGJyIC8+CuOBk+OBruW6puOAgeWb
+ veeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBqOmAo+aQuuOBhOOBn+OB
+ oOOBj+mam+OBq+OBlOa0u+eUqOOBhOOBn+OBoOOBkeOCi+OCueOCreODvOOD
+ nuODleOCoeOCpOODq+OChOmAo+aQuuOBvuOBp+OBruaJi+mghuOBquOBqeOC
+ kuOAgeaWsOOBn+OBq+WFrOmWi+OBl+OBvuOBl+OBn+OAgjxiciAvPgo8dWw+
+ Cgk8bGk+REMtTkRMKFJERinjgIFEQy1OREwoU2ltcGxlKVhNTOOCueOCreOD
+ vOODnjwvbGk+CuWbveeri+WbveS8muWbs+abuOmkqOOCteODvOODgeOBqOOB
+ rumAo+aQuuOBq+WQkeOBkeOBpuOAgeWHuuWKm+OBhOOBn+OBoOOBj1hNTOOB
+ jOODleOCqeODvOODnuODg+ODiOS7leanmOmAmuOCiuOBq+OBquOBo+OBpuOB
+ hOOCi+OBi+OCkuOBlOeiuuiqjeOBhOOBn+OBoOOBkeOCi+OAgURDLU5ETChS
+ REYp44CBREMtTkRMKFNpbXBsZSlYTUzjgrnjgq3jg7zjg57jgpLkvZzmiJDj
+ gZfjgb7jgZfjgZ/jgILjgZTliKnnlKjmlrnms5XjgarjganjgavjgaTjgYTj
+ gabjga/jgIHjgIw8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZv
+ cm1hdGlvbi9yZW5rZWkvIzUiPumAo+aQuuOCkuW4jOacm+OBleOCjOOCi+ap
+ n+mWouOBruaWueOBuO+8njUu5Y+C6ICD6LOH5paZPC9hPuOAjeOCkuOBlOWP
+ gueFp+OBj+OBoOOBleOBhOOAgjxiciAvPgo8YnIgLz4KCTxsaT7lm73nq4vl
+ m73kvJrlm7Pmm7jppKjjgrXjg7zjg4HpgKPmkLrjg57jg4vjg6XjgqLjg6s8
+ L2xpPgrpgKPmkLrplovlp4vjgb7jgafjga7miYvpoIbjgpLjgb7jgajjgoHj
+ gZ/jgIzlm73nq4vlm73kvJrlm7Pmm7jppKjjgrXjg7zjg4HpgKPmkLrjg57j
+ g4vjg6XjgqLjg6vjgI3jgpLkvZzmiJDjgZfjgb7jgZfjgZ/jgILjgIw8YSBo
+ cmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1hdGlvbi9yZW5rZWkv
+ IzUiPumAo+aQuuOCkuW4jOacm+OBleOCjOOCi+apn+mWouOBruaWueOBuO+8
+ njUu5Y+C6ICD6LOH5paZPC9hPuOAjeOBq+aOsui8ieOBl+OBpuOBhOOBvuOB
+ meOAgjxiciAvPgo8YnIgLz4KCTxsaT7lm73nq4vlm73kvJrlm7Pmm7jppKjn
+ t4/lkIjnm67pjLLjg43jg4Pjg4jjg6/jg7zjgq/vvIjjgobjgavjgYvjga3j
+ gaPjgajvvInjg4fjg7zjgr/mj5DkvpvppKjjga7mlrnjgbjlkJHjgZHjgZ/j
+ g5rjg7zjgrjvvIg8YSBocmVmPSJodHRwOi8vaXNzLm5kbC5nby5qcC9pbmZv
+ cm1hdGlvbi9zb21va3UvIj5odHRwOi8vaXNzLm5kbC5nby5qcC9pbmZvcm1h
+ dGlvbi9zb21va3UvPC9hPu+8ieOCkui/veWKoOOBl+OBvuOBl+OBn+OAgjwv
+ bGk+CjxiciAvPgoJPGxpPuODh+ODvOOCv+aPkOS+m+OBq+mWouOBmeOCi+OB
+ lOizquWVj+OCkuOAgeOAjOOCiOOBj+OBguOCi+OBlOizquWVj+OAje+8iDxh
+ IGhyZWY9Imh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZhcS8i
+ Pmh0dHA6Ly9pc3MubmRsLmdvLmpwL2luZm9ybWF0aW9uL2ZhcS88L2E+77yJ
+ 44Gr6L+95Yqg44GX44G+44GX44Gf44CCPC9saT4KPC91bD4KPGJyIC8+CuOB
+ nOOBsuOBlOWIqeeUqOOBj+OBoOOBleOBhOOAgjwvcD4KXV0+PC9jb250ZW50
+ OmVuY29kZWQ+CgkJCTx3Znc6Y29tbWVudFJzcz5odHRwOi8vaXNzLm5kbC5n
+ by5qcC9pbmZvcm1hdGlvbi8yMDE0LzA2LzE3X2Fubm91bmNlLTYvZmVlZC88
+ L3dmdzpjb21tZW50UnNzPgoJCTxzbGFzaDpjb21tZW50cz4wPC9zbGFzaDpj
+ b21tZW50cz4KCTx4aHRtbDpsaW5rIHJlbD0iYWx0ZXJuYXRlIiBtZWRpYT0i
+ aGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDovL2lzcy5u
+ ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNi8xN19hbm5vdW5jZS02LyIg
+ Lz4KCTwvaXRlbT4KCTwvY2hhbm5lbD4KPC9yc3M+Cg==
+ http_version: '1.0'
+ recorded_at: Wed, 01 Oct 2014 07:21:06 GMT
+recorded_with: VCR 2.9.3
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index c471a0a..8af4fbc 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -49,3 +49,10 @@
FactoryGirl.definition_file_paths << "#{::Rails.root}/../../spec/factories"
FactoryGirl.find_definitions
+
+VCR.configure do |c|
+ c.cassette_library_dir = 'spec/cassette_library'
+ c.hook_into :fakeweb
+ c.configure_rspec_metadata!
+ c.allow_http_connections_when_no_cassette = true
+end
From 17654dcb92210c661fb5d6edfa5c58b72def87c2 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Thu, 2 Oct 2014 02:46:56 +0900
Subject: [PATCH 04/14] fixed scope
---
app/models/news_feed.rb | 2 +-
app/models/news_post.rb | 4 +-
enju_news.gemspec | 2 +-
.../NewsFeed/should_get_content.yml | 46 +++++++++---------
...not_get_content_if_the_feed_is_invalid.yml | 38 +++++++--------
.../NewsFeed/should_reload_content.yml | 48 +++++++++----------
spec/dummy/config/boot.rb | 4 +-
spec/spec_helper.rb | 2 +-
8 files changed, 70 insertions(+), 76 deletions(-)
diff --git a/app/models/news_feed.rb b/app/models/news_feed.rb
index 2fc9fd9..9b4d492 100644
--- a/app/models/news_feed.rb
+++ b/app/models/news_feed.rb
@@ -1,6 +1,6 @@
class NewsFeed < ActiveRecord::Base
attr_accessible :title, :url
- default_scope order: "news_feeds.position"
+ default_scope { order("news_feeds.position") }
belongs_to :library_group, validate: true
validates_presence_of :title, :url, :library_group
diff --git a/app/models/news_post.rb b/app/models/news_post.rb
index d0e520b..61d05e9 100644
--- a/app/models/news_post.rb
+++ b/app/models/news_post.rb
@@ -1,7 +1,7 @@
class NewsPost < ActiveRecord::Base
attr_accessible :title, :body
- scope :published, where(draft: false)
- default_scope order('news_posts.start_date DESC')
+ scope :published, -> { where(draft: false) }
+ default_scope { order('news_posts.start_date DESC') }
belongs_to :user
belongs_to :required_role, class_name: 'Role', foreign_key: 'required_role_id', validate: true
diff --git a/enju_news.gemspec b/enju_news.gemspec
index fc5cb3e..400b597 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
s.add_development_dependency "rspec-rails", "~> 3.0.2"
s.add_development_dependency "factory_girl_rails"
s.add_development_dependency "vcr"
- s.add_development_dependency "fakeweb"
+ s.add_development_dependency "webmock"
s.add_development_dependency "simplecov"
s.add_development_dependency "annotate"
s.add_development_dependency "sunspot-rails-tester"
diff --git a/spec/cassette_library/NewsFeed/should_get_content.yml b/spec/cassette_library/NewsFeed/should_get_content.yml
index 5f65b8c..ceccff6 100644
--- a/spec/cassette_library/NewsFeed/should_get_content.yml
+++ b/spec/cassette_library/NewsFeed/should_get_content.yml
@@ -7,48 +7,46 @@ http_interactions:
encoding: US-ASCII
string: ''
headers:
- user-agent:
+ User-Agent:
- Faraday v0.9.0
- accept-encoding:
+ Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- accept:
+ Accept:
- "*/*"
response:
status:
code: 200
message: OK
headers:
- date:
- - Wed, 01 Oct 2014 07:21:03 GMT
- server:
+ Date:
+ - Wed, 01 Oct 2014 17:45:49 GMT
+ Server:
- Apache
- expires:
+ Expires:
- Thu, 19 Nov 1981 08:52:00 GMT
- cache-control:
+ Cache-Control:
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
- pragma:
+ Pragma:
- no-cache
- x-pingback:
+ X-Pingback:
- http://iss.ndl.go.jp/information/xmlrpc.php
- last-modified:
+ Last-Modified:
- Tue, 30 Sep 2014 10:39:17 GMT
- etag:
+ Etag:
- '"a7c11f1aac82a10a604c4cdf2924af0b"'
- content-type:
+ Content-Type:
- text/xml; charset=UTF-8
- set-cookie:
- - PHPSESSID=3kfppbttfsd087lqong8p8kti7; path=/
- - serverid=1101; path=/
+ Set-Cookie:
+ - PHPSESSID=78gu6re7j275o3slgd5rh6scr7; path=/
- ROUTEID=.wp02; path=/
- vary:
+ - serverid=1101; path=/
+ Vary:
- Accept-Encoding,User-Agent
- content-encoding:
- - gzip
- x-content-type-options:
+ X-Content-Type-Options:
- nosniff
- x-frame-options:
+ X-Frame-Options:
- SAMEORIGIN
- connection:
+ Connection:
- close
body:
encoding: ASCII-8BIT
@@ -541,6 +539,6 @@ http_interactions:
aGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDovL2lzcy5u
ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNi8xN19hbm5vdW5jZS02LyIg
Lz4KCTwvaXRlbT4KCTwvY2hhbm5lbD4KPC9yc3M+Cg==
- http_version: '1.0'
- recorded_at: Wed, 01 Oct 2014 07:21:05 GMT
+ http_version:
+ recorded_at: Wed, 01 Oct 2014 17:45:55 GMT
recorded_with: VCR 2.9.3
diff --git a/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml b/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
index e4000aa..c54f1a4 100644
--- a/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
+++ b/spec/cassette_library/NewsFeed/should_not_get_content_if_the_feed_is_invalid.yml
@@ -7,41 +7,39 @@ http_interactions:
encoding: US-ASCII
string: ''
headers:
- user-agent:
+ User-Agent:
- Faraday v0.9.0
- accept-encoding:
+ Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- accept:
+ Accept:
- "*/*"
response:
status:
code: 404
message: Not Found
headers:
- accept-ranges:
+ Accept-Ranges:
- bytes
- cache-control:
+ Cache-Control:
- max-age=604800
- content-type:
+ Content-Type:
- text/html
- date:
- - Wed, 01 Oct 2014 07:21:05 GMT
- etag:
+ Date:
+ - Wed, 01 Oct 2014 17:45:51 GMT
+ Etag:
- '"359670651"'
- expires:
- - Wed, 08 Oct 2014 07:21:05 GMT
- last-modified:
+ Expires:
+ - Wed, 08 Oct 2014 17:45:51 GMT
+ Last-Modified:
- Fri, 09 Aug 2013 23:54:35 GMT
- server:
+ Server:
- ECS (lax/4514)
- x-cache:
+ X-Cache:
- HIT
- x-ec-custom-error:
+ X-Ec-Custom-Error:
- '1'
- content-length:
+ Content-Length:
- '1270'
- connection:
- - close
body:
encoding: UTF-8
string: "\n\n\n Example Domain\n\n
@@ -61,6 +59,6 @@ http_interactions:
documents. You may use this\n domain in examples without prior coordination
or asking for permission.
\n More
information...
\n\n\n\n"
- http_version: '1.1'
- recorded_at: Wed, 01 Oct 2014 07:21:05 GMT
+ http_version:
+ recorded_at: Wed, 01 Oct 2014 17:45:56 GMT
recorded_with: VCR 2.9.3
diff --git a/spec/cassette_library/NewsFeed/should_reload_content.yml b/spec/cassette_library/NewsFeed/should_reload_content.yml
index 4f93d0a..21ac44d 100644
--- a/spec/cassette_library/NewsFeed/should_reload_content.yml
+++ b/spec/cassette_library/NewsFeed/should_reload_content.yml
@@ -7,48 +7,46 @@ http_interactions:
encoding: US-ASCII
string: ''
headers:
- user-agent:
+ User-Agent:
- Faraday v0.9.0
- accept-encoding:
+ Accept-Encoding:
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- accept:
+ Accept:
- "*/*"
response:
status:
code: 200
message: OK
headers:
- date:
- - Wed, 01 Oct 2014 07:21:05 GMT
- server:
+ Date:
+ - Wed, 01 Oct 2014 17:45:51 GMT
+ Server:
- Apache
- expires:
+ Expires:
- Thu, 19 Nov 1981 08:52:00 GMT
- cache-control:
+ Cache-Control:
- no-store, no-cache, must-revalidate, post-check=0, pre-check=0
- pragma:
+ Pragma:
- no-cache
- x-pingback:
+ X-Pingback:
- http://iss.ndl.go.jp/information/xmlrpc.php
- last-modified:
+ Last-Modified:
- Tue, 30 Sep 2014 10:39:17 GMT
- etag:
+ Etag:
- '"a7c11f1aac82a10a604c4cdf2924af0b"'
- content-type:
+ Content-Type:
- text/xml; charset=UTF-8
- set-cookie:
- - PHPSESSID=b6q4jl7dl4hj724ss96e0rvnc7; path=/
- - serverid=1101; path=/
- - ROUTEID=.wp02; path=/
- vary:
+ Set-Cookie:
+ - PHPSESSID=qn8f3ahq5cph3pt5fj7m1b0lq2; path=/
+ - ROUTEID=.wp01; path=/
+ - serverid=1102; path=/
+ Vary:
- Accept-Encoding,User-Agent
- content-encoding:
- - gzip
- x-content-type-options:
+ X-Content-Type-Options:
- nosniff
- x-frame-options:
+ X-Frame-Options:
- SAMEORIGIN
- connection:
+ Connection:
- close
body:
encoding: ASCII-8BIT
@@ -541,6 +539,6 @@ http_interactions:
aGFuZGhlbGQiIHR5cGU9InRleHQvaHRtbCIgaHJlZj0iaHR0cDovL2lzcy5u
ZGwuZ28uanAvaW5mb3JtYXRpb24vMjAxNC8wNi8xN19hbm5vdW5jZS02LyIg
Lz4KCTwvaXRlbT4KCTwvY2hhbm5lbD4KPC9yc3M+Cg==
- http_version: '1.0'
- recorded_at: Wed, 01 Oct 2014 07:21:06 GMT
+ http_version:
+ recorded_at: Wed, 01 Oct 2014 17:45:57 GMT
recorded_with: VCR 2.9.3
diff --git a/spec/dummy/config/boot.rb b/spec/dummy/config/boot.rb
index eba0681..17aec12 100644
--- a/spec/dummy/config/boot.rb
+++ b/spec/dummy/config/boot.rb
@@ -1,5 +1,5 @@
require 'rubygems'
-gemfile = File.expand_path('../../../../Gemfile', __FILE__)
+gemfile = ENV['BUNDLE_GEMFILE'] || File.expand_path('../../../../Gemfile', __FILE__)
if File.exist?(gemfile)
ENV['BUNDLE_GEMFILE'] = gemfile
@@ -7,4 +7,4 @@
Bundler.setup
end
-$:.unshift File.expand_path('../../../../lib', __FILE__)
\ No newline at end of file
+$:.unshift File.expand_path('../../../../lib', __FILE__)
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 8af4fbc..389eabb 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -52,7 +52,7 @@
VCR.configure do |c|
c.cassette_library_dir = 'spec/cassette_library'
- c.hook_into :fakeweb
+ c.hook_into :webmock
c.configure_rspec_metadata!
c.allow_http_connections_when_no_cassette = true
end
From feb61c0d57599c8f37f969d9095a7817e039097b Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Fri, 3 Oct 2014 21:23:22 +0900
Subject: [PATCH 05/14] bumped version
---
enju_news.gemspec | 6 +++---
gemfiles/rails4_1.gemfile | 2 --
lib/enju_news/version.rb | 2 +-
3 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/enju_news.gemspec b/enju_news.gemspec
index 400b597..2de3f39 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -14,18 +14,18 @@ Gem::Specification.new do |s|
s.description = "News article management for Next-L Enju"
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.rdoc"]
- s.test_files = Dir["spec/**/*"] - Dir["spec/dummy/log/*"]
+ s.test_files = Dir["spec/**/*"] - Dir["spec/dummy/log/*"] - Dir["spec/dummy/solr/{data,pids,default,development,test}/*"] - Dir["spec/dummy/tmp/*"]
s.add_dependency "enju_seed", "~> 0.1.1.pre11"
s.add_dependency "faraday"
s.add_development_dependency "sqlite3"
- s.add_development_dependency "rspec-rails", "~> 3.0.2"
+ s.add_development_dependency "rspec-rails", "~> 3.1"
s.add_development_dependency "factory_girl_rails"
s.add_development_dependency "vcr"
s.add_development_dependency "webmock"
s.add_development_dependency "simplecov"
s.add_development_dependency "annotate"
s.add_development_dependency "sunspot-rails-tester"
- s.add_development_dependency "enju_leaf", "~> 1.1.0.rc14"
+ s.add_development_dependency "enju_leaf", "~> 1.1.0.rc15"
end
diff --git a/gemfiles/rails4_1.gemfile b/gemfiles/rails4_1.gemfile
index 141aa0d..ccfff45 100644
--- a/gemfiles/rails4_1.gemfile
+++ b/gemfiles/rails4_1.gemfile
@@ -3,7 +3,5 @@ source "https://rubygems.org"
gem "rails", "~> 4.1.6"
gem "jquery-rails"
gem "protected_attributes"
-gem "enju_leaf", github: "next-l/enju_leaf", branch: '1.1'
-gem "enju_library", github: "next-l/enju_library", branch: '1.1'
gemspec path: "../"
diff --git a/lib/enju_news/version.rb b/lib/enju_news/version.rb
index 622672e..88ee608 100644
--- a/lib/enju_news/version.rb
+++ b/lib/enju_news/version.rb
@@ -1,3 +1,3 @@
module EnjuNews
- VERSION = "0.1.0.pre7"
+ VERSION = "0.1.0.pre8"
end
From 019ac49b06911893b9f7dfb0d7e8afb14a4f78f3 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Sun, 19 Oct 2014 18:50:03 +0900
Subject: [PATCH 06/14] updated .travis.yml
---
.travis.yml | 14 +++++++++++++-
enju_news.gemspec | 2 ++
spec/fixtures/users.yml | 2 +-
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 0020748..4fa46ec 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,11 +1,23 @@
+# http://matthew.mceachen.us/blog/how-to-test-your-rails-application-with-travis-ci-on-different-databases-engines-1220.html
language: ruby
rvm:
- 1.9.3
- 2.0.0
- 2.1.3
-before_script: "bundle exec rake db:migrate"
+before_script:
+ - mysql -e 'create database enju_test'
+ - psql -c 'create database enju_test;' -U postgres
+ - "bundle exec rake db:migrate"
services:
- redis-server
gemfile:
- gemfiles/rails3_2.gemfile
- gemfiles/rails4_1.gemfile
+env:
+ - DB=sqlite
+ - DB=mysql
+ - DB=postgresql
+notifications:
+ hipchat:
+ rooms:
+ secure: myVd4EAIQcN7fjjO1h0SViSfqhFJyq6UUfif0hzIJ7yggBJViQp8PTpEbHFi699wS1cox9b7Kzp/1P9u9aaV05m1Dur1hb3+8gycDYjZa5FNEnAwmoMCKbXWVo3ze23CbpWLSyAcfRGF3Xfk0TMEDHDb2Izpv3GcVXPdrHKjQqg=
diff --git a/enju_news.gemspec b/enju_news.gemspec
index 2de3f39..0a1c0a8 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -20,6 +20,8 @@ Gem::Specification.new do |s|
s.add_dependency "faraday"
s.add_development_dependency "sqlite3"
+ s.add_development_dependency "mysql"
+ s.add_development_dependency "pg"
s.add_development_dependency "rspec-rails", "~> 3.1"
s.add_development_dependency "factory_girl_rails"
s.add_development_dependency "vcr"
diff --git a/spec/fixtures/users.yml b/spec/fixtures/users.yml
index c9efc81..7f6c3a4 100644
--- a/spec/fixtures/users.yml
+++ b/spec/fixtures/users.yml
@@ -48,4 +48,4 @@ user4:
username: user4
email: user4@kamata.lib.teu.ac.jp
created_at: 2007-11-19 16:58:34.637413 +09:00
- locked_at: <%= 1.day.ago %>
+ locked_at: <%= 1.day.ago.to_s(:db) %>
From c45769b621e7ac5e183f73943077b9f4c58a0a58 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Sun, 19 Oct 2014 22:37:47 +0900
Subject: [PATCH 07/14] updated gemspec
---
enju_news.gemspec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/enju_news.gemspec b/enju_news.gemspec
index 0a1c0a8..b4672e2 100644
--- a/enju_news.gemspec
+++ b/enju_news.gemspec
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
s.add_dependency "faraday"
s.add_development_dependency "sqlite3"
- s.add_development_dependency "mysql"
+ s.add_development_dependency "mysql2"
s.add_development_dependency "pg"
s.add_development_dependency "rspec-rails", "~> 3.1"
s.add_development_dependency "factory_girl_rails"
From f7cfc67972b47a255e65437598417acdbf46e577 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Mon, 20 Oct 2014 20:48:53 +0900
Subject: [PATCH 08/14] updated .travis.yml
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 4fa46ec..2462ee7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,4 +20,4 @@ env:
notifications:
hipchat:
rooms:
- secure: myVd4EAIQcN7fjjO1h0SViSfqhFJyq6UUfif0hzIJ7yggBJViQp8PTpEbHFi699wS1cox9b7Kzp/1P9u9aaV05m1Dur1hb3+8gycDYjZa5FNEnAwmoMCKbXWVo3ze23CbpWLSyAcfRGF3Xfk0TMEDHDb2Izpv3GcVXPdrHKjQqg=
+ secure: GU+wxZhxxmEB2MOWO32LtRTVOhf3xmRoiBvQLpNcXcnumgVvtwCbtBjochCSQ5Z4hqD4bXal46ci6bLN8UqzLE0FZHF2UJ2NbyaiVLg/DXz9r89XMhxxvarV5Tt3YILoZE5EqS7O9rHrCUCNWB0qVRDFrD2EtoxpoD6Sd56MIAM=
From 63b634c49cd68ad5051ef592b61311ca5d364805 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Mon, 20 Oct 2014 22:17:26 +0900
Subject: [PATCH 09/14] updated .travis.yml
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 2462ee7..64644a8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,4 +20,4 @@ env:
notifications:
hipchat:
rooms:
- secure: GU+wxZhxxmEB2MOWO32LtRTVOhf3xmRoiBvQLpNcXcnumgVvtwCbtBjochCSQ5Z4hqD4bXal46ci6bLN8UqzLE0FZHF2UJ2NbyaiVLg/DXz9r89XMhxxvarV5Tt3YILoZE5EqS7O9rHrCUCNWB0qVRDFrD2EtoxpoD6Sd56MIAM=
+ secure: KF+KWjvmPrcScVItfLRqm8LeQqele5nxnHkXCXbo5pZ7zzah3ar0M3yA4BNUweqdmXkLvitM+muaktTlj6dPGogCaPG/Qab5gHjSFCKZ7A8F4QxccTArFdb+yeS+Svlavzqhbi4zKEn3jSLbJw/RWKKymxJ0luRndANEiSGPUto=
From b291b0e43f870f12a8e037aa0e277bb330d0ccb7 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Mon, 20 Oct 2014 23:52:15 +0900
Subject: [PATCH 10/14] updated .travis.yml
---
.travis.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 64644a8..1c48db0 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,4 +20,4 @@ env:
notifications:
hipchat:
rooms:
- secure: KF+KWjvmPrcScVItfLRqm8LeQqele5nxnHkXCXbo5pZ7zzah3ar0M3yA4BNUweqdmXkLvitM+muaktTlj6dPGogCaPG/Qab5gHjSFCKZ7A8F4QxccTArFdb+yeS+Svlavzqhbi4zKEn3jSLbJw/RWKKymxJ0luRndANEiSGPUto=
+ secure: J3SZQxwoYVA2CwAybJwMz9CD4JuMgABqV2zVru9eFhZhOmUMsbCtwmAO+kmkfIKMnCRBW0Yn31M5IB4qyei8s/qAVQX6kV68lSpTWJ3g9TTtPkPWq68S/LbMG7OLtYiQdAeEoWUPuqJRwAxdJ+SWcebnY+G44YHHMYmehCVE9/g=
From f12a06697c2bf4c758ada612a3431dd046f125f8 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Tue, 21 Oct 2014 00:26:57 +0900
Subject: [PATCH 11/14] updated README
---
README.rdoc | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/README.rdoc b/README.rdoc
index 11f262f..992296a 100644
--- a/README.rdoc
+++ b/README.rdoc
@@ -1,3 +1,10 @@
= EnjuNews
-This project rocks and uses MIT-LICENSE.
\ No newline at end of file
+{
}[https://travis-ci.org/next-l/enju_news]
+{
}[https://hakiri.io/github/next-l/enju_news/1.1]
+
+This project rocks and uses MIT-LICENSE.
+
+== 製作者・貢献者 (Authors and contributors)
+* {TANABE, Kosuke}[https://github.com/nabeta] ({@nabeta}[https://twitter.com/nabeta])
+* {Project Next-L}[http://www.next-l.jp] ({@ProjectNextL}[https://twitter.com/ProjectNextL])
From 5e58f643462178d92436c9693d01f1db7e2a524e Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Tue, 21 Oct 2014 05:06:35 +0900
Subject: [PATCH 12/14] updated gemfiles
---
.travis.yml | 2 +-
gemfiles/rails3_2.gemfile | 1 +
gemfiles/rails4_1.gemfile | 1 +
spec/spec_helper.rb | 2 ++
4 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/.travis.yml b/.travis.yml
index 1c48db0..957c992 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,4 +20,4 @@ env:
notifications:
hipchat:
rooms:
- secure: J3SZQxwoYVA2CwAybJwMz9CD4JuMgABqV2zVru9eFhZhOmUMsbCtwmAO+kmkfIKMnCRBW0Yn31M5IB4qyei8s/qAVQX6kV68lSpTWJ3g9TTtPkPWq68S/LbMG7OLtYiQdAeEoWUPuqJRwAxdJ+SWcebnY+G44YHHMYmehCVE9/g=
+ secure: Ghx4+Ip0t8QJthUGDTasFK8L+CdkcuNoq2kCzZsXe90vQ6LoRR3h8/+9GQ9DUM5WdyTk54ufOJi7rsX9vxY6LXz0wZnr1aVdh7TUShb/Kx8KYyhfLC5b8t+QrANEnlDvRaJEtWVaURICIfd1l2CEfjAS4JoFbA6NCP+2nhnadDE=
diff --git a/gemfiles/rails3_2.gemfile b/gemfiles/rails3_2.gemfile
index 2e6fb56..504fed8 100644
--- a/gemfiles/rails3_2.gemfile
+++ b/gemfiles/rails3_2.gemfile
@@ -2,5 +2,6 @@ source "https://rubygems.org"
gem "rails", "~> 3.2.19"
gem "jquery-rails"
+gem 'coveralls', require: false
gemspec path: "../"
diff --git a/gemfiles/rails4_1.gemfile b/gemfiles/rails4_1.gemfile
index ccfff45..ec7bf0b 100644
--- a/gemfiles/rails4_1.gemfile
+++ b/gemfiles/rails4_1.gemfile
@@ -3,5 +3,6 @@ source "https://rubygems.org"
gem "rails", "~> 4.1.6"
gem "jquery-rails"
gem "protected_attributes"
+gem 'coveralls', require: false
gemspec path: "../"
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 389eabb..c41e401 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,5 +1,7 @@
require 'simplecov'
+require 'coveralls'
SimpleCov.start 'rails'
+Coveralls.wear!
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
From 1734994592fb6af4d4826f1bc6f046d0a8bb2804 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Tue, 21 Oct 2014 17:55:28 +0900
Subject: [PATCH 13/14] updated .travis.yml
---
.travis.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.travis.yml b/.travis.yml
index 957c992..7513073 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,6 +17,12 @@ env:
- DB=sqlite
- DB=mysql
- DB=postgresql
+matrix:
+ exclude:
+ - rvm: 1.9.3
+ gemfile: gemfiles/rails4_1.gemfile
+ - rvm: 2.1.3
+ gemfile: gemfiles/rails3_2.gemfile
notifications:
hipchat:
rooms:
From fdc358343e64ad9584a7aea30526600714816b20 Mon Sep 17 00:00:00 2001
From: Kosuke Tanabe
Date: Fri, 24 Oct 2014 00:45:12 +0900
Subject: [PATCH 14/14] updated .travis.yml
---
.travis.yml | 38 ++++++++++++++++++--------------------
1 file changed, 18 insertions(+), 20 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 7513073..2496dd7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,29 +1,27 @@
-# http://matthew.mceachen.us/blog/how-to-test-your-rails-application-with-travis-ci-on-different-databases-engines-1220.html
language: ruby
rvm:
- - 1.9.3
- - 2.0.0
- - 2.1.3
+- 1.9.3
+- 2.0.0
+- 2.1.3
before_script:
- - mysql -e 'create database enju_test'
- - psql -c 'create database enju_test;' -U postgres
- - "bundle exec rake db:migrate"
+- mysql -e 'create database enju_test'
+- psql -c 'create database enju_test;' -U postgres
+- bundle exec rake db:migrate
services:
- - redis-server
+- redis-server
gemfile:
- - gemfiles/rails3_2.gemfile
- - gemfiles/rails4_1.gemfile
+- gemfiles/rails3_2.gemfile
+- gemfiles/rails4_1.gemfile
env:
- - DB=sqlite
- - DB=mysql
- - DB=postgresql
+- DB=sqlite
+- DB=mysql
+- DB=postgresql
matrix:
exclude:
- - rvm: 1.9.3
- gemfile: gemfiles/rails4_1.gemfile
- - rvm: 2.1.3
- gemfile: gemfiles/rails3_2.gemfile
+ - rvm: 1.9.3
+ gemfile: gemfiles/rails4_1.gemfile
+ - rvm: 2.1.3
+ gemfile: gemfiles/rails3_2.gemfile
notifications:
- hipchat:
- rooms:
- secure: Ghx4+Ip0t8QJthUGDTasFK8L+CdkcuNoq2kCzZsXe90vQ6LoRR3h8/+9GQ9DUM5WdyTk54ufOJi7rsX9vxY6LXz0wZnr1aVdh7TUShb/Kx8KYyhfLC5b8t+QrANEnlDvRaJEtWVaURICIfd1l2CEfjAS4JoFbA6NCP+2nhnadDE=
+ slack:
+ secure: aVw4odRuPfoUjOXbmYfwhYrUuG0BPxmPDmpz6RmUoUKUtUDPWeCw60Xxv+AvGxNuc2usZ32eHW/tKXsQukx5SADVYkSgiAquo4/PErxAdt+P+ilEUT0fzJr8N11mtY0SEOK1iXVp5ucjswsjUYPyQwcddL/hBU2tcSU73yrLv2E=