relaton 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b1872ecb2665f86758a05dd822d450d6daf37cf7865f0faf17878a494e1e17c
4
- data.tar.gz: 464054cbb8b6d3475ff016ce8748bc88105cced709187751421cba7124943d0e
3
+ metadata.gz: 4d5e8cd75aea92f9cfaf442baf2d33acdae1a76b6f183b7b6f4ad5a8651a13cf
4
+ data.tar.gz: 5bccff1ff0819922fd87e855145daf9b417cd96e9886166bbabb102094ca2a78
5
5
  SHA512:
6
- metadata.gz: 62ed5b9d6a9002d748e9069651b7dda734d8e61b7f09aff340fabf563f4daef4c60b61131634dcad8f3d4faa174b64b873e3cb3e074279013807e8c89168eede
7
- data.tar.gz: a389d31e90fd4a6b238a554998f9936e34324abfa41c21669212d3a20800cb538e37116a7b6d731a14a1920c46fdd366579aa2df736fbb65a52da30c0a644e56
6
+ metadata.gz: 8cdbe7b6d94646f6b88cb5feff8fee9164c442e802e0a490cefe15f9a5b3b9e3c039abece57b7efbc69c5e5d7b956f45ba4f4c5425e76bebf3e9456a0f4cac69
7
+ data.tar.gz: 4ac2ffe3d3ae753bbb14694363047ab76104e001a4db44760203aa3e9d8228d93d17fc2c898d64c75cefe08ece095e64f3935b993569c07beeb107956d1330a3
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- relaton (0.2.6)
4
+ relaton (0.3.0)
5
5
  algoliasearch
6
6
  gbbib (~> 0.4.0)
7
7
  iecbib (~> 0.2.0)
8
8
  ietfbib (~> 0.4.2)
9
- iso-bib-item (~> 0.4.1)
9
+ iso-bib-item (~> 0.4.2)
10
10
  isobib (~> 0.4.0)
11
11
 
12
12
  GEM
@@ -21,6 +21,8 @@ GEM
21
21
  byebug (10.0.2)
22
22
  cnccs (0.1.3)
23
23
  coderay (1.1.2)
24
+ crack (0.4.3)
25
+ safe_yaml (~> 1.0.0)
24
26
  diff-lcs (1.3)
25
27
  docile (1.3.1)
26
28
  equivalent-xml (0.6.0)
@@ -28,10 +30,10 @@ GEM
28
30
  ffi (1.9.25)
29
31
  formatador (0.2.5)
30
32
  gb-agencies (0.0.3)
31
- gbbib (0.4.0)
33
+ gbbib (0.4.1)
32
34
  cnccs (~> 0.1.1)
33
35
  gb-agencies (~> 0.0.1)
34
- iso-bib-item (~> 0.4.1)
36
+ iso-bib-item (~> 0.4.2)
35
37
  guard (2.14.2)
36
38
  formatador (>= 0.2.4)
37
39
  listen (>= 2.7, < 4.0)
@@ -46,20 +48,21 @@ GEM
46
48
  guard (~> 2.1)
47
49
  guard-compat (~> 1.1)
48
50
  rspec (>= 2.99.0, < 4.0)
51
+ hashdiff (0.3.7)
49
52
  httpclient (2.8.3)
50
- iecbib (0.2.0)
53
+ iecbib (0.2.1)
51
54
  addressable
52
- iso-bib-item (~> 0.4.0)
53
- ietfbib (0.4.2)
54
- iso-bib-item (~> 0.4.1)
55
- iso-bib-item (0.4.1)
55
+ iso-bib-item (~> 0.4.2)
56
+ ietfbib (0.4.3)
57
+ iso-bib-item (~> 0.4.2)
58
+ iso-bib-item (0.4.2)
56
59
  isoics (~> 0.1.6)
57
60
  nokogiri (~> 1.8.4)
58
61
  ruby_deep_clone (~> 0.8.0)
59
- isobib (0.4.0)
62
+ isobib (0.4.1)
60
63
  algoliasearch
61
- iecbib (~> 0.2.0)
62
- iso-bib-item (~> 0.4.0)
64
+ iecbib (~> 0.2.1)
65
+ iso-bib-item (~> 0.4.2)
63
66
  isoics (0.1.7)
64
67
  jaro_winkler (1.5.1)
65
68
  json (2.1.0)
@@ -105,17 +108,18 @@ GEM
105
108
  diff-lcs (>= 1.2.0, < 2.0)
106
109
  rspec-support (~> 3.8.0)
107
110
  rspec-support (3.8.0)
108
- rubocop (0.59.2)
111
+ rubocop (0.60.0)
109
112
  jaro_winkler (~> 1.5.1)
110
113
  parallel (~> 1.10)
111
114
  parser (>= 2.5, != 2.5.1.1)
112
115
  powerpack (~> 0.1)
113
116
  rainbow (>= 2.2.2, < 4.0)
114
117
  ruby-progressbar (~> 1.7)
115
- unicode-display_width (~> 1.0, >= 1.0.1)
118
+ unicode-display_width (~> 1.4.0)
116
119
  ruby-progressbar (1.10.0)
117
120
  ruby_deep_clone (0.8.0)
118
121
  ruby_dep (1.5.0)
122
+ safe_yaml (1.0.4)
119
123
  shellany (0.0.1)
120
124
  simplecov (0.16.1)
121
125
  docile (~> 1.1)
@@ -125,6 +129,11 @@ GEM
125
129
  thor (0.20.0)
126
130
  timecop (0.9.1)
127
131
  unicode-display_width (1.4.0)
132
+ vcr (4.0.0)
133
+ webmock (3.4.2)
134
+ addressable (>= 2.3.6)
135
+ crack (>= 0.3.2)
136
+ hashdiff
128
137
 
129
138
  PLATFORMS
130
139
  ruby
@@ -142,6 +151,8 @@ DEPENDENCIES
142
151
  rubocop (~> 0.50)
143
152
  simplecov (~> 0.15)
144
153
  timecop (~> 0.9)
154
+ vcr
155
+ webmock
145
156
 
146
157
  BUNDLED WITH
147
158
  1.16.6
@@ -53,6 +53,13 @@ module Relaton
53
53
  check_bibliocache(code, year, opts, std)
54
54
  end
55
55
 
56
+ def fetched(key)
57
+ return @local_db.fetched key if @local_db
58
+ return @db.fetched key if @db
59
+
60
+ ""
61
+ end
62
+
56
63
  # The document identifier class corresponding to the given code
57
64
  def docid_type(code)
58
65
  stdclass = standard_class(code) or return [nil, code]
@@ -71,9 +78,8 @@ module Relaton
71
78
  end
72
79
 
73
80
  # @param key [String]
74
- # @param value [Hash]
75
- # @option value [Date] "fetched"
76
- # @option value [IsoBibItem::IsoBibliographicItem] "bib"
81
+ # @param value [String] Bibitem xml serialisation.
82
+ # @option value [String] Bibitem xml serialisation.
77
83
  def save_entry(key, value)
78
84
  @db.nil? || (@db[key] = value)
79
85
  @local_db.nil? || (@local_db[key] = value)
@@ -164,6 +170,7 @@ module Relaton
164
170
  # @return [Hash]
165
171
  def new_bib_entry(code, year, opts, stdclass)
166
172
  bib = @registry.processors[stdclass].get(code, year, opts)
173
+ bib = bib.to_xml if bib.respond_to? :to_xml
167
174
  bib = "not_found #{Date.today}" if bib.nil? || bib.empty?
168
175
  bib
169
176
  end
@@ -7,8 +7,8 @@ module Relaton
7
7
  def initialize(dir)
8
8
  @dir = dir
9
9
  Dir.mkdir @dir unless Dir.exist? @dir
10
- fiele_version = "#{@dir}/version"
11
- File.write fiele_version, VERSION unless File.exist? fiele_version
10
+ file_version = "#{@dir}/version"
11
+ File.write file_version, VERSION, encoding: "utf-8" unless File.exist? file_version
12
12
  end
13
13
 
14
14
  # Save item
@@ -18,7 +18,7 @@ module Relaton
18
18
  return if value.nil?
19
19
  prefix_dir = "#{@dir}/#{prefix(key)}"
20
20
  Dir.mkdir prefix_dir unless Dir.exist? prefix_dir
21
- File.write filename(key), value
21
+ File.write filename(key), value, encoding: "utf-8"
22
22
  end
23
23
 
24
24
  # Read item
@@ -28,7 +28,7 @@ module Relaton
28
28
  file = filename key
29
29
  return unless File.exist? file
30
30
 
31
- File.read(file)
31
+ File.read(file, encoding: "utf-8")
32
32
  end
33
33
 
34
34
  # Return fetched date
@@ -41,7 +41,7 @@ module Relaton
41
41
  value.match(/\d{4}-\d{2}-\d{2}/).to_s
42
42
  else
43
43
  doc = Nokogiri::XML value
44
- doc.at('/bibitem/fetched').text
44
+ doc.at('/bibitem/fetched')&.text
45
45
  end
46
46
  end
47
47
 
@@ -49,7 +49,7 @@ module Relaton
49
49
  # @return [Array<Hash>]
50
50
  def all
51
51
  Dir.glob("testcache/**/*.xml").sort.map do |f|
52
- File.read(f)
52
+ File.read(f, encoding: "utf-8")
53
53
  end
54
54
  end
55
55
 
@@ -63,14 +63,14 @@ module Relaton
63
63
  # Check if version of the DB match to the gem version.
64
64
  # @return [TrueClass, FalseClass]
65
65
  def check_version?
66
- v = File.read @dir + "/version"
66
+ v = File.read @dir + "/version", encoding: "utf-8"
67
67
  v == VERSION
68
68
  end
69
69
 
70
70
  # Set version of the DB to the gem version.
71
71
  # @return [Relaton::DbCache]
72
72
  def set_version
73
- File.write @dir + "/version", VERSION
73
+ File.write @dir + "/version", VERSION, encoding: "utf-8"
74
74
  self
75
75
  end
76
76
 
@@ -1,3 +1,3 @@
1
1
  module Relaton
2
- VERSION = "0.2.6".freeze
2
+ VERSION = "0.3.0".freeze
3
3
  end
@@ -33,7 +33,7 @@ model.
33
33
  spec.add_dependency "isobib", "~> 0.4.0"
34
34
  spec.add_dependency "ietfbib", "~> 0.4.2"
35
35
  spec.add_dependency "iecbib", "~> 0.2.0"
36
- spec.add_dependency 'iso-bib-item', '~> 0.4.1'
36
+ spec.add_dependency 'iso-bib-item', '~> 0.4.2'
37
37
 
38
38
  spec.add_development_dependency "bundler", "~> 1.15"
39
39
  spec.add_development_dependency "byebug", "~> 10.0"
@@ -46,4 +46,6 @@ model.
46
46
  spec.add_development_dependency "rubocop", "~> 0.50"
47
47
  spec.add_development_dependency "simplecov", "~> 0.15"
48
48
  spec.add_development_dependency "timecop", "~> 0.9"
49
+ spec.add_development_dependency "vcr"
50
+ spec.add_development_dependency "webmock"
49
51
  end
@@ -14,39 +14,48 @@ RSpec.describe Relaton::Db do
14
14
  end
15
15
 
16
16
  it "gets an ISO reference and caches it" do
17
- stub_bib Isobib::IsoBibliography
18
- bib = @db.fetch("ISO 19115-1", nil, {})
19
- expect(bib).to be_instance_of IsoBibItem::IsoBibliographicItem
20
- expect(bib.to_xml).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
21
- expect(File.exist?("testcache")).to be true
22
- expect(File.exist?("testcache2")).to be true
23
- testcache = Relaton::DbCache.new "testcache"
24
- expect(testcache["ISO(ISO 19115-1)"]).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
25
- testcache = Relaton::DbCache.new "testcache2"
26
- expect(testcache["ISO(ISO 19115-1)"]).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
17
+ # stub_bib Isobib::IsoBibliography
18
+ VCR.use_cassette "iso_19115_1" do
19
+ bib = @db.fetch("ISO 19115-1", nil, {})
20
+ expect(bib).to be_instance_of IsoBibItem::IsoBibliographicItem
21
+ expect(bib.to_xml).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
22
+ expect(File.exist?("testcache")).to be true
23
+ expect(File.exist?("testcache2")).to be true
24
+ testcache = Relaton::DbCache.new "testcache"
25
+ expect(testcache["ISO(ISO 19115-1)"]).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
26
+ testcache = Relaton::DbCache.new "testcache2"
27
+ expect(testcache["ISO(ISO 19115-1)"]).to include "<bibitem type=\"international-standard\" id=\"ISO19115-1\">"
28
+ end
27
29
  end
28
30
 
29
31
  it "deals with a non-existant ISO reference" do
30
- stub_bib Isobib::IsoBibliography
31
- bib = @db.fetch("ISO 111111119115-1", nil, {})
32
- expect(bib).to be_nil
33
- expect(File.exist?("testcache")).to be true
34
- expect(File.exist?("testcache2")).to be true
35
- testcache = Relaton::DbCache.new "testcache"
36
- expect(testcache.fetched("ISO(ISO 111111119115-1)")).to eq Date.today.to_s
37
- expect(testcache["ISO(ISO 111111119115-1)"]).to include "not_found"
38
- testcache = Relaton::DbCache.new "testcache2"
39
- expect(testcache.fetched("ISO(ISO 111111119115-1)")).to eq Date.today.to_s
40
- expect(testcache["ISO(ISO 111111119115-1)"]).to include "not_found"
32
+ # stub_bib Isobib::IsoBibliography
33
+ VCR.use_cassette "iso_111111119115_1" do
34
+ bib = @db.fetch("ISO 111111119115-1", nil, {})
35
+ expect(bib).to be_nil
36
+ expect(File.exist?("testcache")).to be true
37
+ expect(File.exist?("testcache2")).to be true
38
+ testcache = Relaton::DbCache.new "testcache"
39
+ expect(testcache.fetched("ISO(ISO 111111119115-1)")).to eq Date.today.to_s
40
+ expect(testcache["ISO(ISO 111111119115-1)"]).to include "not_found"
41
+ testcache = Relaton::DbCache.new "testcache2"
42
+ expect(testcache.fetched("ISO(ISO 111111119115-1)")).to eq Date.today.to_s
43
+ expect(testcache["ISO(ISO 111111119115-1)"]).to include "not_found"
44
+ end
41
45
  end
42
46
 
43
47
  it "list all elements as a serialization" do
44
- stub_bib Isobib::IsoBibliography, 2
45
- @db.fetch "ISO 19115-1", nil, {}
46
- @db.fetch "ISO 19115-2", nil, {}
47
- file = "spec/support/list_entries.xml"
48
- File.write file, @db.to_xml unless File.exist? file
49
- expect(@db.to_xml).to eq File.read file
48
+ # stub_bib Isobib::IsoBibliography, 2
49
+ VCR.use_cassette "iso_19115_1" do
50
+ @db.fetch "ISO 19115-1", nil, {}
51
+ end
52
+ VCR.use_cassette "iso_19115-2" do
53
+ @db.fetch "ISO 19115-2", nil, {}
54
+ end
55
+ # file = "spec/support/list_entries.xml"
56
+ # File.write file, @db.to_xml unless File.exist? file
57
+ docs = Nokogiri::XML @db.to_xml
58
+ expect(docs.xpath("/documents/bibitem").size).to eq 2
50
59
  end
51
60
 
52
61
  it "save/load/delete entry" do
@@ -61,29 +70,33 @@ RSpec.describe Relaton::Db do
61
70
  end
62
71
 
63
72
  it "get GB reference and cache it" do
64
- stub_bib Gbbib::GbBibliography
65
- bib = @db.fetch "CN(GB/T 20223)", "2006", {}
66
- expect(bib).to be_instance_of Gbbib::GbBibliographicItem
67
- expect(bib.to_xml).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
68
- expect(File.exist?("testcache")).to be true
69
- expect(File.exist?("testcache2")).to be true
70
- testcache = Relaton::DbCache.new "testcache"
71
- expect(testcache["CN(GB/T 20223:2006)"]).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
72
- testcache = Relaton::DbCache.new "testcache2"
73
- expect(testcache["CN(GB/T 20223:2006)"]).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
73
+ # stub_bib Gbbib::GbBibliography
74
+ VCR.use_cassette "gb_t_20223_2006" do
75
+ bib = @db.fetch "CN(GB/T 20223)", "2006", {}
76
+ expect(bib).to be_instance_of Gbbib::GbBibliographicItem
77
+ expect(bib.to_xml).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
78
+ expect(File.exist?("testcache")).to be true
79
+ expect(File.exist?("testcache2")).to be true
80
+ testcache = Relaton::DbCache.new "testcache"
81
+ expect(testcache["CN(GB/T 20223:2006)"]).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
82
+ testcache = Relaton::DbCache.new "testcache2"
83
+ expect(testcache["CN(GB/T 20223:2006)"]).to include "<bibitem type=\"standard\" id=\"GB/T20223\">"
84
+ end
74
85
  end
75
86
 
76
87
  it "get RFC reference and cache it" do
77
- stub_bib IETFBib::RfcBibliography
78
- bib = @db.fetch "RFC 8341", nil, {}
79
- expect(bib).to be_instance_of IsoBibItem::BibliographicItem
80
- expect(bib.to_xml).to include "<bibitem id=\"RFC8341\">"
81
- expect(File.exist?("testcache")).to be true
82
- expect(File.exist?("testcache2")).to be true
83
- testcache = Relaton::DbCache.new "testcache"
84
- expect(testcache["IETF(RFC 8341)"]).to include "<bibitem id=\"RFC8341\">"
85
- testcache = Relaton::DbCache.new "testcache2"
86
- expect(testcache["IETF(RFC 8341)"]).to include "<bibitem id=\"RFC8341\">"
88
+ # stub_bib IETFBib::RfcBibliography
89
+ VCR.use_cassette "rfc_8341" do
90
+ bib = @db.fetch "RFC 8341", nil, {}
91
+ expect(bib).to be_instance_of IsoBibItem::BibliographicItem
92
+ expect(bib.to_xml).to include "<bibitem id=\"RFC8341\">"
93
+ expect(File.exist?("testcache")).to be true
94
+ expect(File.exist?("testcache2")).to be true
95
+ testcache = Relaton::DbCache.new "testcache"
96
+ expect(testcache["IETF(RFC 8341)"]).to include "<bibitem id=\"RFC8341\">"
97
+ testcache = Relaton::DbCache.new "testcache2"
98
+ expect(testcache["IETF(RFC 8341)"]).to include "<bibitem id=\"RFC8341\">"
99
+ end
87
100
  end
88
101
 
89
102
  it "shoul clear global cache if version is changed" do
@@ -112,8 +125,8 @@ RSpec.describe Relaton::Db do
112
125
  file = "spec/support/" + args[0].downcase.gsub(/[\/\s-]/, "_")
113
126
  file += "_#{args[1]}" if args[1]
114
127
  file += ".xml"
115
- File.write file, method.call(*args)&.to_xml unless File.exist? file
116
- File.read file
128
+ File.write file, method.call(*args)&.to_xml, encoding: "utf-8" unless File.exist? file
129
+ File.read file, encoding: "utf-8"
117
130
  end
118
131
 
119
132
  def expect_args(args)
@@ -1,5 +1,12 @@
1
1
  # frozen_string_literal: true
2
-
2
+
3
+ require "vcr"
4
+
5
+ VCR.configure do |c|
6
+ c.cassette_library_dir = "spec/vcr_cassetes"
7
+ c.hook_into :webmock
8
+ end
9
+
3
10
  require "simplecov"
4
11
  SimpleCov.start do
5
12
  add_filter "/spec/"
@@ -0,0 +1,111 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://www.std.gov.cn/search/stdPage?q=GB/T%2020223
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
+ response:
17
+ status:
18
+ code: 200
19
+ message: ''
20
+ headers:
21
+ Set-Cookie:
22
+ - JSESSIONID=D5E2C68E0DE7F8F80007F10BAA08F660;path=/;HttpOnly
23
+ Content-Type:
24
+ - text/html;charset=UTF-8
25
+ Content-Language:
26
+ - zh-CN
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Vary:
30
+ - Accept-Encoding
31
+ Date:
32
+ - Thu, 18 Oct 2018 16:41:14 GMT
33
+ body:
34
+ encoding: ASCII-8BIT
35
+ string: !binary |-
36
+ DQoNCg0KDQo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvPg0KPHRpdGxlPuWbveWutuagh+WHhuajgOe0oiAtIOWFqOWbveagh+WHhuS/oeaBr+WFrOWFseacjeWKoeW5s+WPsDwvdGl0bGU+DQo8bGluayBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcmVzb3VyY2VzL2Jvb3RzdHJhcC9jc3MvYm9vdHN0cmFwLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvanF1ZXJ5L2pxdWVyeS0xLjkuMS5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL3Jlc291cmNlcy9ib290c3RyYXAtcGFnaW5hdG9yL2Jvb3RzdHJhcHYzLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvYm9vdHN0cmFwLXBhZ2luYXRvci9ib290c3RyYXAtcGFnaW5hdG9yLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9qcy9jb21tb24uanMiPjwvc2NyaXB0Pg0KPHN0eWxlPg0Kc2FjaW5mb3tmb250LXN0eWxlOiBub3JtYWw7Y29sb3I6ICNjMDA7fQ0KLnBvc3Qgew0KICAgIG1hcmdpbi10b3A6IDE1cHg7DQp9DQoucGFnZS1oZWFkZXIgew0KCW1hcmdpbi10b3A6MDsNCgltYXJnaW4tYm90dG9tOjVweDsNCn0NCi5lbi1jb2Rlew0KCWZvbnQtd2VpZ2h0OmJvbGQ7DQoJY29sb3I6IzBBNUNBODsNCg0KCWZvbnQtc2l6ZToxMTAlOw0KfQ0KLnMtbG9nbyB7DQoJZGlzcGxheTppbmxpbmUtdGFibGU7DQoJd2lkdGg6NjBweDsNCgloZWlnaHQ6NjBweDsgDQp9DQoucy1sb2dvIC5saW5lMTEgew0KCWRpc3BsYXk6YmxvY2s7DQoJbWFyZ2luLWJvdHRvbTo1cHg7DQoJZm9udC1zaXplOjE0cHg7DQoJbGluZS1oZWlnaHQ6IDIwcHg7DQp9DQoucy1sb2dvIC5saW5lMjIgew0KCWZvbnQtc2l6ZToxMnB4Ow0KfQ0KLnMtdGl0bGUgew0KCXdpZHRoOjEwMCU7DQp9DQoucy10aXRsZSB0ZHsNCgl2ZXJ0aWNhbC1hbGlnbjp0b3A7IA0KfQ0KLnMtc3RhdHVzIHsNCglmbG9hdDpyaWdodDsNCglmb250LXdlaWdodDpub3JtYWw7DQoJZm9udC1zaXplOjE0cHg7DQoJd2hpdGUtc3BhY2U6bm93cmFwOw0KfQ0KLnMtdGl0bGUgLnMtc3RhdHVzOmZpcnN0LWNoaWxkIHsNCgltYXJnaW4tdG9wOjJweDsNCn0NCi5wb3N0LWZsZXh7DQoJZm9udC1zaXplOjEycHg7DQoJbWFyZ2luLXRvcDoxMHB4Ow0KCW1hcmdpbi1ib3R0b206MnB4Ow0KfQ0KLnBvc3QtZmxleCB0aW1lew0KCWNvbG9yOmdyYXk7DQp9DQoucGFuZWwtZm9vdGVyew0KCXRleHQtYWxpZ246IHJpZ2h0Ow0KfQ0KDQoucGFuZWwtZm9vdGVyIC5nbHlwaGljb246Zmlyc3QtY2hpbGQsIC5wb3N0LWZsZXggLmdseXBoaWNvbjpmaXJzdC1jaGlsZHsNCgltYXJnaW4tbGVmdDowOw0KfQ0KLnBhbmVsLWZvb3RlciAuZ2x5cGhpY29uLCAucG9zdC1mbGV4IC5nbHlwaGljb257DQoJbWFyZ2luLWxlZnQ6MjBweDsNCn0NCi5wb3N0IC50b3AtbWVkaWEgew0KCW1hcmdpbi1sZWZ0Oi0zMHB4Ow0KfQ0KLnBvc3QgLm1lZGlhLWlubmVyIC5tZWRpYS1sZWZ0ew0KCWJvcmRlci1sZWZ0OjVweCAjMWI4MDllIHNvbGlkOw0KfQ0KLnBvc3QgLm1lZGlhLWlubmVyIC5tZWRpYS1sZWZ0IHNwYW57DQoJZGlzcGxheTpibG9jazsNCgl3aWR0aDo2NXB4Ow0KCXRleHQtYWxpZ246cmlnaHQ7DQp9DQoucG9zdCAubWVkaWEtaW5uZXIgLm1lZGlhLWJvZHl7DQoJY29sb3I6Z3JheTsNCn0NCi5tZWRpYS1ib2R5IHNwYW57Y3Vyc29yOiBwb2ludGVyO30NCi5jb250YWluZXJ7cGFkZGluZy1sZWZ0OjMwcHg7d2lkdGg6MTAwJTt9DQoucGFnaW5hdGlvbnttYXJnaW46IDB9DQoubnVtc3t3aWR0aDo1MzhweDtjb2xvcjogIzk5OTtmb250LXNpemU6IDEycHg7bWFyZ2luOiAwIDAgMCAtMTBweDt9DQoubnVtcyBzcGFue2NvbG9yOiAjRkY2RDAwfQ0KDQpAbWVkaWEgKG1heC13aWR0aDogNTY4cHgpew0KCS5wb3N0IC50b3AtbWVkaWEgew0KCSAgICBtYXJnaW4tbGVmdDogMDsNCgl9DQoJLmNvbnRhaW5lcntwYWRkaW5nLWxlZnQ6MTVweDtwYWRkaW5nLXJpZ2h0OjE1cHg7fQ0KCS5zLWxvZ297ZGlzcGxheTpub25lO30NCgkucGFuZWwtZm9vdGVye2Rpc3BsYXk6bm9uZTt9DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQo8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCTxkaXYgY2xhc3M9Im51bXMiPuS4uuaCqOaJvuWIsOebuOWFs+e7k+aenOe6piZuYnNwOzxzcGFuPjE2NDEyNzwvc3Bhbj4mbmJzcDvkuKo8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJyb3ciPg0KCQ0KCQkNCgkJCTxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQgcG9zdCI+DQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+DQoJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIHRvcC1tZWRpYSI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0Ij4NCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtbG9nbyBsYWJlbCBsYWJlbC1wcmltYXJ5Ij4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJsaW5lMTEiPuWbveWutjxici8+5qCH5YeGPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSIgc3R5bGU9IndpZHRoOiAxMDAlIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtaGVhZCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJPGEgaHJlZj0iIyIgdGlkPSJCVl9HQiIgcGlkPSI3MUY3NzJEODJDMDJEM0E3RTA1Mzk3QkUwQTBBQjgyQSIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGNsYXNzPSJlbi1jb2RlIj48c2FjaW5mbz5HQjwvc2FjaW5mbz48c2FjaW5mbz4vPC9zYWNpbmZvPjxzYWNpbmZvPlQ8L3NhY2luZm8+IDxzYWNpbmZvPjIwMjIzPC9zYWNpbmZvPi0yMDE4PC9zcGFuPiZuYnNwOyZuYnNwO+ajieefree7kjwvYT4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLXN1Y2Nlc3MiPueOsOihjDwvc3Bhbj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWZsZXgiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIj48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7lm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj41OS4wNjAuMTA8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90Ij48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7kuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj5XMTA8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1kZWZhdWx0Ij48L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6Iux5paH5qCH6aKYPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQlDb3R0b24gbGludGVyDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5YWo5Zu957qk57u05qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4NCgkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tb3BlbiB0ZXh0LXByaW1hcnkiPjwvc3Bhbj4mbmJzcDs8c3Bhbj7lj5HluIPkuo48L3NwYW4+DQoJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxOC0wMy0xNTwvdGltZT4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2F2ZWQgdGV4dC1zdWNjZXNzIj48L3NwYW4+Jm5ic3A7PHNwYW4+5a6e5pa95LqOPC9zcGFuPg0KCQkJCQkJCTx0aW1lIGNsYXNzPSJwb3N0LWRhdGUiIGRhdGV0aW1lPSIiIHRpdGxlPSIiPjIwMTgtMDUtMDE8L3RpbWU+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkNCgkJCQkJDQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJDQoJCQk8ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0IHBvc3QiPg0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPg0KCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSB0b3AtbWVkaWEiPg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCI+DQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLWxvZ28gbGFiZWwgbGFiZWwtcHJpbWFyeSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibGluZTExIj7lm73lrrY8YnIvPuagh+WHhjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQk8L2Rpdj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiIHN0eWxlPSJ3aWR0aDogMTAwJSI+DQoJCQkJCQkJPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWhlYWQiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCTxhIGhyZWY9IiMiIHRpZD0iQlZfR0IiIHBpZD0iNzFGNzcyRDc3OEFERDNBN0UwNTM5N0JFMEEwQUI4MkEiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+PHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPiA8c2FjaW5mbz4yMDIyMzwvc2FjaW5mbz4tMjAwNjwvc3Bhbj4mbmJzcDsmbmJzcDvmo4nnn63nu5I8L2E+DQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGFuZ2VyIj7lup/mraI8L3NwYW4+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWZsZXgiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIj48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7lm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj41OS4wNjAuMTA8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90Ij48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7kuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj5CMzI8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1kZWZhdWx0Ij48L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6Iux5paH5qCH6aKYPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQlDb3R0b24gbGludGVyDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5Lit5Zu957qk57u05qOA6aqM5bGAPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4NCgkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tb3BlbiB0ZXh0LXByaW1hcnkiPjwvc3Bhbj4mbmJzcDs8c3Bhbj7lj5HluIPkuo48L3NwYW4+DQoJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAwNi0wMy0xMDwvdGltZT4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2F2ZWQgdGV4dC1zdWNjZXNzIj48L3NwYW4+Jm5ic3A7PHNwYW4+5a6e5pa95LqOPC9zcGFuPg0KCQkJCQkJCTx0aW1lIGNsYXNzPSJwb3N0LWRhdGUiIGRhdGV0aW1lPSIiIHRpdGxlPSIiPjIwMDYtMDktMDE8L3RpbWU+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkNCgkJCQkJDQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJDQoJCQk8ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0IHBvc3QiPg0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPg0KCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSB0b3AtbWVkaWEiPg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCI+DQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy1sb2dvIGxhYmVsIGxhYmVsLXN1Y2Nlc3MiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImxpbmUxMSI+6KGM5LiaPGJyLz7moIflh4Y8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQk8L2Rpdj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiIHN0eWxlPSJ3aWR0aDogMTAwJSI+DQoJCQkJCQkJPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWhlYWQiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCTxhIGhyZWY9IiMiIHRpZD0iQlZfSEIiIHBpZD0iNUREQThCQTJFREMwMThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+TkI8c2FjaW5mbz4vPC9zYWNpbmZvPjxzYWNpbmZvPlQ8L3NhY2luZm8+IDxzYWNpbmZvPjIwMjIzPC9zYWNpbmZvPi0yMDEzPC9zcGFuPiZuYnNwOyZuYnNwO+aguOeUteWOguWuieWFqOmHjeimgeacuuaisOiuvuWkh+e7tOS/ruaMh+WNlzwvYT4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLXN1Y2Nlc3MiPueOsOihjDwvc3Bhbj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWZsZXgiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIj48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7lm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj4yNy4xMjAuOTk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90Ij48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7kuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj5GMjM8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1kZWZhdWx0Ij48L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5qC45bel5Lia5qCH5YeG5YyW56CU56m25omAPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+5omA5bGe6KGM5LiaPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQk8c3BhbiByaWQ9IjMiPk5CIOiDvea6kDwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1mb290ZXIiPg0KCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1vcGVuIHRleHQtcHJpbWFyeSI+PC9zcGFuPiZuYnNwOzxzcGFuPuWPkeW4g+S6jjwvc3Bhbj4NCgkJCQkJCQk8dGltZSBjbGFzcz0icG9zdC1kYXRlIiBkYXRldGltZT0iIiB0aXRsZT0iIj4yMDEzLTA2LTA4PC90aW1lPg0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zYXZlZCB0ZXh0LXN1Y2Nlc3MiPjwvc3Bhbj4mbmJzcDs8c3Bhbj7lrp7mlr3kuo48L3NwYW4+DQoJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxMy0xMC0wMTwvdGltZT4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQ0KCQkJCQkNCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkNCgkJCTxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQgcG9zdCI+DQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+DQoJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIHRvcC1tZWRpYSI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0Ij4NCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtbG9nbyBsYWJlbCBsYWJlbC13YXJuaW5nIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJsaW5lMTEiPuWbveaghzxici8+6K6h5YiSPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSIgc3R5bGU9IndpZHRoOiAxMDAlIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtaGVhZCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJPGEgaHJlZj0iIyIgdGlkPSJCVl9HQl9QTEFOIiBwaWQ9IjVEREE4QkEyM0MzNDE4REVFMDUzOTdCRTBBMEE5NUE3IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gY2xhc3M9ImVuLWNvZGUiPjIwMTcwNDUwLTxzYWNpbmZvPlQ8L3NhY2luZm8+LTQ2OTwvc3Bhbj4mbmJzcDsmbmJzcDvotKjph4/nrqHnkIbkvZPns7sgPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPiAxOTAwMeKAlDIwMTblupTnlKjmjIfljZc8L2E+DQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLXN1Y2Nlc3MiPuato+WcqOaJueWHhjwvc3Bhbj4NCgkJCQkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWZsZXgiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWdsb2JlIj48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7lm73pmYXmoIflh4bliIbnsbvlj7fvvIhJQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj4wMy4xMjAuMTA8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1zY3JlZW5zaG90Ij48L3NwYW4+Jm5ic3A7DQoJCQkJCQkJCQkJCQk8c3Bhbj7kuK3lm73moIflh4bliIbnsbvlj7fvvIhDQ1PvvIk8L3NwYW4+DQoJCQkJCQkJCQkJCQk8c3Bhbj5BLjAwPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGVmYXVsdCI+6YeHPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8ZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuiLseaWh+agh+mimDwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJUXVhbGl0eSBtYW5hZ2VtZW50IHN5c3RlbXPigJRHdWlkZWxpbmVzIGZvciB0aGUgYXBwbGljYXRpb24gb2YgPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPjEgOTAwMeKAlDIwMTYNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuWItuS/ruiuojwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJPHNwYW4+DQoJCQkJCQkJCQkJ5Yi26K6iDQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5YWo5Zu96LSo6YeP566h55CG5ZKM6LSo6YeP5L+d6K+B5qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7ph4fmoIflhbPns7s8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCeetieWQjCZuYnNwOyZuYnNwO0lTTy9UUyA5MDAyOjIwMTYNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7pobnnm67lkajmnJ88L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTI0Jm5ic3A75Liq5pyIDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJPC9kaXY+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InBhbmVsLWZvb3RlciI+DQoJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNvbGxhcHNlLWRvd24gdGV4dC1zdWNjZXNzIj48L3NwYW4+Jm5ic3A7PHNwYW4+5LiL6L6+5LqOPC9zcGFuPg0KCQkJCQkJCQk8dGltZSBjbGFzcz0icG9zdC1kYXRlIiBkYXRldGltZT0iIiB0aXRsZT0iIj4yMDE3LTA1LTIzPC90aW1lPg0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoJCQkJCQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQ0KCQkJPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCBwb3N0Ij4NCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgdG9wLW1lZGlhIj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQiPg0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy1sb2dvIGxhYmVsIGxhYmVsLXdhcm5pbmciPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImxpbmUxMSI+5Zu95qCHPGJyLz7orqHliJI8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5IiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0icG9zdC1oZWFkIj4NCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy10aXRsZSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8YSBocmVmPSIjIiB0aWQ9IkJWX0dCX1BMQU4iIHBpZD0iNjI1NTFBQTIwNzE0QzEwOUUwNTM5N0JFMEEwQUQ4MDQiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+MjAxNzM3NjMtPHNhY2luZm8+VDwvc2FjaW5mbz4tNjEwPC9zcGFuPiZuYnNwOyZuYnNwO+S6jOawr+WMlumSrzwvYT4NCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtc3VjY2VzcyI+5q2j5Zyo6LW36I2JPC9zcGFuPg0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtZmxleCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZ2xvYmUiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuWbvemZheagh+WHhuWIhuexu+WPt++8iElDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjc3LjE1MC45OTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNjcmVlbnNob3QiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuS4reWbveagh+WHhuWIhuexu+WPt++8iENDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLWRlZmF1bHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPGRpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7oi7HmlofmoIfpopg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzYWNpbmZvPkdCPC9zYWNpbmZvPjxzYWNpbmZvPi88L3NhY2luZm8+PHNhY2luZm8+VDwvc2FjaW5mbz4gODE4NS0yMDA0DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7liLbkv67orqI8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuPg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCeS/ruiuog0KCQkJCQkJCQkJCTwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+5b2S5Y+j5Y2V5L2NPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQk8c3BhbiByaWQ9IjIiPuWFqOWbveacieiJsumHkeWxnuagh+WHhuWMluaKgOacr+WnlOWRmOS8mjwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6aG555uu5ZGo5pyfPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQkyNCZuYnNwO+S4quaciA0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1mb290ZXIiPg0KCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jb2xsYXBzZS1kb3duIHRleHQtc3VjY2VzcyI+PC9zcGFuPiZuYnNwOzxzcGFuPuS4i+i+vuS6jjwvc3Bhbj4NCgkJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxOC0wMS0wOTwvdGltZT4NCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoJCQkJCQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQ0KCQkJPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCBwb3N0Ij4NCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgdG9wLW1lZGlhIj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQiPg0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy1sb2dvIGxhYmVsIGxhYmVsLXdhcm5pbmciPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImxpbmUxMSI+5Zu95qCHPGJyLz7orqHliJI8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5IiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0icG9zdC1oZWFkIj4NCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy10aXRsZSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8YSBocmVmPSIjIiB0aWQ9IkJWX0dCX1BMQU4iIHBpZD0iNUREQThCQTI0Q0FDMThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+MjAxMzA3NTctPHNhY2luZm8+VDwvc2FjaW5mbz4tNjA1PC9zcGFuPiZuYnNwOyZuYnNwO+mUsOmTgTwvYT4NCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtc3VjY2VzcyI+5q2j5Zyo6LW36I2JPC9zcGFuPg0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtZmxleCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZ2xvYmUiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuWbvemZheagh+WHhuWIhuexu+WPt++8iElDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjc3LjEwMDwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNjcmVlbnNob3QiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuS4reWbveagh+WHhuWIhuexu+WPt++8iENDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPkg0Mjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLWRlZmF1bHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPGRpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7oi7HmlofmoIfpopg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCUZlcnJvbWFuZ2FuZXNlDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7liLbkv67orqI8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuPg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCeS/ruiuog0KCQkJCQkJCQkJCTwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuagh+WHhue8luWPtzwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJPHNwYW4gcmlkPSIxIj48c2FjaW5mbz5HQjwvc2FjaW5mbz48c2FjaW5mbz4vPC9zYWNpbmZvPjxzYWNpbmZvPlQ8L3NhY2luZm8+IDM3OTUtMjAxNDwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuW9kuWPo+WNleS9jTwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJPHNwYW4gcmlkPSIyIj7lhajlm73nlJ/pk4Hlj4rpk4HlkIjph5HmoIflh4bljJbmioDmnK/lp5TlkZjkvJo8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPumhueebruWRqOacnzwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJMTImbmJzcDvkuKrmnIgNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4NCgkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoJCQkJCQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQ0KCQkJPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCBwb3N0Ij4NCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgdG9wLW1lZGlhIj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQiPg0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy1sb2dvIGxhYmVsIGxhYmVsLXdhcm5pbmciPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImxpbmUxMSI+5Zu95qCHPGJyLz7orqHliJI8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5IiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0icG9zdC1oZWFkIj4NCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy10aXRsZSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8YSBocmVmPSIjIiB0aWQ9IkJWX0dCX1BMQU4iIHBpZD0iNUREQThCQTIzMDU0MThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+MjAxMTAxODQtPHNhY2luZm8+VDwvc2FjaW5mbz4tNDY5PC9zcGFuPiZuYnNwOyZuYnNwO+i0qOmHj+euoeeQhuS9k+ezuyAg5Zyw5pa55pS/5bqc5bqU55SoPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPjE5MDAxLTIwMDjmjIfljZc8L2E+DQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGFuZ2VyIj7lt7Lnu4jmraI8L3NwYW4+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtZmxleCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZ2xvYmUiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuWbvemZheagh+WHhuWIhuexu+WPt++8iElDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjAzLjEyMC4xMDwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNjcmVlbnNob3QiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuS4reWbveagh+WHhuWIhuexu+WPt++8iENDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPkEwMDwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLWRlZmF1bHQiPumHhzwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPGRpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7oi7HmlofmoIfpopg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCVF1YWxpdHkgbWFuYWdlbWVudCBzeXN0ZW1zLUd1aWRlbGluZXMgZm9yIHRoZSBhcHBsaWNhdGlvbiBvZiA8c2FjaW5mbz5HQjwvc2FjaW5mbz48c2FjaW5mbz4vPC9zYWNpbmZvPjxzYWNpbmZvPlQ8L3NhY2luZm8+MTkwMDEtMjAwOCBpbiBsb2NhbCBnb3Zlcm5tZW50DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7liLbkv67orqI8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuPg0KCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCeS/ruiuog0KCQkJCQkJCQkJCTwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+5b2S5Y+j5Y2V5L2NPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQk8c3BhbiByaWQ9IjIiPuWFqOWbvei0qOmHj+euoeeQhuWSjOi0qOmHj+S/neivgeagh+WHhuWMluaKgOacr+WnlOWRmOS8mjwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6YeH5qCH5YWz57O7PC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQnpnZ7nrYnmlYgmbmJzcDsmbmJzcDtJU08vSVdBNDoyMDA4DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6aG555uu5ZGo5pyfPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQkyNCZuYnNwO+S4quaciA0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1mb290ZXIiPg0KCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jb2xsYXBzZS1kb3duIHRleHQtc3VjY2VzcyI+PC9zcGFuPiZuYnNwOzxzcGFuPuS4i+i+vuS6jjwvc3Bhbj4NCgkJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxMS0xMC0xMzwvdGltZT4NCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi10cmFuc2ZlciB0ZXh0LXByaW1hcnkiPjwvc3Bhbj4mbmJzcDs8c3Bhbj7nu4jmraLkuo48L3NwYW4+DQoJCQkJCQkJCTx0aW1lIGNsYXNzPSJwb3N0LWRhdGUiIGRhdGV0aW1lPSIiIHRpdGxlPSIiPjIwMTctMTItMTg8L3RpbWU+DQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkNCgkJCQkJDQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJDQoJCQk8ZGl2IGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0IHBvc3QiPg0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9InBhbmVsLWJvZHkiPg0KCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSB0b3AtbWVkaWEiPg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCI+DQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLWxvZ28gbGFiZWwgbGFiZWwtd2FybmluZyI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0ibGluZTExIj7lm73moIc8YnIvPuiuoeWIkjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQk8L2Rpdj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiIHN0eWxlPSJ3aWR0aDogMTAwJSI+DQoJCQkJCQkJPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJwb3N0LWhlYWQiPg0KCQkJCQkJCQkJPHRhYmxlIGNsYXNzPSJzLXRpdGxlIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCTxhIGhyZWY9IiMiIHRpZD0iQlZfR0JfUExBTiIgcGlkPSI1RERBOEJBMUVFNUMxOERFRTA1Mzk3QkUwQTBBOTVBNyIgdGFyZ2V0PSJfYmxhbmsiPjxzcGFuIGNsYXNzPSJlbi1jb2RlIj4yMDEwMDQ3NC1aLTQ2OTwvc3Bhbj4mbmJzcDsmbmJzcDvotKjph4/nrqHnkIbkvZPns7sgPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPiAxOTAwMeWcqOS4reWwj+Wei+e7hOe7h+S4reeahOW6lOeUqOaMh+WNlzwvYT4NCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1kYW5nZXIiPuW3sue7iOatojwvc3Bhbj4NCgkJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0icG9zdC1mbGV4Ij4NCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy10aXRsZSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1nbG9iZSI+PC9zcGFuPiZuYnNwOw0KCQkJCQkJCQkJCQkJPHNwYW4+5Zu96ZmF5qCH5YeG5YiG57G75Y+377yISUNT77yJPC9zcGFuPg0KCQkJCQkJCQkJCQkJPHNwYW4+MDMuMTIwLjEwPC9zcGFuPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2NyZWVuc2hvdCI+PC9zcGFuPiZuYnNwOw0KCQkJCQkJCQkJCQkJPHNwYW4+5Lit5Zu95qCH5YeG5YiG57G75Y+377yIQ0NT77yJPC9zcGFuPg0KCQkJCQkJCQkJCQkJPHNwYW4+QTAwPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGVmYXVsdCI+6YeHPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8ZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuiLseaWh+agh+mimDwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJUXVhbGl0eSBtYW5hZ2VtZW50IHN5c3RlbXPigJRHdWlkZWxpbmVzIGZvciB0aGUgYXBwbGljYXRpb24gb2YgPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPiAxOTAwMSBpbiBzbWFsbCBhbmQgbWVkaXVtIGJ1c2luZXNzZXMNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuWItuS/ruiuojwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJPHNwYW4+DQoJCQkJCQkJCQkJDQoJCQkJCQkJCQkJ5L+u6K6iDQoJCQkJCQkJCQkJPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5YWo5Zu96LSo6YeP566h55CG5ZKM6LSo6YeP5L+d6K+B5qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7ph4fmoIflhbPns7s8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCeS/ruaUuSZuYnNwOyZuYnNwO0lTTyDlsI/lhozlrZDigJTigJQyMDEw54mIDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+6aG555uu5ZGo5pyfPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQkzNiZuYnNwO+S4quaciA0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQk8L2Rpdj4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1mb290ZXIiPg0KCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1jb2xsYXBzZS1kb3duIHRleHQtc3VjY2VzcyI+PC9zcGFuPiZuYnNwOzxzcGFuPuS4i+i+vuS6jjwvc3Bhbj4NCgkJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxMC0xMi0xNzwvdGltZT4NCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2F2ZWQgdGV4dC1zdWNjZXNzIj48L3NwYW4+Jm5ic3A7PHNwYW4+5a6e5pa95LqOPC9zcGFuPg0KCQkJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxMy0xMi0wMTwvdGltZT4NCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXRyYW5zZmVyIHRleHQtcHJpbWFyeSI+PC9zcGFuPiZuYnNwOzxzcGFuPue7iOatouS6jjwvc3Bhbj4NCgkJCQkJCQkJPHRpbWUgY2xhc3M9InBvc3QtZGF0ZSIgZGF0ZXRpbWU9IiIgdGl0bGU9IiI+MjAxNy0xMi0xODwvdGltZT4NCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQ0KCQkJCQkNCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkNCgkJCTxkaXYgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQgcG9zdCI+DQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+DQoJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIHRvcC1tZWRpYSI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0Ij4NCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtbG9nbyBsYWJlbCBsYWJlbC13YXJuaW5nIj4NCgkJCQkJCQkJCQk8dHI+DQoJCQkJCQkJCQkJCTx0ZD4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJsaW5lMTEiPuWbveaghzxici8+6K6h5YiSPC9zcGFuPg0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCTwvZGl2Pg0KCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSIgc3R5bGU9IndpZHRoOiAxMDAlIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJwYWdlLWhlYWRlciI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtaGVhZCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJPGEgaHJlZj0iIyIgdGlkPSJCVl9HQl9QTEFOIiBwaWQ9IjVEREE4QkEyNEQ2NjE4REVFMDUzOTdCRTBBMEE5NUE3IiB0YXJnZXQ9Il9ibGFuayI+PHNwYW4gY2xhc3M9ImVuLWNvZGUiPjIwMTAwNDczLVotNDY5PC9zcGFuPiZuYnNwOyZuYnNwO+i0qOmHj+euoeeQhuS9k+ezuyA8c2FjaW5mbz5HQjwvc2FjaW5mbz48c2FjaW5mbz4vPC9zYWNpbmZvPjxzYWNpbmZvPlQ8L3NhY2luZm8+MTkwMDHlnKjph5Hono3nu4Tnu4fkuK3nmoTlupTnlKjmjIfljZc8L2E+DQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGFuZ2VyIj7lt7Lnu4jmraI8L3NwYW4+DQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtZmxleCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZ2xvYmUiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuWbvemZheagh+WHhuWIhuexu+WPt++8iElDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjAzLjEyMC4xMDwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNjcmVlbnNob3QiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuS4reWbveagh+WHhuWIhuexu+WPt++8iENDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLWRlZmF1bHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPGRpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7oi7HmlofmoIfpopg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCVF1YWxpdHkgbWFuYWdlbWVudCBzeXN0ZW1zR3VpZGVsaW5lcyBmb3IgIGZpbmFuY2EgaW5kdXN0cnkgb2YgPHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPjE5MDAxIGluIGVkdWNhdGlvbg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+5Yi25L+u6K6iPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQk8c3Bhbj4NCgkJCQkJCQkJCQnliLborqINCgkJCQkJCQkJCQkNCgkJCQkJCQkJCQk8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPuW9kuWPo+WNleS9jTwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJPHNwYW4gcmlkPSIyIj7lhajlm73otKjph4/nrqHnkIblkozotKjph4/kv53or4HmoIflh4bljJbmioDmnK/lp5TlkZjkvJo8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgbWVkaWEtaW5uZXIiPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtbGVmdCBtZWRpYS1taWRkbGUiPg0KCQkJCQkJCQkJCTxzcGFuPumhueebruWRqOacnzwvc3Bhbj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0ibWVkaWEtYm9keSI+DQoJCQkJCQkJCQkJMzYmbmJzcDvkuKrmnIgNCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJDQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4NCgkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tY29sbGFwc2UtZG93biB0ZXh0LXN1Y2Nlc3MiPjwvc3Bhbj4mbmJzcDs8c3Bhbj7kuIvovr7kuo48L3NwYW4+DQoJCQkJCQkJCTx0aW1lIGNsYXNzPSJwb3N0LWRhdGUiIGRhdGV0aW1lPSIiIHRpdGxlPSIiPjIwMTAtMTItMTc8L3RpbWU+DQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdHJhbnNmZXIgdGV4dC1wcmltYXJ5Ij48L3NwYW4+Jm5ic3A7PHNwYW4+57uI5q2i5LqOPC9zcGFuPg0KCQkJCQkJCQk8dGltZSBjbGFzcz0icG9zdC1kYXRlIiBkYXRldGltZT0iIiB0aXRsZT0iIj4yMDE3LTEyLTE4PC90aW1lPg0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoJCQkJCQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQ0KCQkJPGRpdiBjbGFzcz0icGFuZWwgcGFuZWwtZGVmYXVsdCBwb3N0Ij4NCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYW5lbC1ib2R5Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibWVkaWEgdG9wLW1lZGlhIj4NCgkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQiPg0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy1sb2dvIGxhYmVsIGxhYmVsLXdhcm5pbmciPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImxpbmUxMSI+5Zu95qCHPGJyLz7orqHliJI8L3NwYW4+DQoJCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQkJPC90cj4NCgkJCQkJCQkJCTwvdGFibGU+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJPC9kaXY+DQoJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5IiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KCQkJCQkJCTxkaXYgY2xhc3M9InBhZ2UtaGVhZGVyIj4NCgkJCQkJCQkJPGRpdiBjbGFzcz0icG9zdC1oZWFkIj4NCgkJCQkJCQkJCTx0YWJsZSBjbGFzcz0icy10aXRsZSI+DQoJCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQk8YSBocmVmPSIjIiB0aWQ9IkJWX0dCX1BMQU4iIHBpZD0iNUREQThCQTFFQUQ3MThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iZW4tY29kZSI+MjAxMDE1NDItPHNhY2luZm8+VDwvc2FjaW5mbz4tNDQ5PC9zcGFuPiZuYnNwOyZuYnNwO+iPnOexveayuTwvYT4NCgkJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQk8L3RkPg0KCQkJCQkJCQkJCQk8dGQ+DQoJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJDQoJCQkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtc3VjY2VzcyI+5q2j5Zyo5om55YeGPC9zcGFuPg0KCQkJCQkJCQkJCQkJICAgDQoJCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJCQ0KCQkJCQkJCQkJCQkNCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTxkaXYgY2xhc3M9InBvc3QtZmxleCI+DQoJCQkJCQkJCQk8dGFibGUgY2xhc3M9InMtdGl0bGUiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tZ2xvYmUiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuWbvemZheagh+WHhuWIhuexu+WPt++8iElDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPjY3LjIwMC4xMDwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXNjcmVlbnNob3QiPjwvc3Bhbj4mbmJzcDsNCgkJCQkJCQkJCQkJCTxzcGFuPuS4reWbveagh+WHhuWIhuexu+WPt++8iENDU++8iTwvc3Bhbj4NCgkJCQkJCQkJCQkJCTxzcGFuPlgxNDwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQkJPHRkPg0KCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9InMtc3RhdHVzIGxhYmVsIGxhYmVsLWRlZmF1bHQiPjwvc3Bhbj4NCgkJCQkJCQkJCQkJPC90ZD4NCgkJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQkJPC90YWJsZT4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQkJPGRpdj4NCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7oi7HmlofmoIfpopg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCVJhcGVzZWVkIG9pbA0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYSBtZWRpYS1pbm5lciI+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1sZWZ0IG1lZGlhLW1pZGRsZSI+DQoJCQkJCQkJCQkJPHNwYW4+5Yi25L+u6K6iPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJtZWRpYS1ib2R5Ij4NCgkJCQkJCQkJCQk8c3Bhbj4NCgkJCQkJCQkJCQkNCgkJCQkJCQkJCQnkv67orqINCgkJCQkJCQkJCQk8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7moIflh4bnvJblj7c8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMSI+PHNhY2luZm8+R0I8L3NhY2luZm8+PHNhY2luZm8+Lzwvc2FjaW5mbz48c2FjaW5mbz5UPC9zYWNpbmZvPiAxNTM2LTIwMTg8L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7lvZLlj6PljZXkvY08L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTxzcGFuIHJpZD0iMiI+5YWo5Zu957Ku5rK55qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaPC9zcGFuPg0KCQkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhIG1lZGlhLWlubmVyIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWxlZnQgbWVkaWEtbWlkZGxlIj4NCgkJCQkJCQkJCQk8c3Bhbj7pobnnm67lkajmnJ88L3NwYW4+DQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9Im1lZGlhLWJvZHkiPg0KCQkJCQkJCQkJCTM2Jm5ic3A75Liq5pyIDQoJCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJPC9kaXY+DQoJCQkJCQkJCQ0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJPC9kaXY+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InBhbmVsLWZvb3RlciI+DQoJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWNvbGxhcHNlLWRvd24gdGV4dC1zdWNjZXNzIj48L3NwYW4+Jm5ic3A7PHNwYW4+5LiL6L6+5LqOPC9zcGFuPg0KCQkJCQkJCQk8dGltZSBjbGFzcz0icG9zdC1kYXRlIiBkYXRldGltZT0iIiB0aXRsZT0iIj4yMDEwLTEyLTE3PC90aW1lPg0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJDQoJCQkJCQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCQ0KCQk8dWwgaWQ9J3BhZ2ViYXInIHN0eWxlPSJjdXJzb3I6cG9pbnRlcjsgZmxvYXQ6IHJpZ2h0OyI+PC91bD4NCgk8L2Rpdj4NCjwvZGl2Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KJChmdW5jdGlvbigpew0KCS8v54K55Ye75LqL5Lu2DQoJJCgiLnMtdGl0bGUgYSIpLmVhY2goZnVuY3Rpb24oaW5kZXgpew0KICAgICAgICB2YXIgdGlkID0gJCh0aGlzKS5hdHRyKCd0aWQnKTsNCiAgICAgICAgdmFyIHBpZCA9ICQodGhpcykuYXR0cigncGlkJyk7DQogICAgICAgIGlmKHRpZD09J0JWX0hCJykNCiAgICAgICAgCSQodGhpcykuYXR0cigiaHJlZiIsImh0dHA6Ly93d3cuc3RkLmdvdi5jbi9oYi9zZWFyY2gvc3RkSEJEZXRhaWxlZD9pZD0iK3BpZCk7DQogICAgICAgIGVsc2UNCiAgICAgICAgCWlmKHRpZD09J0JWX0RCJykNCiAgICAgICAgCQkkKHRoaXMpLmF0dHIoImhyZWYiLCJodHRwOi8vd3d3LnN0ZC5nb3YuY24vZGIvc2VhcmNoL3N0ZERCRGV0YWlsZWQ/aWQ9IitwaWQpOw0KICAgICAgICAJZWxzZSANCiAgICAgICAgCQkkKHRoaXMpLmF0dHIoImhyZWYiLCJodHRwOi8vd3d3LnN0ZC5nb3YuY24vZ2Ivc2VhcmNoL2diRGV0YWlsZWQ/aWQ9IitwaWQpOw0KICAgIH0pOw0KCXZhciBlbGVtZW50ID0gJCgnI3BhZ2ViYXInKTsvL+iOt+W+l+aVsOaNruijhemFjeeahOS9jee9rg0KCS8v5Yid5aeL5YyW5omA6ZyA5pWw5o2uDQoJdmFyIG9wdGlvbnMgPSB7DQoJICAgIGJvb3RzdHJhcE1ham9yVmVyc2lvbjozLC8v54mI5pys5Y+344CCM+S7o+ihqOeahOaYr+esrOS4ieeJiOacrA0KCSAgICBjdXJyZW50UGFnZTogMSwgLy/lvZPliY3pobXmlbANCgkgICAgbnVtYmVyT2ZQYWdlczogMTAsIC8v5pi+56S66aG156CB5pWw5qCH5Liq5pWwDQoJICAgIHRvdGFsUGFnZXM6MTY0MTMsIC8v5oC75YWx55qE5pWw5o2u5omA6ZyA6KaB55qE5oC76aG15pWwDQoJICAgIGl0ZW1UZXh0czogZnVuY3Rpb24gKHR5cGUsIHBhZ2UsIGN1cnJlbnQpIHsgIA0KCSAgICAJCS8v5Zu+5qCH55qE5pu05pS55pi+56S65Y+v5Lul5Zyo6L+Z6YeM5L+u5pS544CCDQoJICAgIHN3aXRjaCAodHlwZSkgew0KCSAgICAgICAgICAgIGNhc2UgImZpcnN0IjogIA0KCSAgICAgICAgICAgICAgICByZXR1cm4gIummlumhtSI7ICANCgkgICAgICAgICAgICBjYXNlICJwcmV2IjogIA0KCSAgICAgICAgICAgICAgICByZXR1cm4gIuS4iuS4gOmhtSI7ICANCgkgICAgICAgICAgICBjYXNlICJuZXh0IjogIA0KCSAgICAgICAgICAgICAgICByZXR1cm4gIuS4i+S4gOmhtSI7ICANCgkgICAgICAgICAgICBjYXNlICJsYXN0IjogIA0KCSAgICAgICAgICAgICAgICByZXR1cm4gIuacq+mhtSI7ICANCgkgICAgICAgICAgICBjYXNlICJwYWdlIjogIA0KCSAgICAgICAgICAgICAgICByZXR1cm4gIHBhZ2U7ICANCgkgICAgICAgIH0gICAgICAgICAgICAgICAgIA0KCSAgICB9LCANCgkgICAgdG9vbHRpcFRpdGxlczogZnVuY3Rpb24gKHR5cGUsIHBhZ2UsIGN1cnJlbnQpIHsNCgkJCS8v5aaC5p6c5oOz6KaB5Y675o6J6aG156CB5pWw5a2X5LiK6Z2i55qE6aKE6KeI5Yqf6IO977yM5YiZ5Zyo5q2k5pON5L2c44CC5L6L5aaC77ya5Y+v5Lul55u05o6lcmV0dXJu44CCDQoJICAgICAgICBzd2l0Y2ggKHR5cGUpIHsNCgkgICAgICAgICAgICBjYXNlICJmaXJzdCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAi6Lez6L2s5Yiw6aaW6aG1IjsNCgkgICAgICAgICAgICBjYXNlICJwcmV2IjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuICLot7PovazliLDkuIrkuIDpobUiOw0KCSAgICAgICAgICAgIGNhc2UgIm5leHQiOg0KCSAgICAgICAgICAgICAgICByZXR1cm4gIui3s+i9rOWIsOS4i+S4gOmhtSI7DQoJICAgICAgICAgICAgY2FzZSAibGFzdCI6DQoJICAgICAgICAgICAgICAgIHJldHVybiAi6Lez6L2s5Yiw5pyA5ZCO5LiA6aG1IjsNCgkgICAgICAgICAgICBjYXNlICJwYWdlIjoNCgkgICAgICAgICAgICAgICAgcmV0dXJuIChwYWdlID09PSBjdXJyZW50KSA/ICLlvZPliY3pobUgIiArIHBhZ2UgOiAi6Lez6L2s5YiwICIgKyBwYWdlOw0KCSAgICAgICAgfQ0KCSAgICB9LA0KCSAgICBvblBhZ2VDbGlja2VkOiBmdW5jdGlvbiAoZSwgb3JpZ2luYWxFdmVudCwgdHlwZSwgcGFnZSkgeyAgDQoJICAgICAgICB0b3AucGFnZVRvcCgpOw0KCSAgICAgICAgZG9jdW1lbnQubG9jYXRpb24gPSBjaGFuZ2VVUkxBcmcoZG9jdW1lbnQubG9jYXRpb24uaHJlZiwicGFnZU5vIixwYWdlKTsNCgkgICAgfQ0KCX07DQoJaWYoTnVtYmVyKCIxNjQxMjciKT4wKQ0KCQllbGVtZW50LmJvb3RzdHJhcFBhZ2luYXRvcihvcHRpb25zKTsJLy/ov5vooYzliJ3lp4vljJYNCgkvL+iuvue9rmlmcmFtZemrmOW6pg0KCXNldEhlaWdodCgpOw0KfSk7DQpmdW5jdGlvbiBzZXRIZWlnaHQoKXsNCgl2YXIgYmggPSAkKCIuY29udGFpbmVyIikuaGVpZ2h0KCk7DQogIAkkKCcjbXlpZnJhbWUnLCB3aW5kb3cucGFyZW50LmRvY3VtZW50KS5oZWlnaHQoYmgpOw0KfSANCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg==
37
+ http_version:
38
+ recorded_at: Thu, 18 Oct 2018 16:41:23 GMT
39
+ - request:
40
+ method: get
41
+ uri: http://www.std.gov.cn/gb/search/gbDetailed?id=71F772D82C02D3A7E05397BE0A0AB82A
42
+ body:
43
+ encoding: US-ASCII
44
+ string: ''
45
+ headers:
46
+ Accept-Encoding:
47
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
48
+ Accept:
49
+ - "*/*"
50
+ User-Agent:
51
+ - Ruby
52
+ response:
53
+ status:
54
+ code: 200
55
+ message: ''
56
+ headers:
57
+ Set-Cookie:
58
+ - JSESSIONID=A130D7C70B8C7FE5E4D4100B5BF411EF;path=/;HttpOnly
59
+ Content-Type:
60
+ - text/html;charset=UTF-8
61
+ Content-Language:
62
+ - zh-CN
63
+ Transfer-Encoding:
64
+ - chunked
65
+ Vary:
66
+ - Accept-Encoding
67
+ Date:
68
+ - Thu, 18 Oct 2018 16:41:15 GMT
69
+ body:
70
+ encoding: ASCII-8BIT
71
+ string: !binary |-
72
+ DQoNCg0KDQoNCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIi8+DQo8dGl0bGU+5Zu95a625qCH5YeGIC0g5YWo5Zu95qCH5YeG5L+h5oGv5YWs5YWx5pyN5Yqh5bmz5Y+wPC90aXRsZT4NCjxsaW5rIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvYm9vdHN0cmFwL2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2Nzcy9pbmRleC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vY3NzL3NvY2lhbFB1YmxpY2l0eS5jc3MiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9jc3MvZGV0YWlsLmNzcyIgdHlwZT0idGV4dC9jc3MiIC8+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcmVzb3VyY2VzL2pxdWVyeS9qcXVlcnktMS45LjEubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvYm9vdHN0cmFwL2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2pzL3NvY2lhbFB1YmxpY2l0eS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vanMvZGV0YWlsLmpzIj48L3NjcmlwdD4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kOiNmNWY1ZjU7Ij4NCg0KDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9qcy9sYXllci9sYXllci5qcyI+PC9zY3JpcHQ+DQo8c3R5bGU+DQoubWFpbi1ib2R5IHsNCglwYWRkaW5nOjE1cHg7DQp9DQouYnMtZG9jcy1uYXYgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTYzZDdjOw0KfQ0KLm5hdmJhci10b2dnbGUgew0KCW1hcmdpbi1yaWdodDowICFpbXBvcnRhbnQ7DQp9IA0KLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsNCn0NCi5uYXYtbWVudSB7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwNWRhODsNCglvdmVyZmxvdzpoaWRkZW47DQp9DQoubmF2LW1lbnUgdWx7DQoJbWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnQ7DQoJIHBhZGRpbmctbGVmdDogMDsNCn0NCi5uYXZiYXItdG9nZ2xlew0KCXBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7DQoJcmlnaHQ6NnB4Ow0KCWN1cnNvcjpwb2ludGVyOw0KfQ0KLm5hdmJhci10b2dnbGU6aG92ZXJ7DQoJYmFja2dyb3VuZC1jb2xvcjogIzQxOGVkZTsNCn0NCi5uYXYtbWVudSB1bCBsaXsNCgljdXJzb3I6cG9pbnRlcjsNCglsaXN0LXN0eWxlOiBub25lOw0KCXdpZHRoOiA5NnB4Ow0KCXRleHQtYWxpZ246IGNlbnRlcjsNCglmbG9hdDogbGVmdDsNCgloZWlnaHQ6IDQzcHg7DQogICAgbGluZS1oZWlnaHQ6IDQzcHg7DQogICAgY29sb3I6ICNmZmY7DQogICAgbWFyZ2luLXJpZ2h0OiA3cHg7DQogICAgZm9udC1zaXplOiAxNnB4Ow0KfQ0KLm5hdi1tZW51IHVsIGxpOmhvdmVyew0KCWJhY2tncm91bmQtY29sb3I6ICMzMzhlZmY7DQp9DQoubmF2LW1lbnUgdWwgbGkgYSB7DQogICAgY29sb3I6ICNmZmY7DQp9DQoubmF2LW1lbnUgdWwgbGkgYTpob3ZlciwubmF2LW1lbnUgbGkgYTpmb2N1cywubmF2LW1lbnUgbGkgYTpsaW5rew0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCi5uYXYtbWVudSAubmF2X2luIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY4OWViOw0KfQ0KDQoNCg0KQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCl7DQoJLm5hdi1tZW51IHVsIGxpIHsNCgkgICAgd2lkdGg6IDg0cHg7DQoJfQkNCn0NCkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkgeyANCgkubmF2LW1lbnUgdWwgbGkgew0KCSAgICB3aWR0aDogNjhweDsNCiAgICAJbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgCWZvbnQtc2l6ZTogMTRweDsNCgl9DQoJI2xvZ2luLWFyZWF7DQoJCXRvcDogNTlweCAhaW1wb3J0YW50Ow0KICAgIAlyaWdodDogMjRweCAhaW1wb3J0YW50Ow0KCX0JDQp9DQpAbWVkaWEgKG1heC13aWR0aDogMzY4cHgpIHsNCgkubmF2YmFyLWJyYW5kIHNtYWxsew0KCQlkaXNwbGF5Om5vbmU7DQoJfQ0KfQ0KQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7IA0KCS5tYWluLWJvZHkgew0KCSAgIHBhZGRpbmc6MDsNCgl9DQoJLm5hdi1tZW51LXNob3d7DQoJCWRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsNCgkJaGVpZ2h0OjE1MHB4IWltcG9ydGFudDsNCgl9DQoJLm5hdi1tZW51IHsNCgkJaGVpZ2h0OjA7DQoJICAgCWJhY2tncm91bmQtY29sb3I6ICMzZjc1Yjc7DQoJICAgCXRyYW5zaXRpb246aGVpZ2h0IDUwMG1zOw0KCSAgIAktbW96LXRyYW5zaXRpb246aGVpZ2h0IDUwMG1zOyAvKiBGaXJlZm94IDQgKi8NCgkJLXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCA1MDBtczsgLyogU2FmYXJpIGFuZCBDaHJvbWUgKi8NCgkJLW8tdHJhbnNpdGlvbjpoZWlnaHQgNTAwbXM7IC8qIE9wZXJhICovDQoJfQ0KCS5uYXYtbWVudSAubmF2X2luIHsNCgkgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzOGVmZjsNCgl9IA0KCS5uYXYtbWVudSB1bCBsaSB7DQoJCWRpc3BsYXk6YmxvY2s7DQoJICAgIHdpZHRoOiAzMy4zMzMzMyU7DQoJICAgIGhlaWdodDogNTBweDsNCgkgICAgbGluZS1oZWlnaHQ6IDUwcHg7DQoJICAgIGZvbnQtc2l6ZTogMTZweDsNCgkgICAgbWFyZ2luLXJpZ2h0OjA7DQoJICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7DQoJICAgIGZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7DQoJfQ0KCS5uYXYtbWVudSB1bCBsaTpudGgtY2hpbGQoLTFuKzQpew0KCQlib3JkZXItdG9wOjA7DQoJfQ0KCS5uYXYtbWVudSB1bCBsaSBhIHsNCgkgICAgY29sb3I6IHdoaXRlOw0KCX0NCgkuaGVhZGVyLWNhcm91c2VsIHsNCiAgICAJYm9yZGVyOiAwOw0KCX0NCgkjdG9wLWJnIHsNCgkJYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9sb2dvaW1nLmpwZykgcmlnaHQgLTExMHB4IGNlbnRlciBuby1yZXBlYXQgIzE4N2VkMCAhaW1wb3J0YW50Ow0KCX0NCgkjbG9naW4tYXJlYXsNCgkJZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KCX0NCgkNCn0NCjwvc3R5bGU+DQo8IS0tIFBIUFN0YXQgU3RhcnQgLS0+DQo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiBpZD0icGhwc3RhdF9qc19pZF8xMDAwMjk1MCI+DQp2YXIgX3RyYWNrRGF0YVR5cGUgPSAnd2ViJzsNCnZhciBfdHJhY2tEYXRhID0gX3RyYWNrRGF0YSB8fCBbXTsNCihmdW5jdGlvbigpIHsNCnZhciBwaHBzdGF0X2pzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHBocHN0YXRfanMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOyANCnBocHN0YXRfanMuY2hhcnNldCA9ICd1dGYtOCc7IHBocHN0YXRfanMuaWQgPSAncGhwc3RhdF9hc3luY19qc19pZF8xMDAwMjk1MCc7IHBocHN0YXRfanMuYXN5bmMgPSB0cnVlOw0KcGhwc3RhdF9qcy5zcmMgPSAnLy9zMS50b3BzdGF0LmNuL2NvdW50LzEwMDAyOTUwLzEwMDAyOTUwLmpzJzsNCnZhciBwaHBzdGF0X2NqcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgcGhwc3RhdF9janMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocGhwc3RhdF9qcywgcGhwc3RhdF9janMpOw0KfSkoKTsNCjwvc2NyaXB0Pg0KPCEtLS9QSFBTdGF0IEVuZCAtLT4NCjxzY3JpcHQ+DQokKGZ1bmN0aW9uKCl7DQoJZG9jdW1lbnQub25rZXlkb3duID0gZnVuY3Rpb24oZSl7DQoJCSAgIGlmKCFlKXsNCgkJICAgIGUgPSB3aW5kb3cuZXZlbnQ7DQoJCSAgIH0NCgkJICAgaWYoKGUua2V5Q29kZSB8fCBlLndoaWNoKSA9PSAxMyl7DQoJCQkJLy/nmbvpmYYNCgkJCQkkKCcuYnRuU3VtaXQnKS5jbGljaygpOw0KCQkgICB9DQoJfQkNCgkNCgkkKCcubmF2YmFyLXRvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCSQoJy5uYXYtbWVudScpLnRvZ2dsZUNsYXNzKCJuYXYtbWVudS1zaG93Iik7DQoJfSk7DQoJJCgnLm5hdi1tZW51IGxpJykuY2xpY2soZnVuY3Rpb24oKXsNCgkJdmFyIHRhcmdldCA9ICQodGhpcykuZmluZCgiYSIpLmF0dHIoJ3RhcmdldCcpOw0KCQl2YXIgaHJlZiA9ICQodGhpcykuZmluZCgiYSIpLmF0dHIoJ2hyZWYnKQ0KCQlpZih0YXJnZXQ9PW51bGx8fHRhcmdldD09Jycpew0KCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmOw0KCQl9IGVsc2Ugew0KCQkJd2luZG93Lm9wZW4oaHJlZik7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0pOw0KCQ0KCSQuYWpheFNldHVwICh7DQogICAgICAgIGNhY2hlOiBmYWxzZSwgLy/lhbPpl61BSkFY57yT5a2YDQogICAgICAgIGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsICANCiAgICAgICAgY29tcGxldGU6ZnVuY3Rpb24oWE1MSHR0cFJlcXVlc3QsdGV4dFN0YXR1cyl7ICANCiAgICAgICAgICAgIC8v6YCa6L+HWE1MSHR0cFJlcXVlc3Tlj5blvpflk43lupTlpLTvvIxzZXNzaW9uc3RhdHVz77yMICANCiAgICAgICAgICAgIHZhciBzZXNzaW9uc3RhdHVzPVhNTEh0dHBSZXF1ZXN0LmdldFJlc3BvbnNlSGVhZGVyKCJzZXNzaW9uc3RhdHVzIik7ICAgDQogICAgICAgICAgICBpZihzZXNzaW9uc3RhdHVzPT0idGltZW91dCIpeyAgDQogICAgICAgICAgICAgICBsYXllci5tc2coJ+eZu+W9lei2heaXticpOw0KICAgICAgICAgICAgICAgbG9naW5Qb3AoKTsNCiAgICAgICAgICAgIH0gIA0KICAgICAgICB9ICANCiAgICB9KTsNCn0pOw0KDQoNCmZ1bmN0aW9uIGdldExvZ2luZWRBcmVhKGRhdGEpew0KCXZhciBsb2dpbmVkQXJlYSA9ICc8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcHJvcG9zYWwvcHJvcG9zYWxRdWVyeSIgc3R5bGU9ImNvbG9yOiAjZmZmOyI+5oiR55qE6LSm5oi3PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9nb3V0KCkiIHN0eWxlPSJjb2xvcjogI2YwMDsiIHRpdGxlPSLms6jplIAiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW9mZiI+PC9zcGFuPjwvYT4nDQoJCSsnPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZV91c2VybmFtZSIgdmFsdWU9JytkYXRhLnVzZXJuYW1lKycgc3R5bGU9ImRpc3BsYXk6bm9uZSIgLz4gICcNCgkJKyc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlX3JlYWxuYW1lIiB2YWx1ZT0nK2RhdGEucmVhbG5hbWUrJyBzdHlsZT0iZGlzcGxheTpub25lIiAvPiAgJw0KCQkrJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVfbW9iaWxlIiAgIHZhbHVlPScrZGF0YS5tb2JpbGUrJyAgIHN0eWxlPSJkaXNwbGF5Om5vbmUiIC8+ICAnDQoJCSsnPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZV9lbWFpbCIgICAgdmFsdWU9JytkYXRhLmVtYWlsKycgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSIgLz4gICcNCgkJKyc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlX3Jlc291cmNlIiB2YWx1ZT0nK2RhdGEucmVzb3VyY2UrJyBzdHlsZT0iZGlzcGxheTpub25lIiAvPiAgJzsNCglyZXR1cm4gbG9naW5lZEFyZWE7DQp9DQoNCnZhciBpc0xvZ29uID0gISgnJz09JycpOw0KLyrnmbvlvZXnirbmgIHnm5HmjqcqLw0KJChmdW5jdGlvbigpew0KCQ0KCXZhciB1YWNTZXJ2ZXJVcmwgPSAnJzsNCgl2YXIgY2FzU2VydmVyVXJsID0gJyc7DQoJDQoJdmFyIHNhY1VhY1NlcnZlclVybCA9ICdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuL3VhYyc7DQoJdmFyIHNhY0Nhc1NlcnZlclVybCA9ICdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuJzsNCgkNCgkNCgkvL+mmluWFiOajgOa1i+ekvuS8muWFrOS8l+eZu+W9leeKtuaAgQ0KCWlmKCFpc0xvZ29uKXsNCgkJDQoJCXZhciByZXF1ZXN0VVJJID0gJyc7DQoJCQ0KCQkkLmFqYXgoew0KCQkJdHlwZTogIkdFVCIsDQoJCQl1cmw6IHVhY1NlcnZlclVybCArICIvY2xpZW50TG9naW4vY2hlY2tVdWlkLmRvIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCWlmKGRhdGEucmVzdWx0KSB7DQoJCQkJCXZhciB1dWlkID0gKGRhdGEudXVpZCk7DQoJCQkJCWlmKHV1aWQ9PW51bGx8fHV1aWQ9PSIiKXsNCgkJCQkJCQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCSQuYWpheCh7DQoJCQkJCQkJdHlwZTogIkdFVCIsDQoJCQkJCQkJdXJsOiAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvbG9naW5CeVVVSUQuZG8iLA0KCQkJCQkJCWRhdGE6eyd1dWlkJzp1dWlkfSwNCgkJCQkJCQlkYXRhVHlwZTogJ0pTT04nLA0KCQkJCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKGdldExvZ2luZWRBcmVhKGRhdGEpKTsNCgkJCQkJCQkJCS8vd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL3d3dy5zdGQuZ292LmNuIityZXF1ZXN0VVJJOw0KCQkJCQkJCQl9DQoJCQkJCQkJCS8qIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsgKi8NCgkJCQkJCQl9DQoJCQkJCQl9KTsNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJDQoJCQkJfSBlbHNlIHsNCgkJCQkJLy/msqHmnInmo4DmtYvliLB1dWlk77yM5YiZ5byA5aeL5qOA5rWLc2FjDQoJCQkJCSQuYWpheCh7DQoJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCXVybDogc2FjVWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9jaGVja1V1aWQuZG8iLA0KCQkJCQkJZGF0YVR5cGU6ICdKU09OUCcsDQoJCQkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQkJCWpzb25wOiAianNvbnBDYWxsYmFjayIsDQoJCQkJCQl0aW1lb3V0OjEwMDAsDQoJCQkJCQlzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCQkJaWYoZGF0YS5yZXN1bHQpIHsNCgkJCQkJCQkJdmFyIHV1aWQgPSAoZGF0YS51dWlkKTsNCgkJCQkJCQkJaWYodXVpZD09bnVsbHx8dXVpZD09IiIpew0KCQkJCQkJCQkJDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJLy/ojrflj5bnlKjmiLflr7nosaHvvIzmiafooYznmbvlvZUNCgkJCQkJCQkJCSQuYWpheCh7DQoJCQkJCQkJCQkJdHlwZTogIkdFVCIsDQoJCQkJCQkJCQkJdXJsOiAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvc2FjTG9naW5CeVVVSUQuZG8iLA0KCQkJCQkJCQkJCWRhdGE6eyd1dWlkJzp1dWlkfSwNCgkJCQkJCQkJCQlkYXRhVHlwZTogJ0pTT04nLA0KCQkJCQkJCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJCQkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKGdldExvZ2luZWRBcmVhKGRhdGEpKTsNCgkJCQkJCQkJCQkJCS8vd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KDQoJCQkJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL3d3dy5zdGQuZ292LmNuIityZXF1ZXN0VVJJOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCS8qIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsgKi8NCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9KTsNCgkJCQkJCQkJfQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCWlzSW50ZXJjZXB0ZWQoKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0pLmZhaWwoZnVuY3Rpb24oanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKXsNCgkJCQkJCWlzSW50ZXJjZXB0ZWQoKTsNCgkJCQkJfSk7DQoJCQkJCQ0KCQkJCQkNCgkJCQl9DQoJCQl9DQoJCX0pOwkNCg0KCX1lbHNlew0KCQkvL+ajgOa1i+azqOmUgA0KCQkkLmFqYXgoew0KCQkJdHlwZTogIkdFVCIsDQoJCQl1cmw6IHVhY1NlcnZlclVybCArICIvY2xpZW50TG9naW4vY2hlY2tVdWlkLmRvIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCWlmKGRhdGEucmVzdWx0KXsNCgkJCQkJdmFyIHV1aWQgPSAoZGF0YS51dWlkKTsNCgkJCQkJaWYodXVpZD09bnVsbHx8dXVpZD09IiIpew0KCQkJCQkJbG9nb3V0KCk7DQoJCQkJCX0NCgkJCQl9ZWxzZXsNCgkJCQkJLy/msqHmnInmo4DmtYvliLB1dWlk77yM5YiZ5byA5aeL5qOA5rWLc2FjDQoJCQkJCSQuYWpheCh7DQoJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCXVybDogc2FjVWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9jaGVja1V1aWQuZG8iLA0KCQkJCQkJZGF0YVR5cGU6ICdKU09OUCcsDQoJCQkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQkJCWpzb25wOiAianNvbnBDYWxsYmFjayIsDQoJCQkJCQl0aW1lb3V0OjEwMDAsDQoJCQkJCQlzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCQkJaWYoZGF0YS5yZXN1bHQpIHsNCgkJCQkJCQkJaWYoZGF0YS51dWlkPT1udWxsfHxkYXRhLnV1aWQ9PSIiKXsNCgkJCQkJCQkJCWxvZ291dCgpOw0KCQkJCQkJCQl9DQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCWxvZ291dCgpOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfSkuZmFpbChmdW5jdGlvbihqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pew0KCQkJCQkJbG9nb3V0KCk7DQoJCQkJCX0pOw0KCQkJCX0NCgkJCX0NCgkJfSk7DQoJfQ0KCQ0KCQ0KfSk7DQoNCg0KDQovL+ebkeaOp+aYr+WQpuiiq+aLpuaIquWZqOaLpuWHug0KZnVuY3Rpb24gaXNJbnRlcmNlcHRlZCgpew0KCXZhciBpc0ludGVyY2VwdGVkID0gISgnJz09JycpOw0KCWlmKGlzSW50ZXJjZXB0ZWQpew0KCQlsb2dpbkxheWVyKCk7DQoJfQ0KfQ0KDQoNCnZhciBJbnRlclZhbE9iajsgLy90aW1lcuWPmOmHj++8jOaOp+WItuaXtumXtA0KdmFyIGNvdW50ID0gMTgwOyAvL+mXtOmalOWHveaVsO+8jDHnp5LmiafooYwNCnZhciBjdXJDb3VudDsvL+W9k+WJjeWJqeS9meenkuaVsA0KDQpmdW5jdGlvbiBzZW5kTWVzc2FnZShudW0pew0KCWN1ckNvdW50ID0gbnVtOw0KCS8v6K6+572uYnV0dG9u5pWI5p6c77yM5byA5aeL6K6h5pe2DQoJJCgiI2dldFBDb2RlSW5wdXQiKS5hdHRyKCJkaXNhYmxlZCIsICJkaXNhYmxlZCIpOw0KCSQoIiNnZXRQQ29kZUlucHV0IikuaHRtbChjdXJDb3VudCArICLnp5IiKTsNCglJbnRlclZhbE9iaiA9IHdpbmRvdy5zZXRJbnRlcnZhbChTZXRSZW1haW5UaW1lLCAxMDAwKTsgLy/lkK/liqjorqHml7blmajvvIwx56eS5omn6KGM5LiA5qyhDQp9DQoNCi8vdGltZXLlpITnkIblh73mlbANCmZ1bmN0aW9uIFNldFJlbWFpblRpbWUoKSB7DQogICAgaWYgKGN1ckNvdW50ID09IDApIHsgICAgICAgICAgICAgICAgDQogICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKEludGVyVmFsT2JqKTsvL+WBnOatouiuoeaXtuWZqA0KICAgICAgICAkKCIjZ2V0UENvZGVJbnB1dCIpLnJlbW92ZUF0dHIoImRpc2FibGVkIik7Ly/lkK/nlKjmjInpkq4NCiAgICAgICAgJCgiI2dldFBDb2RlSW5wdXQiKS5odG1sKCLojrflj5bpqozor4HnoIEiKTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGN1ckNvdW50LS07DQogICAgICAgICQoIiNnZXRQQ29kZUlucHV0IikuaHRtbChjdXJDb3VudCArICLnp5IiKTsNCiAgICB9DQp9DQoNCi8v5YGc5q2i6K6h5pe25ZmoDQpmdW5jdGlvbiBvdmVyUmVtYWluVGltZSgpew0KCXdpbmRvdy5jbGVhckludGVydmFsKEludGVyVmFsT2JqKTsvL+WBnOatouiuoeaXtuWZqA0KICAgICQoIiNnZXRQQ29kZUlucHV0IikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKTsNCiAgICAkKCIjZ2V0UENvZGVJbnB1dCIpLmh0bWwoIuiOt+WPlumqjOivgeeggSIpOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ29kZSgpew0KCXZhciBpbWdOb2RlID0gJCgiLmxheXVpLXZpbWciKTsNCgl2YXIgc3JjU3RyID0gImh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldC92Y29kZS5kbz90PSIrIE1hdGgucmFuZG9tKCk7DQoJaW1nTm9kZS5hdHRyKCJzcmMiLCBzcmNTdHIpOw0KfQ0KDQpmdW5jdGlvbiBnZXRQaG9uZU1zZygpew0KCQ0KCQ0KCQ0KCXZhciB2Y29kZSA9ICQudHJpbSgkKCcjdmNvZGUnKS52YWwoKSk7DQoJDQoJDQoJaWYodmNvZGU9PW51bGx8fHZjb2RlPT0iIil7DQoJCWxheWVyLnRpcHMoJ+ivt+i+k+WFpeWbvueJh+mqjOivgeeggScsICcjdmNvZGUnLCB7DQoJCQkgIHRpcHM6IFsxLCAnI2YwMGUwZSddLA0KCQkJICB0aW1lOiAzMDAwDQoJCX0pOw0KCQlyZXR1cm47DQoJfQkNCg0KCXZhciB1c2VybmFtZSA9ICQudHJpbSgkKCcjY2VsbHBob25lJykudmFsKCkpOw0KCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQlsYXllci50aXBzKCfor7fovpPlhaXnlKjmiYvmnLrlj7cnLCAnI2NlbGxwaG9uZScsIHsNCgkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkgIHRpbWU6IDMwMDANCgkJCX0pOw0KCQlyZXR1cm47DQoJfQkNCgkNCgl2YXIgcmVzdWx0ID0gZ2V0UENvZGUoJ21Mb2dpbkZvcm0nKTsNCgkNCgkNCgkNCglpZiAocmVzdWx0LnN1Y2Nlc3M9PXRydWUpIHsNCgkJCXNlbmRNZXNzYWdlKHJlc3VsdC5kYXRldGltZSk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJfWVsc2V7DQoJCQlsYXllci5tc2cocmVzdWx0LmVycm9yTWVzc2FnZSwge2ljb246IDV9KTsNCgkJCXJldHVybiBmYWxzZTsNCgl9DQp9DQp2YXIgbG9naW5IdG1sID0gJzxkaXY+JysNCic8ZGl2PicrDQonPHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMgbmF2LWp1c3RpZmllZCBzZWFyY2gtaGVhZCI+JysNCgknPGxpIG9uY2xpY2s9ImNoYW5nZVRhYigxKSIgY2xhc3M9ImxvZ2luSGVhZCBhY3RpdmUiPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+56S+5Lya5YWs5LyXPC9hPjwvbGk+JysNCgknPGxpIG9uY2xpY2s9ImNoYW5nZVRhYigyKSIgY2xhc3M9ImxvZ2luSGVhZCI+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5TQUPnlKjmiLc8L2E+PC9saT4nKw0KJzwvdWw+JysNCic8ZGl2IGNsYXNzPSJzZWFyY2gtYm9keSI+JysNCgkvL+ekvuS8muWFrOS8lw0KCSc8ZGl2IGNsYXNzPSJzZWFyY2gtZm9ybSBsb2dpbkJvZHkiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPicrDQoJJyAgPGRpdiBzdHlsZT0ibWFyZ2luOiAyNXB4OyI+JysNCgknCTxsYWJlbCBjbGFzcz0icmFkaW8taW5saW5lIj4nKw0KCScJICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImxvZ2luU2VsZWN0IiBvbmNsaWNrPSJjaGFuZ2VMb2dpblR5cGUoMSkiICB2YWx1ZT0icCIgY2hlY2tlZD0iY2hlY2tlZCI+IOWvhueggeeZu+W9lSAnKw0KCScJPC9sYWJlbD4nKw0KCScJPGxhYmVsIGNsYXNzPSJyYWRpby1pbmxpbmUiPicrDQoJJwkgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ibG9naW5TZWxlY3QiIG9uY2xpY2s9ImNoYW5nZUxvZ2luVHlwZSgyKSIgIiB2YWx1ZT0ibSI+IOefreS/oeeZu+W9lSAnKw0KCScJPC9sYWJlbD4nKw0KCScgIDwvZGl2PicrDQoJLy/lr4bnoIHnmbvlvZUNCgknICA8ZGl2IHN0eWxlPSJtYXJnaW46IDI1cHg7Ij4nKw0KCScgIDxkaXYgaWQ9InBMb2dpbiI+JysNCgknICAgICAgPGZvcm0gaWQ9InBMb2dpbkZvcm0iIGFjdGlvbj0iIyIgbWV0aG9kPSJwb3N0Ij4nKw0KCScgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+JysNCiAgICAnICAgICAgICAgIDxsYWJlbD7nlKjmiLflkI08L2xhYmVsPicrDQogICAgJyAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InVzZXJuYW1lMSIgcGxhY2Vob2xkZXI9Iuivt+WcqOatpOi+k+WFpeeUqOaIt+WQjSIgbmFtZT0idXNlcm5hbWUiLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+5a+G56CBPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGFzc3dvcmQxIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl5a+G56CBIiBuYW1lPSJwYXNzd29yZCIgLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCiAgICAnICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIHJhZGl1cyBmb3JtLXN1Ym1pdCBidG5TdW1pdDEgYnRuU3VtaXQiICB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImRvU3VibWl0QnlQd2QoKSI+55m7IOW9lTwvYnV0dG9uPicrDQogICAgJyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9maW5kUHdkIiB0YXJnZXQ9Il9ibGFuayI+IOW/mOiusOWvhuegge+8nyAgPC9hPicrDQoJJyAgICAgIDwvZm9ybT4nKw0KCScgIDwvZGl2PicrDQoJLy/nn63kv6HnmbvlvZUNCgknICA8ZGl2IGlkPSJtTG9naW4iIHN0eWxlPSJkaXNwbGF5OiBub25lIj4nKw0KCScgICAgICA8Zm9ybSBpZD0ibUxvZ2luRm9ybSIgYWN0aW9uPSIjIiBtZXRob2Q9InBvc3QiPicrDQoJJyAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4nKw0KICAgICcgICAgICAgICAgPGxhYmVsPuaJi+acuuWPt+eggTwvbGFiZWw+JysNCiAgICAnICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iY2VsbHBob25lIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl5omL5py65Y+3IiBuYW1lPSJhY2NvdW50Ii8+JysNCiAgICAnICAgICAgICAgIDwvZGl2PicrCQkJDQoJJyAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4nKw0KICAgICcgICAgICAgICAgPGxhYmVsPuefreS/oemqjOivgTwvbGFiZWw+JysNCiAgICAnICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+JysNCiAgICAnICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJwQ29kZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBjb2RlIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl55+t5L+h6aqM6K+B56CBIiBuYW1lPSJwY29kZSIvPjwvZGl2PicrDQogICAgJyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZ2V0UENvZGVJbnB1dCIgb25jbGljaz0iZ2V0UGhvbmVNc2coKSIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG5jeCIgc3R5bGU9ImZsb2F0OiByaWdodDsgbGluZS1oZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDBweDsiPuiOt+WPlumqjOivgeeggTwvYnV0dG9uPiA8L2Rpdj4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCiAgICAnICAgICAgICAgIDwvZGl2PicrDQogICAgJyAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPicrDQoJJyAgICAgIAkgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTgiPjxpbnB1dCAgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InZjb2RlIiBuYW1lPSJyYW5kIiBwbGFjZWhvbGRlcj0i6aqM6K+B56CBIiB2YWx1ZT0iIj48L2Rpdj4nKw0KCScgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij48aW1nIGNsYXNzPSJsYXl1aS12aW1nIiBzdHlsZT0iaGVpZ2h0OiAzNHB4OyBmbG9hdDogcmlnaHQ7IiB0aXRsZT0i54K55Ye75pu05o2iIiBvbmNsaWNrPSJjaGFuZ2VDb2RlKCk7IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldC92Y29kZS5kbyI+PC9kaXY+JysNCiAgICAnICAgICAgICAgIDwvZGl2Pjxici8+JysJDQogICAgJyAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciByYWRpdXMgZm9ybS1zdWJtaXQgYnRuU3VtaXQyIiAgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJkb1N1Ym1pdEJ5UGhvbmUoKSI+55m7IOW9lTwvYnV0dG9uPicrDQogICAgJyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9maW5kUHdkIiB0YXJnZXQ9Il9ibGFuayI+IOW/mOiusOWvhuegge+8nyAgPC9hPicrCQkJCSAgICANCgknICAgICAgPC9mb3JtPicrDQoJJyAgPC9kaXY+JysNCgknICA8L2Rpdj4nKw0KCSc8L2Rpdj4nKw0KCS8vU0FD55So5oi35YWs5LyXDQoJJzxkaXYgIGNsYXNzPSJzZWFyY2gtZm9ybSBsb2dpbkJvZHkiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JysNCgknJysgICAgICAgICAgDQoJJyAgPGRpdiBzdHlsZT0ibWFyZ2luOiAyNXB4OyI+JysNCgknICA8ZGl2IGlkPSJzYWNMb2dpbiIgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7Ij4nKw0KCScgICAgICA8Zm9ybSBpZD0ic2FjTG9naW5Gb3JtIiBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCI+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+55So5oi35ZCNPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhY2NvdW50MyIgY2xhc3M9ImZvcm0tY29udHJvbCIgcGxhY2Vob2xkZXI9Iuivt+i+k+WFpVNBQ+i0puWPtyIgbmFtZT0iYWNjb3VudDMiLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+5a+G56CBPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icENvZGUzIiBuYW1lPSJwQ29kZTMiIHBsYWNlaG9sZGVyPSLor7flnKjmraTovpPlhaXlr4bnoIEiIG5hbWU9InBhc3N3b3JkIiAvPicrDQogICAgJyAgICAgICAgICA8L2Rpdj4nKw0KICAgICcgICAgICAgICAgPGlucHV0IGNsYXNzPSJidG4gYnRuLWRhbmdlciByYWRpdXMgZm9ybS1zdWJtaXQgYnRuU3VtaXQzIiAgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJhamF4TG9naW4oXCdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuL3VhY1wnKTsiIHZhbHVlPSJTQUPnmbvlvZUiIC8+PGEgaHJlZj0iaHR0cDovL3VhYy5zYWNpbmZvLm9yZy5jbi91YWMvZm9yZ2V0L2ZpbmRpbmdQYXNzd29yZC5kbyIgdGFyZ2V0PSJfYmxhbmsiPiDlv5jorrDlr4bnoIHvvJ8gIDwvYT4nKw0KICAgICcgICAgICAgICAgJysJDQoJJyAgICAgICAgICA8UCBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogYmx1ZTsgbWluLWhlaWdodDogNTBweDsiPicrDQoJJyAgICAgICAgICA8YnI+IDxlbSBpZD0iSl9FcnJvck1zZyIgc3R5bGU9ImNvbG9yOiByZWQ7Ij48L2VtPiAnKw0KICAgICcgICAgICAgICAgPC9QPicrDQoJJyAgICAgIDwvZm9ybT4nKw0KCScgIDwvZGl2PicrICAgICAgDQoJJyAgPC9kaXY+JysgICAgICANCgknJysgICAgICAgICAgDQoJJzwvZGl2PicrICAgICAgICAgICAgICAgIA0KJzwvZGl2PicrDQonPC9kaXY+JysNCic8L2Rpdj4nOw0KZnVuY3Rpb24gbG9naW5Qb3AoKXsNCglsYXllci5vcGVuKHsNCgkJICB0eXBlOiAxLA0KCQkgIHRpdGxlOifnlKjmiLfnmbvlvZUnLA0KCQkgIGNsb3NlQnRuOmZhbHNlLA0KCQkgIHNraW46ICdsYXl1aS1sYXllci1yaW0nLCAvL+WKoOS4iui+ueahhg0KCQkgIGNvbnRlbnQ6IGxvZ2luSHRtbA0KCX0pOw0KCSQoJyN1c2VybmFtZTEnKS5mb2N1cygpOw0KfQ0KZnVuY3Rpb24gbG9naW5MYXllcigpew0KCWxheWVyLm9wZW4oew0KCQkgIHR5cGU6IDEsDQoJCSAgdGl0bGU6J+eUqOaIt+eZu+W9lScsDQoJCSAgc2hhZGVDbG9zZSA6dHJ1ZSwNCgkJICBza2luOiAnbGF5dWktbGF5ZXItcmltJywgLy/liqDkuIrovrnmoYYNCgkJICBjb250ZW50OiBsb2dpbkh0bWwNCgl9KTsNCgkkKCcjbG9naW5BVGFnJykuYmx1cigpOw0KfQ0KLy/liIfmjaJ0YWLpobXpnaINCmZ1bmN0aW9uIGNoYW5nZVRhYihudW0pew0KCSAgdmFyIGhlYWRzID0gJCgiLmxvZ2luSGVhZCIpOw0KCSAgdmFyIGJvZHlzID0gJCgiLmxvZ2luQm9keSIpOw0KCSAgZm9yKHZhciBpPTA7aTxoZWFkcy5sZW5ndGg7aSsrKXsNCgkJJChoZWFkc1tpXSkucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpOw0KCQkkKGJvZHlzW2ldKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQoJCWlmKGk9PShudW0tMSkpew0KCQkJJChoZWFkc1tpXSkuYWRkQ2xhc3MoImFjdGl2ZSIpOw0KCQkJJChib2R5c1tpXSkuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCgkJfQ0KCSAgfQ0KCSAgDQoJICANCgkgIC8v5aaC5p6cbnVt5Li6MeWImeS4uuekvuS8muWFrOS8l+eZu+mZhu+8jOWwhuWbnui9pumUrue7keWumuWIsGJ0blN1bWl0MeS4iu+8jOWQpuWImee7keWumuWIsGJ0blN1bWl0M+S4ig0KCSAgaWYobnVtPT0xKXsNCgkJICBpZigkKCIuYnRuU3VtaXQxIikuaGFzQ2xhc3MoImJ0blN1bWl0Iikpew0KCQkJICANCgkJICB9ZWxzZXsNCgkgCQkgICQoIi5idG5TdW1pdDEiKS5hZGRDbGFzcygiYnRuU3VtaXQiKTsNCgkJCSAgJCgiLmJ0blN1bWl0MiIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQkJICAkKCIuYnRuU3VtaXQzIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7IA0KCQkgIH0NCgkgIH1lbHNlew0KCQkgIGlmKCQoIi5idG5TdW1pdDMiKS5oYXNDbGFzcygiYnRuU3VtaXQiKSl7DQoJCQkgIA0KCQkgIH1lbHNlew0KCQkJICAkKCIuYnRuU3VtaXQzIikuYWRkQ2xhc3MoImJ0blN1bWl0Iik7DQoJCQkgICQoIi5idG5TdW1pdDIiKS5yZW1vdmVDbGFzcygiYnRuU3VtaXQiKTsNCgkJCSAgJCgiLmJ0blN1bWl0MSIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOyANCgkJICB9DQoJICB9DQp9DQovL+aOp+WItueZu+W9leaWueW8jw0KZnVuY3Rpb24gY2hhbmdlTG9naW5UeXBlKG51bSl7DQoJaWYobnVtPT0xKXsNCgkJJCgiI3BMb2dpbiIpLmNzcygiZGlzcGxheSIsImJsb2NrIik7DQoJCSQoIiNtTG9naW4iKS5jc3MoImRpc3BsYXkiLCJub25lIik7DQoJCQ0KCQkvL+aOp+WItuWbnui9pue7keWumg0KCQlpZigkKCIuYnRuU3VtaXQxIikuaGFzQ2xhc3MoImJ0blN1bWl0Iikpew0KCQkgIA0KCQl9ZWxzZXsNCgkgCSAgICAkKCIuYnRuU3VtaXQxIikuYWRkQ2xhc3MoImJ0blN1bWl0Iik7DQoJCSAgICAkKCIuYnRuU3VtaXQyIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7DQoJCSAgICAkKCIuYnRuU3VtaXQzIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7IA0KCQl9DQoJfQkNCglpZihudW09PTIpew0KCQkkKCIjbUxvZ2luIikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTsNCgkJJCgiI3BMb2dpbiIpLmNzcygiZGlzcGxheSIsIm5vbmUiKTsNCgkJDQoJCS8v5o6n5Yi25Zue6L2m57uR5a6aDQoJCWlmKCQoIi5idG5TdW1pdDIiKS5oYXNDbGFzcygiYnRuU3VtaXQiKSl7DQoJCSAgDQoJCX1lbHNlew0KCQkJJCgiLmJ0blN1bWl0MiIpLmFkZENsYXNzKCJidG5TdW1pdCIpOw0KCQkJJCgiLmJ0blN1bWl0MSIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQkJJCgiLmJ0blN1bWl0MyIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQl9CQkNCg0KCX0JCQ0KfQ0KLy/ojrflj5bpqozor4HnoIENCmZ1bmN0aW9uIGNoYW5nZUNvZGUoKXsNCgl2YXIgaW1nTm9kZSA9ICQoIi5sYXl1aS12aW1nIik7DQoJdmFyIHNyY1N0ciA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9nZXQvdmNvZGUuZG8/dD0iKyBNYXRoLnJhbmRvbSgpOw0KCWltZ05vZGUuYXR0cigic3JjIiwgc3JjU3RyKTsNCn0NCjwvc2NyaXB0Pg0KPCEtLeeUqOS6juekvuS8muWFrOS8l+eZu+W9leeahGpzLS0+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJdmFyIHVhY1NlcnZlclVybCA9ICcnOw0KCXZhciBjYXNTZXJ2ZXJVcmwgPSAnJzsNCgkNCglmdW5jdGlvbiBkb1N1Ym1pdEJ5UHdkKCkgew0KCQl2YXIgdXNlcm5hbWUgPSAkLnRyaW0oJCgnI3VzZXJuYW1lMScpLnZhbCgpKTsNCgkJdmFyIHB3ZCA9ICQudHJpbSgkKCcjcGFzc3dvcmQxJykudmFsKCkpOw0KCQl2YXIgc3lzdGVtQ29kZSA9ICdzeXN0ZW0wMDEtdW5pdGUtY2VydGlmaWNhdGlvbic7DQoJCXZhciB1cmwgPSB1YWNTZXJ2ZXJVcmwgKyAiL2NsaWVudExvZ2luL2FqYXhMb2dpbi5kbyI7DQoJCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQkJbGF5ZXIudGlwcygn6K+36L6T5YWl55So5oi35ZCNJywgJyN1c2VybmFtZTEnLCB7DQoJCQkJICB0aXBzOiBbMSwgJyNmMDBlMGUnXSwNCgkJCQkgIHRpbWU6IDMwMDANCgkJCQl9KTsNCgkJCXJldHVybjsNCgkJfWVsc2UgaWYocHdkPT1udWxsfHxwd2Q9PSIiKXsNCgkJCWxheWVyLnRpcHMoJ+ivt+i+k+WFpeeUqOWvhueggScsICcjcGFzc3dvcmQxJywgew0KCQkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkJICB0aW1lOiAzMDAwDQoJCQkJfSk7DQoJCQlyZXR1cm47DQoJCX1lbHNlew0KCQkJdmFyIGluZGV4ID0gbGF5ZXIubG9hZCgxLCB7DQoJCQkJICBzaGFkZTogWzAuMSwnI2ZmZiddIC8vMC4x6YCP5piO5bqm55qE55m96Imy6IOM5pmvDQoJCQl9KTsNCgkJCSQuYWpheCh7DQoJCQkJdHlwZTogIlBPU1QiLA0KCQkJCXVybDogdXJsLA0KCQkJCWRhdGE6eydzeXNkJzpzeXN0ZW1Db2RlLCd1bic6dXNlcm5hbWUsJ3B3ZCc6cHdkfSwNCgkJCQlkYXRhVHlwZTogJ0pTT05QJywNCgkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLCAvL+WbuuWumuWGmeazlQ0KCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJbGF5ZXIuY2xvc2UoaW5kZXgpOw0KCQkJCQlpZihkYXRhLnJlc3VsdCkgew0KCQkJCQkJdmFyIHV1aWQgPSBkYXRhLnV1aWQ7DQoJCQkJCQkvL+iOt+WPluWIsHV1aWTlkI7vvIzlsIZ1dWlk5Lyg5Yiw5ZCO5Y+w77yM6YCa6L+H5o6l5Y+j6I635Y+W5Yiw55So5oi35L+h5oGv77yM5a6M5oiQ5pys5Zywc2Vzc2lvbuWIneWni+WMlu+8jOeZu+W9leWujOaIkA0KCQkJCQkJJC5hamF4KHsNCgkJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCQl1cmw6ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9sb2dpbkJ5VVVJRC5kbyIsDQoJCQkJCQkJZGF0YTp7J3V1aWQnOnV1aWR9LA0KCQkJCQkJCWRhdGFUeXBlOiAnSlNPTicsDQoJCQkJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCQkJCQkNCgkJCQkJCQkJdmFyIHJlcXVlc3RVUkkgPSAnJzsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmKHJlcXVlc3RVUkk9PScnKXsNCgkJCQkJCQkJCSQoIiNsb2dpbi1hcmVhIikuaHRtbChnZXRMb2dpbmVkQXJlYShkYXRhKSk7DQoJCQkJCQkJCQlsYXllci5jbG9zZUFsbCgpOw0KCQkJCQkJCQkJLy93aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7DQoNCgkJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24iK3JlcXVlc3RVUkk7DQoJCQkJCQkJCX0NCgkJCQkJCQkJDQoJCQkJCQkJfQ0KCQkJCQkJfSk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlsYXllci5tc2coZGF0YS5tc2csIHtpY29uOiA1fSk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9KTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGRvU3VibWl0QnlQaG9uZSgpIHsNCgkJdmFyIHVzZXJuYW1lID0gJC50cmltKCQoJyNjZWxscGhvbmUnKS52YWwoKSk7DQoJCXZhciBwQ29kZSA9ICQudHJpbSgkKCcjcENvZGUnKS52YWwoKSk7DQoJCXZhciBzeXN0ZW1Db2RlID0gJ3N5c3RlbTAwMS11bml0ZS1jZXJ0aWZpY2F0aW9uJzsNCgkJLy92YXIgdXJsID0gdWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9hamF4TG9naW4uZG8/c3lzZD0iICsgc3lzdGVtQ29kZSsiJnVuPSIgKyB1c2VybmFtZSArICImcHdkPSIgKyBwd2Q7DQoJCXZhciB1cmwgPSB1YWNTZXJ2ZXJVcmwgKyAiL2NsaWVudExvZ2luL2FqYXhMb2dpbi5kbyI7DQoJCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQkJbGF5ZXIudGlwcygn6K+36L6T5YWl55So5omL5py65Y+3JywgJyNjZWxscGhvbmUnLCB7DQoJCQkJICB0aXBzOiBbMSwgJyNmMDBlMGUnXSwNCgkJCQkgIHRpbWU6IDMwMDANCgkJCQl9KTsNCgkJfWVsc2UgaWYocENvZGU9PW51bGx8fHBDb2RlPT0iIil7DQoJCQlsYXllci50aXBzKCfor7fovpPlhaXnn63kv6Hpqozor4HnoIEnLCAnI3BDb2RlJywgew0KCQkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkJICB0aW1lOiAzMDAwDQoJCQkJfSk7DQoJCX1lbHNlew0KCQkJdmFyIGluZGV4ID0gbGF5ZXIubG9hZCgxLCB7DQoJCQkJICBzaGFkZTogWzAuMSwnI2ZmZiddIC8vMC4x6YCP5piO5bqm55qE55m96Imy6IOM5pmvDQoJCQl9KTsNCgkJCSQuYWpheCh7DQoJCQkJdHlwZTogIlBPU1QiLA0KCQkJCXVybDogdXJsLA0KCQkJCWRhdGE6eydzeXNkJzpzeXN0ZW1Db2RlLCd1bic6dXNlcm5hbWUsJ3B3ZCc6cENvZGUsJ2lzUGhvbmVMb2dpbic6J3RydWUnfSwNCgkJCQlkYXRhVHlwZTogJ0pTT05QJywNCgkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLCAvL+WbuuWumuWGmeazlQ0KCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJbGF5ZXIuY2xvc2UoaW5kZXgpOw0KCQkJCQlpZihkYXRhLnJlc3VsdCkgew0KCQkJCQkJdmFyIHV1aWQgPSBkYXRhLnV1aWQ7DQoJCQkJCQkvL+iOt+WPluWIsHV1aWTlkI7vvIzlsIZ1dWlk5Lyg5Yiw5ZCO5Y+w77yM6YCa6L+H5o6l5Y+j6I635Y+W5Yiw55So5oi35L+h5oGv77yM5a6M5oiQ5pys5Zywc2Vzc2lvbuWIneWni+WMlu+8jOeZu+W9leWujOaIkA0KCQkJCQkJJC5hamF4KHsNCgkJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCQl1cmw6ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9sb2dpbkJ5VVVJRC5kbyIsDQoJCQkJCQkJZGF0YTp7J3V1aWQnOnV1aWR9LA0KCQkJCQkJCWRhdGFUeXBlOiAnSlNPTicsDQoJCQkJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCQkJCQl2YXIgcmVxdWVzdFVSSSA9ICcnOw0KCQkJCQkJCQkNCgkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJDQoJCQkJCQkJCQkkKCIjbG9naW4tYXJlYSIpLmh0bWwoZ2V0TG9naW5lZEFyZWEoZGF0YSkpOw0KCQkJCQkJCQkJbGF5ZXIuY2xvc2VBbGwoKTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJLy93aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7DQoJDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJDQoJCQkJCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24iK3JlcXVlc3RVUkk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJCX0pOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJbGF5ZXIubXNnKGRhdGEubXNnLCB7aWNvbjogNX0pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfSk7DQoJCX0NCgl9DQoNCgkvL+azqOmUgA0KCWZ1bmN0aW9uIGxvZ291dCgpIHsNCgkJJC5hamF4KHsNCgkJCXR5cGU6ICJHRVQiLA0KCQkJdXJsOiBjYXNTZXJ2ZXJVcmwgKyAiL2xvZ291dD9zZXJ2ZXI9c3lzdGVtMDAxMi1jcHNjIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCXdpbmRvdy5sb2NhdGlvbj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvbG9nb3V0LmRvIjsNCgkJCX0sDQoJCQllcnJvcjpmdW5jdGlvbihkYXRhKXsNCgkJCQl3aW5kb3cubG9jYXRpb249Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2xvZ291dC5kbyI7DQoJCQl9DQoJCX0pOw0KCX0NCg0KCS8v6I635Y+W55+t5L+h6aqM6K+B56CBDQoJZnVuY3Rpb24gZ2V0UENvZGUoc3RyKXsNCgkJdmFyIHJlc3VsdDsNCgkJCSQuYWpheCh7DQoJCQkJdXJsIDogImh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldFBob25lQ29kZS5kbyIsDQoJCQkJdHlwZSA6ICJwb3N0IiwNCgkJCQlkYXRhVHlwZSA6ICJqc29uIiwNCgkJCQlkYXRhOiAkKCcjJytzdHIpLnNlcmlhbGl6ZSgpLA0KCQkJCWFzeW5jOmZhbHNlLA0KCQkJCXN1Y2Nlc3MgOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCXJlc3VsdCA9IGRhdGE7CQ0KCQkJCX0NCgkJCX0pOw0KCQlyZXR1cm4gcmVzdWx0Ow0KCX0JDQo8L3NjcmlwdD4NCjwhLS3nlKjkuo5TQUPnmbvlvZXnmoRqcy0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQl2YXIgYWpheExvZ2luPSBmdW5jdGlvbih1cmwpew0KCQl2YXIgdXNtID0gJC50cmltKCQoJyNhY2NvdW50MycpLnZhbCgpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQl2YXIgcHdkID0gJC50cmltKCQoJyNwQ29kZTMnKS52YWwoKSk7DQoJCXZhciBtc2cgPSAnJzsNCgkJIGlmICgkLnRyaW0odXNtKS5sZW5ndGggPT0gMCApew0KCQkgIG1zZyA9ICLnlKjmiLflkI3kuI3og73kuLrnqbrjgIIiOw0KCQkgfSBlbHNlIGlmICgkLnRyaW0ocHdkKS5sZW5ndGggPT0gMCApew0KCQkgIG1zZyA9ICLlr4bnoIHkuI3og73kuLrnqbrjgIIiOw0KCQkgfQ0KCQkgaWYgKG1zZyAmJiBtc2cubGVuZ3RoID4gMCkgew0KCQkgICQoJyNKX0Vycm9yTXNnJykudGV4dChtc2cpOw0KCQkgIHJldHVybiBmYWxzZTsNCgkJIH0NCgkJICQoJyNKX0Vycm9yTXNnJykudGV4dCgnJyk7DQoJICAgICAgJC5hamF4KHsNCiAgCSAgICAgICAgdHlwZTogIkdFVCIsICANCiAgCSAgICAgICAgdXJsOiB1cmwrIi9jbGllbnRMb2dpbi9hamF4TG9naW4uZG8/dW49Iit1c20rIiZwd2Q9IitlbmNvZGVVUklDb21wb25lbnQocHdkKSsiJnN5c2Q9c3lzdGVtMDAxMS10Y3JtIiwNCiAgCSAgICAgICAgZGF0YVR5cGU6ICdKU09OUCcsDQogIAkgICAgICAgIGNyb3NzRG9tYWluOnRydWUsDQogIAkgICAgICAgIGpzb25wIDogImpzb25wQ2FsbGJhY2siLA0KICAJICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKXsgDQogIAkgICAgICAgICAgaWYoZGF0YS5yZXN1bHQpew0KICAJICAgICAgICAJLy/nmbvlvZXmiJDlip/vvIzlnKjmnKzlnLDlhpnlhaVzZXNzaW9uDQogICAgICAgCSAgICAgICAgJC5wb3N0KCJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9zYWNVc2VyTG9naW4uZG8iLHsidXNlcm5hbWUiOnVzbSwicmVhbG5hbWUiOmRhdGEucmVhbG5hbWUsInVpZCI6ZGF0YS51aWQsIm1vYmlsZSI6ZGF0YS5tb2JpbGUsImVtYWlsIjpkYXRhLmVtYWlsfSxmdW5jdGlvbihkYXRhMil7DQogICAgICAJICAgICAgICAJaWYoZGF0YTIucmVzdWx0KXsNCiAgICAgIAkgICAgICAgIAkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKCc8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcHJvcG9zYWwvcHJvcG9zYWxRdWVyeSIgc3R5bGU9ImNvbG9yOiAjZmZmOyI+5oiR55qE6LSm5oi3PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9nb3V0KCkiIHN0eWxlPSJjb2xvcjogI2YwMDsiIHRpdGxlPSLms6jplIAiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW9mZiI+PC9zcGFuPjwvYT4nKTsNCiAgICAgIAkgICAgICAgIAkJbGF5ZXIuY2xvc2VBbGwoKTsNCiAgICAgIAkgICAgICAgIAkJLyogd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOyAqLw0KICAgICAgCSAgICAgICAgCX1lbHNlew0KICAgICAgCSAgICAgICAgCSAJJCgnI0pfRXJyb3JNc2cnKS50ZXh0KGRhdGEyLm1zZyk7DQogICAgICAJICAgICAgICAJCXJldHVybjsNCiAgICAgIAkgICAgICAgIAl9CQkJCQkJCSAgICAgIAkgICAgICAgIAkNCiAgICAgIAkgICAgICAgIH0pOw0KICAJICAgICAgICAgIH1lbHNlew0KICAJICAgICAgICAJJCgnI0pfRXJyb3JNc2cnKS50ZXh0KGRhdGEubXNnKTsNCiAgCSAgICAgICAgCXJldHVybjsNCiAgCSAgICAgICAgICB9ICANCiAgCSAgICAgfSAgDQoJICAgICAgfSk7ICAgICAgICAgIAkNCgkgICAgfTsNCjwvc2NyaXB0Pg0KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9iZ3JlcC5qcGcpIHRvcCByZXBlYXQteDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6ICMxODdlZDA7Ij4NCgk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCQk8ZGl2IGNsYXNzPSJyb3ciPiAgDQoJCQk8ZGl2IGlkPSJ0b3AtYmciIGNsYXNzPSJjb2wtc20tMTIiIHN0eWxlPSJiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3LnN0ZC5nb3YuY24vaW1hZ2VzL2xvZ29pbWcuanBnKSByaWdodCAxNXB4IGNlbnRlciBuby1yZXBlYXQgIzE4N2VkMDt3aWR0aDoxMDAlO2ZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7Ij4NCgkJCQk8aW1nIGNsYXNzPSJoaWRkZW4teHMiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9sb2dvbmV3LnBuZyIvPg0KCQkJCQ0KCQkJCTxkaXYgc3R5bGU9InBhZGRpbmc6NXB4IDA7cGFkZGluZy1yaWdodDozMHB4OyIgY2xhc3M9InZpc2libGUteHMiIGNsYXNzPSJuYXZiYXItaGVhZGVyIj4NCgkJCQkgICAgICA8YnV0dG9uIGNsYXNzPSIgbmF2YmFyLXRvZ2dsZSBjb2xsYXBzZWQiIHR5cGU9ImJ1dHRvbiIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI2JzLW5hdmJhciIgYXJpYS1jb250cm9scz0iYnMtbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+DQoJCQkJICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+DQoJCQkJICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCgkJCQkgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KCQkJCSAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoJCQkJICAgICAgPC9idXR0b24+DQoJCQkJICAgICAgPGEgc3R5bGU9ImNvbG9yOndoaXRlO3BhZGRpbmc6MTVweCAwOyIgIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbiIgY2xhc3M9Im5hdmJhci1icmFuZCI+PGltZyBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjEwcHg7bWFyZ2luLXRvcDotNXB4OyIgd2lkdGg9IjMwcHgiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9zaGFyZUxvZ28ucG5nIi8+5YWo5Zu95qCH5YeG5L+h5oGv5YWs5YWx5pyN5Yqh5bmz5Y+wPHNtYWxsIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiPuivlei/kOihjDwvc21hbGw+PC9hPg0KCQkJCSAgICAgIA0KCQkJCQk8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0ibmF2LW1lbnUiPg0KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wtc20tMTIiPg0KCQkJCTx1bD4NCgkJCSAgICA8bGkgY2xhc3M9ImhpZGRlbi14cyIgPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbiI+6aaW6aG1PC9hPjwvbGk+DQoJCQkgICAgPGxpIGNsYXNzPSJuYXZfaW4iPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9nYiI+5Zu95a625qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vaGIiPuihjOS4muagh+WHhjwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2RiIj7lnLDmlrnmoIflh4Y8L2E+PC9saT4NCgkJCSAgICA8bGkgPjxhIGhyZWY9Imh0dHA6Ly93d3cudHRiei5vcmcuY24vIiB0YXJnZXQ9Il9ibGFuayI+5Zui5L2T5qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LmNwYnouZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPuS8geS4muagh+WHhjwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2dqIj7lm73pmYXmoIflh4Y8L2E+PC9saT4NCgkJCSAgICA8bGkgPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9ndyI+5Zu95aSW5qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcGlsb3QiPuekuuiMg+ivleeCuTwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ptcmgiPumHjeeCueW3peeoizwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL29yZyI+5oqA5pyv5aeU5ZGY5LyaPC9hPjwvbGk+DQoJCQkgIDwvdWw+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJjb250YWluZXIgbWFpbi1ib2R5Ij4NCgk8ZGl2IGNsYXNzPSJyb3ciPg0KCQk8ZGl2IGNsYXNzPSJjb2wtc20tMTIiPg0KCQkJPGRpdiBzdHlsZT0id2lkdGg6MTAwJTttaW4taGVpZ2h0OjgwMHB4O2JhY2tncm91bmQ6ICNmZmY7Ym9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtwYWRkaW5nOjAgMjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzp2aXNpYmxlOyI+DQoJCQkJPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Ij4NCgkJCQkJPGg0IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWwsdGFob21hLCdNaWNyb3NvZnQgWWFoZWknLCdcNWI4Ylw0ZjUzJyxzYW5zLXNlcmlmOyI+5qOJ55+t57uSPC9oND4NCgkJCQkJPGg1IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWwsdGFob21hLCdNaWNyb3NvZnQgWWFoZWknLCdcNWI4Ylw0ZjUzJyxzYW5zLXNlcmlmO2NvbG9yOmdyYXk7bWFyZ2luLXRvcDo1cHg7Ij5Db3R0b24gbGludGVyPC9oNT4gDQoJCQkJCTxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O21hcmdpbi10b3A6NXB4Ij4NCgkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1pbmZvIj7lm73lrrbmoIflh4Y8L3NwYW4+ICANCgkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1zdWNjZXNzIj7mjqjojZDmgKc8L3NwYW4+DQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtcHJpbWFyeSI+546w6KGMPC9zcGFuPg0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPHA+5Zu95a625qCH5YeG44CK5qOJ55+t57uS44CL55SxPGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIFRBX0NPREU9IjEiIHRhcmdldD0iX2JsYW5rIj5UQzUxMzwvYT7vvIjlhajlm73nuqTnu7TmoIflh4bljJbmioDmnK/lp5TlkZjkvJrvvInlvZLlj6PkuIrmiqXlj4rmiafooYzvvIzkuLvnrqHpg6jpl6jkuLo8YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgQ0RfQ09ERT0iMSIgdGFyZ2V0PSJfYmxhbmsiPuWbveWutui0qOmHj+ebkeedo+ajgOmqjOajgOeWq+aAu+WxgDwvYT7jgII8L3A+DQoJCQkJDQoJCQkJPHA+5Li76KaB6LW36I2J5Y2V5L2NDQoJCQkJCQkJCQkJCQ0KCQkJCQkNCgkJCQkJCTxzcGFuIERSQUZUX1VOSVQ9IjEiPuWxseS4nOecgee6pOe7tOajgOmqjOWxgDwvc3Bhbj4NCgkJCQkJDQoJCQkJCQnjgIE8c3BhbiBEUkFGVF9VTklUPSIxIj7lsbHkuJzpm4Xnvo7np5HmioDmnInpmZDlhazlj7g8L3NwYW4+DQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+5bGx5Lic55yB5Lqn5ZOB6LSo6YeP5qOA6aqM56CU56m26ZmiPC9zcGFuPg0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPua9jeWdiuaBkuiBlOeJueenjee6pOe7tOe0oOenkeaKgOaciemZkOWFrOWPuDwvc3Bhbj4NCgkJCQkJDQoJCQkJ44CCPC9wPg0KCQkJCQ0KCQkJCQ0KCQkJCTxwPuS4u+imgei1t+iNieS6ug0KCQkJCQkJCQkJCQkNCgkJCQkJDQoJCQkJCQk8c3BhbiBEUkFGVF9VTklUPSIxIj7kuo7kuL3ljY48L3NwYW4+IA0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPua1t+WLhzwvc3Bhbj4gDQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+6YKi5pil6IqxPC9zcGFuPiANCgkJCQkJDQoJCQkJCQnjgIE8c3BhbiBEUkFGVF9VTklUPSIxIj7kuIHkvJ88L3NwYW4+IA0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPuWtn+i+iTwvc3Bhbj4gDQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+5b6Q5Lic5bOwPC9zcGFuPiANCgkJCQkJDQoJCQkJCQnjgIE8c3BhbiBEUkFGVF9VTklUPSIxIj7otbXlsqk8L3NwYW4+IA0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPueOi+awuOaihTwvc3Bhbj4gDQoJCQkJCQ0KCQkJCeOAgjwvcD4NCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJjYXRhbG9nIj4NCgkJCQkJPGRpdiBjbGFzcz0iY2F0YWxvZy1pbm5lciI+DQoJCQkJCQk8aDIgY2xhc3M9ImNhdGFsb2ctdGl0bGUiPuebruW9lTwvaDI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJjYXRhbG9nLWxpc3QiPg0KCQkJCQkJCTxvbD4NCgkJCQkJCQk8L29sPg0KCQkJCQkJCTxvbD4NCgkJCQkJCQk8L29sPg0KCQkJCQkJCTxvbD4NCgkJCQkJCQk8L29sPg0KCQkJCQkJPC9kaXY+DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InBhcmEtdGl0bGUiPg0KCQkJCQk8aDIgY2xhc3M9InRpdGxlLXRleHQiPuagh+WHhueKtuaAgTwvaDI+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0idGltZWxpbmUiPg0KCQkJCQk8ZGl2IGNsYXNzPSJldmVudHMtd3JhcHBlciI+DQoJCQkJCQk8ZGl2IGNsYXNzPSJldmVudHMiIHN0eWxlPSJ3aWR0aDogMTAwJTsiPg0KCQkJCQkJCTxvbD4gIA0KCQkJCQkJCQk8bGk+PGEgaHJlZj0iIyIgc3R5bGU9ImxlZnQ6MTYuNSU7Ij7lj5HluIM8c3BhbiBjbGFzcz0iaGlkZGVuLXhzIj7kuo4mbmJzcDsyMDE4LTAzLTE1PC9zcGFuPjwvYT48L2xpPg0KCQkJCQkJCQk8bGk+PGEgaHJlZj0iIyIgc3R5bGU9ImxlZnQ6NDUlOyI+5a6e5pa9PHNwYW4gY2xhc3M9ImhpZGRlbi14cyI+5LqOJm5ic3A7MjAxOC0wNS0wMTwvc3Bhbj48L2E+PC9saT4NCgkJCQkJCQkJPGxpPjxhIGhyZWY9IiMiIHN0eWxlPSJsZWZ0Ojc4LjUlOyI+5bqf5q2iPC9hPjwvbGk+DQoJCQkJCQkJPC9vbD4NCgkJCQkJCQk8c3BhbiBjbGFzcz0iZmlsbGluZy1saW5lIiBhcmlhLWhpZGRlbj0idHJ1ZSIgPjwvc3Bhbj4gDQoJCQkJCQk8L2Rpdj4gPCEtLSAuZXZlbnRzIC0tPg0KCQkJCQk8L2Rpdj4gPCEtLSAuZXZlbnRzLXdyYXBwZXIgLS0+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFyYS10aXRsZSI+DQoJCQkJCTxoMiBjbGFzcz0idGl0bGUtdGV4dCI+5Z+656GA5L+h5oGvPC9oMj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJiYXNpYy1pbmZvIGNtbi1jbGVhcmZpeCI+DQoJCQkJDQoJCQkJCTxkbCBjbGFzcz0iYmFzaWNJbmZvLWJsb2NrIGJhc2ljSW5mby1sZWZ0Ij4NCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7moIflh4blj7c8L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+R0IvVCAyMDIyMy0yMDE4PC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQk8ZHQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIG5hbWUiPuWPkeW4g+aXpeacnzwvZHQ+DQoJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj4yMDE4LTAzLTE1PC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7lrp7mlr3ml6XmnJ88L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+DQoJCQkJCQkJMjAxOC0wNS0wMQ0KCQkJCQkJPC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5YWo6YOo5Luj5pu/5qCH5YeGPC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPg0KCQkJCQkJCUdCL1QgMjAyMjMtMjAwNg0KCQkJCQkJPC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJPC9kbD4NCgkJCQkJPGRsIGNsYXNzPSJiYXNpY0luZm8tYmxvY2sgYmFzaWNJbmZvLXJpZ2h0Ij4NCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7kuK3lm73moIflh4bliIbnsbvlj7c8L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+VzEwPC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQk8ZHQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIG5hbWUiPuWbvemZheagh+WHhuWIhuexu+WPtzwvZHQ+DQoJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj4gDQoJCQkJCQkJPHNwYW4gZGF0YS10b2dnbGU9InRvb2x0aXAiIGRhdGEtcGxhY2VtZW50PSJib3R0b20iIGRhdGEtaHRtbD0idHJ1ZSIgdGl0bGU9IjxkaXY+NTkg57q657uH5ZKM55qu6Z2p5oqA5pyvPC9kaXY+PGRpdj41OS4wNjAg57q657uH57qk57u0PC9kaXY+PGRpdj41OS4wNjAuMTAg5aSp54S257qk57u0PC9kaXY+ICIgPjU5LjA2MC4xMDwvc3Bhbj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpY3NJbmZvUG9wIj4NCgkJCQkJCQkJPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIj4NCgkJCQkJCQkJCTx0Ym9keT4NCgkJCQkJCQkJCSAgDQoJCQkJCQkJCQkJICAJPHRyPjx0ZD41OSDnurrnu4flkoznmq7pnanmioDmnK88L3RkPjwvdHI+DQoJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkgIAk8dHI+PHRkPjU5LjA2MCDnurrnu4fnuqTnu7Q8L3RkPjwvdHI+DQoJCQkJCQkJCQkgICANCgkJCQkJCQkJCQkgIAk8dHI+PHRkPjU5LjA2MC4xMCDlpKnnhLbnuqTnu7Q8L3RkPjwvdHI+DQoJCQkJCQkJCQkgICAgDQoJCQkJCQkJCQk8L3Rib2R5Pg0KCQkJCQkJCQkgPC90YWJsZT4NCgkJCQkJCQkgPC9kaXY+DQoJCQkJCQk8L2RkPg0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5b2S5Y+j5Y2V5L2NPC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiBUQV9DT0RFPSIxIiB0YXJnZXQ9Il9ibGFuayI+5YWo5Zu957qk57u05qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaPC9hPjwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQk8ZHQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIG5hbWUiPuaJp+ihjOWNleS9jTwvZHQ+DQoJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgVE1fQ09ERT0iMSIgdGFyZ2V0PSJfYmxhbmsiPuWFqOWbvee6pOe7tOagh+WHhuWMluaKgOacr+WnlOWRmOS8mjwvYT48L2RkPg0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5Li7566h6YOo6ZeoPC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiBDRF9DT0RFPSIxIiB0YXJnZXQ9Il9ibGFuayI+5Zu95a626LSo6YeP55uR552j5qOA6aqM5qOA55ar5oC75bGAPC9hPjwvZGQ+DQoJCQkJCQkJDQoJCQkJCTwvZGw+DQoJCQkJCTxkbCBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGw+DQoJCQkJPC9kaXY+DQoNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQkJPGRpdiBjbGFzcz0icGFyYS10aXRsZSI+DQoJCQkJCQk8aDIgY2xhc3M9InRpdGxlLXRleHQiPuS7o+abv+S7peS4i+agh+WHhjwvaDI+DQoJCQkJCTwvZGl2Pg0KCQkJCQkNCgkJCQkJCTxwPg0KCQkJCQkJCQ0KCQkJCQkJCeWFqOmDqOS7o+abvw0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vZ2Ivc2VhcmNoL2diRGV0YWlsZWQ/aWQ9NzFGNzcyRDc3OEFERDNBN0UwNTM5N0JFMEEwQUI4MkEiIHRhcmdldD0iX2JsYW5rIj4NCgkJCQkJCQkJCTxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmU7Ij48L3NwYW4+R0IvVCAyMDIyMy0yMDA2DQoJCQkJCQkJCTwvYT4NCgkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCTwvcD4NCgkJCQkJDQoJCQkJDQoJCQkJDQoJCQkJIA0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9InBhcmEtdGl0bGUiID4NCgkJCQkJPGgyIGNsYXNzPSJ0aXRsZS10ZXh0Ij7otbfojYnljZXkvY08L2gyPg0KCQkJCTwvZGl2Pg0KCQkJCQkJCQkJCQ0KCQkJCTxkaXYgY2xhc3M9ImJhc2ljLWluZm8gY21uLWNsZWFyZml4Ij4NCgkJCQkJPGRsIGNsYXNzPSJiYXNpY0luZm8tYmxvY2sgYmFzaWNJbmZvLWxlZnQiPg0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIiBEUkFGVF9VTklUPSIxIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1saW5rIj48L3NwYW4+5bGx5Lic55yB57qk57u05qOA6aqM5bGAPC9hPjwvZGQ+DQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgRFJBRlRfVU5JVD0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayI+PC9zcGFuPuWxseS4nOecgeS6p+WTgei0qOmHj+ajgOmqjOeglOeptumZojwvYT48L2RkPg0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJPC9kbD4NCgkJCQkJPGRsIGNsYXNzPSJiYXNpY0luZm8tYmxvY2sgYmFzaWNJbmZvLXJpZ2h0Ij4NCgkJCQkJCSANCgkJCQkJCQkNCgkJCQkJCSANCgkJCQkJCQkNCgkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiIERSQUZUX1VOSVQ9IjEiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiPjwvc3Bhbj7lsbHkuJzpm4Xnvo7np5HmioDmnInpmZDlhazlj7g8L2E+PC9kZD4NCgkJCQkJCQkNCgkJCQkJCSANCgkJCQkJCQkNCgkJCQkJCSANCgkJCQkJCQkNCgkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiIERSQUZUX1VOSVQ9IjEiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiPjwvc3Bhbj7mvY3lnYrmgZLogZTnibnnp43nuqTnu7TntKDnp5HmioDmnInpmZDlhazlj7g8L2E+PC9kZD4NCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2RsPg0KCQkJCQk8ZGwgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2RsPg0KCQkJCTwvZGl2PgkNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYXJhLXRpdGxlIj4NCgkJCQkJPGgyIGNsYXNzPSJ0aXRsZS10ZXh0Ij7otbfojYnkuro8L2gyPg0KCQkJCTwvZGl2PgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJiYXNpYy1pbmZvIGNtbi1jbGVhcmZpeCI+DQoJCQkJCTxkbCBjbGFzcz0iYmFzaWNJbmZvLWJsb2NrIGJhc2ljSW5mby1sZWZ0Ij4NCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIiBEUkFGVF9VU0VSUz0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdXNlciI+PC9zcGFuPuS6juS4veWNjjwvYT48L2RkPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCIgc3R5bGU9ImNvbG9yOiAjOTk5Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+5rW35YuHPC9kZD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCIgc3R5bGU9ImNvbG9yOiAjOTk5Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+5a2f6L6JPC9kZD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB0d29kIiBzdHlsZT0iY29sb3I6ICM5OTkiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj7lvpDkuJzls7A8L2RkPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2RsPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tcmlnaHQiPg0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB0d29kIiBzdHlsZT0iY29sb3I6ICM5OTkiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj7pgqLmmKXoirE8L2RkPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB0d29kIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiIERSQUZUX1VTRVJTPSIxIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+5LiB5LyfPC9hPjwvZGQ+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCIgc3R5bGU9ImNvbG9yOiAjOTk5Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+6LW15bKpPC9kZD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIiBEUkFGVF9VU0VSUz0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdXNlciI+PC9zcGFuPueOi+awuOaihTwvYT48L2RkPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJPC9kbD4NCgkJCQkJPGRsIHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kbD4NCgkJCQk8L2Rpdj4JDQoJCQkJDQoJCQkJDQoJCQkJDQoNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYXJhLXRpdGxlIiA+DQoJCQkJCTxoMiBjbGFzcz0idGl0bGUtdGV4dCI+55u46L+R5qCH5YeGKOiuoeWIkik8L2gyPg0KCQkJCTwvZGl2PgkJCQkJDQoJCQkJPGRpdiBjbGFzcz0iYmFzaWMtaW5mbyBjbW4tY2xlYXJmaXgiPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tbGVmdCIgc3R5bGU9IndpZHRoOiBhdXRvOyI+DQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIiAgc3R5bGU9IndpZHRoOiAxMDAlIj48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vaGIvc2VhcmNoL3N0ZEhCRGV0YWlsZWQ/aWQ9NUREQThCQTI4Rjg1MThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIiA+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayI+PC9zcGFuPkdIL1QgMTAyMy0yMDAwICZuYnNwO+ajieefree7kua4heeQhuacujwvYT48L2RkPg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSIgIHN0eWxlPSJ3aWR0aDogMTAwJSI+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2hiL3NlYXJjaC9zdGRIQkRldGFpbGVkP2lkPTVEREE4QkEyRDMxNzE4REVFMDUzOTdCRTBBMEE5NUE3IiB0YXJnZXQ9Il9ibGFuayIgPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiPjwvc3Bhbj5TTi9UIDE1NjMtMjAxMSAmbmJzcDvov5vlh7rlj6Pmo4nnn63nu5Lmo4Dpqozop4TnqIs8L2E+PC9kZD4NCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2RsPg0KCQkJCQk8ZGwgc3R5bGU9ImNsZWFyOmJvdGg7Ij48L2RsPg0KCQkJCTwvZGl2PgkNCgkJCQkNCgkJCQkNCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KDQo8c3R5bGU+DQpAbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHsNCgkuZm9vdGVyLWJvZHkgbGkgew0KCSAgICBjb2xvcjogd2hpdGU7DQoJICAgIGZvbnQtc2l6ZTogMTJweDsNCgl9DQp9DQo8L3N0eWxlPg0KPGRpdiBjbGFzcz0iZm9vdGVyLWJvZHkiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjMDU2NmFiO2ZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7Ij4NCgk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCQk8ZGl2IGNsYXNzPSJyb3ciIHN0eWxlPSJwYWRkaW5nOjE1cHggMDsiPg0KCQkJPGRpdiBjbGFzcz0iY29sLXNtLTUgY29sLXhzLTYiPg0KCQkJCTx1bCBzdHlsZT0ibGlzdC1zdHlsZTpub25lOyI+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAxMHB4IDBweDsiPjxoNiBzdHlsZT0iY29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6IGJvbGQ7bGluZS1oZWlnaHQ6IDEuMTtmb250LXNpemU6IDE0cHg7Ij7niYjmnYPmiYDmnIkg5L615p2D5b+F56m2PC9oNj48L2xpPg0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMnB4IDBweDtjb2xvcjojYmVjOGNlOyIgPuS4u+euoe+8muWbveWutuagh+WHhuWMlueuoeeQhuWnlOWRmOS8mjwvbGk+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+5Li75Yqe77ya5Zu95a625qCH5YeG5YyW566h55CG5aeU5ZGY5Lya5qCH5YeG5L+h5oGv5Lit5b+DPC9saT4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDJweCAwcHg7Y29sb3I6I2JlYzhjZTsiID7mioDmnK/mlK/mjIHvvJrljJfkuqzkuK3moIfotZvlrofnp5HmioDmnInpmZDlhazlj7g8L2xpPg0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMnB4IDBweDtjb2xvcjojYmVjOGNlOyIgPuaUr+aMgeeUteivne+8mjAxMC04MjI2MTA1NjwvbGk+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+5aSH5qGI5Y+377ya5LqsSUNQ5aSHMDkwMDEyMznlj7ctNjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXNtLTQgY29sLXhzLTYiPg0KCQkJCTx1bCBzdHlsZT0ibGlzdC1zdHlsZTpub25lOyI+IA0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMTBweCAwcHgiPjxoNiBzdHlsZT0iY29sb3I6d2hpdGU7Zm9udC13ZWlnaHQ6IGJvbGQ7bGluZS1oZWlnaHQ6IDEuMTtmb250LXNpemU6IDE0cHg7Ij7lj4vmg4Xpk77mjqU8L2g2PjwvbGk+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+PGEgc3R5bGU9ImNvbG9yOiNiZWM4Y2U7IiBocmVmPSJodHRwOi8vd3d3LnNhYy5nb3YuY24vIiB0YXJnZXQ9Il9ibGFuayI+5Zu95a625qCH5YeG5YyW566h55CG5aeU5ZGY5LyaPC9hPjwvbGk+IA0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMnB4IDBweDtjb2xvcjojYmVjOGNlOyIgPjxhIHN0eWxlPSJjb2xvcjojYmVjOGNlOyIgaHJlZj0iaHR0cDovL3d3dy5jcGJ6Lmdvdi5jbi8iIHRhcmdldD0iX2JsYW5rIj7kvIHkuJrmoIflh4bkv6Hmga/lhazlhbHmnI3liqHlubPlj7A8L2E+PC9saT4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDJweCAwcHg7Y29sb3I6I2JlYzhjZTsiID48YSBzdHlsZT0iY29sb3I6I2JlYzhjZTsiIGhyZWY9Imh0dHA6Ly93d3cudHRiei5vcmcuY24vIiB0YXJnZXQ9Il9ibGFuayI+5YWo5Zu95Zui5L2T5qCH5YeG5L+h5oGv5bmz5Y+wPC9hPjwvbGk+DQoJCQkJPC91bD4NCgkJCTwvZGl2Pg0KCQkJPGRpdiBjbGFzcz0iY29sLXNtLTMgaGlkZGVuLXhzIiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7Ij4NCgkJCQk8aW1nIHdpZHRoPSIxMDAlIiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9pbWFnZXMvZXdtLmpwZyIgc3R5bGU9IndpZHRoOiAxMjhweDtoZWlnaHQ6IDEyOHB4OyIvPiANCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCjwvZGl2Pg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCgl2YXIgQ1VSUkVOVF9MSU5LPScnOw0KCXZhciBTVEFHRV9DT0RFPScnOw0KCXZhciBTSEFSRV9USVRMRSA9ICflm73lrrbmoIflh4YtMjAxMzA0NTgtVC00MjQt5qOJ55+t57uSJzsNCgl2YXIgU0hBUkVfU1VNTUFSWSA9ICflm73lrrbmoIflh4bjgIrmo4nnn63nu5LjgIvnlLFUQzUxM++8iOWFqOWbvee6pOe7tOagh+WHhuWMluaKgOacr+WnlOWRmOS8mu+8ieW9kuWPo+S4iuaKpeWPiuaJp+ihjO+8jOS4u+euoemDqOmXqOS4uuWbveWutui0qOmHj+ebkeedo+ajgOmqjOajgOeWq+aAu+WxgOOAgic7DQoJdmFyIFNUQVRFPSfnjrDooYwnOw0KCXZhciBTVEFURV9JTkQ9MDsNCgkkKGZ1bmN0aW9uKCkgew0KCQl2YXIgY2xsID0gMDsNCgkJaWYoU1RBVEU9PSfljbPlsIblrp7mlr0nKSB7DQoJCQlTVEFURV9JTkQgPSAwOw0KCQl9IGVsc2UgaWYoU1RBVEU9PSfnjrDooYwnKSB7DQoJCQlTVEFURV9JTkQgPSAxOw0KCQl9IGVsc2UgaWYoU1RBVEU9PSflup/mraInKSB7DQoJCQlTVEFURV9JTkQgPSAyOw0KCQl9DQoJCSQoJy50aW1lbGluZSAuZXZlbnRzIGxpIGEnKS5lYWNoKGZ1bmN0aW9uKGluZGV4KXsNCgkJCWlmKGluZGV4Pj1TVEFURV9JTkQpew0KCQkJCSQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7DQoJCQkJY2xsID0gJCh0aGlzKS5vZmZzZXQoKS5sZWZ0KyQodGhpcykud2lkdGgoKS8yOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0gZWxzZSB7DQoJCQkJJCh0aGlzKS5hZGRDbGFzcygnb2xkZXItZXZlbnQnKTsNCgkJCX0NCgkJfSk7DQoJCWNsbCAtPSAkKCcudGltZWxpbmUgLmV2ZW50cyBvbCcpLm9mZnNldCgpLmxlZnQ7DQoJCSQoJy50aW1lbGluZSAuZmlsbGluZy1saW5lICcpLmNzcygndHJhbnNmb3JtJywnc2NhbGVYKCcrKGNsbC8kKCcudGltZWxpbmUgLmV2ZW50cyBvbCcpLndpZHRoKCkpKycpJyk7DQoJCSQoIi50cmlnZ2VycyIpLmVhY2goZnVuY3Rpb24oaSl7DQoJICAgICAgICAgICAkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJICAgICAgICAJICAgaWYoJCh0aGlzKS5hdHRyKCJUQV9DT0RFIikpew0KCSAgICAgICAgCQkgICBpZignVEM1MTMnLmluZGV4T2YoIlRDIik9PTAgfHwgJ1RDNTEzJy5pbmRleE9mKCJTV0ciKT09MCkNCgkgICAgICAgIAkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ0RldGFpbFZpZXc/dGNDb2RlPVRDNTEzIik7DQoJICAgICAgICAJCSAgIGVsc2UNCgkgICAgICAgIAkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCflhajlm73nuqTnu7TmoIflh4bljJbmioDmnK/lp5TlkZjkvJonKSk7IA0KCSAgICAgICAgCSAgICAgIH1lbHNlIGlmKCQodGhpcykuYXR0cigiQ0RfQ09ERSIpKXsNCgkgICAgICAgIAkJCSAgIGlmKCc0MjQnLmluZGV4T2YoIlRDIik9PTAgfHwgJzQyNCcuaW5kZXhPZigiU1dHIik9PTApDQoJICAgICAgICAJCQkJICAgJCh0aGlzKS5hdHRyKCJocmVmIiwgImh0dHA6Ly93d3cuc3RkLmdvdi5jbi9zZWFyY2gvb3JnRGV0YWlsVmlldz90Y0NvZGU9NDI0Iik7DQoJICAgICAgICAJCQkgICBlbHNlIA0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCflm73lrrbotKjph4/nm5HnnaPmo4Dpqozmo4DnlqvmgLvlsYAnKSk7IA0KCSAgICAgICAgCQkgICB9ZWxzZSBpZigkKHRoaXMpLmF0dHIoIlRNX0NPREUiKSl7DQoJICAgICAgICAJCQkgICBpZignVEM1MTMnLmluZGV4T2YoIlRDIik9PTAgfHwgJ1RDNTEzJy5pbmRleE9mKCJTV0ciKT09MCkNCgkgICAgICAgIAkJCQkgICAkKHRoaXMpLmF0dHIoImhyZWYiLCAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3NlYXJjaC9vcmdEZXRhaWxWaWV3P3RjQ29kZT1UQzUxMyIpOw0KCSAgICAgICAgCQkJICAgZWxzZSANCgkgICAgICAgIAkJCQkgICAkKHRoaXMpLmF0dHIoImhyZWYiLCAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3NlYXJjaC9vcmdPdGhlcnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudCgn5YWo5Zu957qk57u05qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaJykpOyANCgkgICAgICAgIAkJICAgfWVsc2UgaWYoJCh0aGlzKS5hdHRyKCJVVEFfTkFNRSIpKXsNCgkgICAgICAgIAkJCQkkKHRoaXMpLmF0dHIoImhyZWYiLCAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3NlYXJjaC9vcmc/cT0iK2VuY29kZVVSSUNvbXBvbmVudCgnJykpOyANCgkgICAgICAgIAkJICAgfWVsc2UgaWYoJCh0aGlzKS5hdHRyKCJEUkFGVF9VTklUIikpew0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCQodGhpcykudGV4dCgpKSk7IA0KCSAgICAgICAgCQkgICB9ZWxzZSBpZigkKHRoaXMpLmF0dHIoIkRSQUZUX1VTRVJTIikpew0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL3BlcnNvbkRldGFpbGVkP3E9IitlbmNvZGVVUklDb21wb25lbnQoJCh0aGlzKS50ZXh0KCkpKyImdGNDb2RlPVRDNTEzJnRjTmFtZT0iK2VuY29kZVVSSUNvbXBvbmVudCgn5YWo5Zu957qk57u05qCH5YeG5YyW5oqA5pyv5aeU5ZGY5LyaJykpOyANCgkgICAgICAgIAkJICAgfWVsc2UgaWYoJCh0aGlzKS5hdHRyKCJLUEkiKSl7DQoJICAgICAgICAJCQkJICAgJCh0aGlzKS5hdHRyKCJocmVmIiwgImh0dHA6Ly93d3cuc3RkLmdvdi5jbjo4MDgwL3B1YmxpY1NlcnZpY2VNYW5hZ2VyL28vcGRmUHJldmlldz9maWxlTWQ1PSZrcGk9IitlbmNvZGVVUklDb21wb25lbnQoJCh0aGlzKS50ZXh0KCkpKTsgDQoJICAgICAgICAJCSAgIH0NCgkgICAgICAgICAgfSkNCgkgICAgICAgfSk7DQoJCQ0KCX0pDQoJPC9zY3JpcHQ+DQo8L2JvZHk+DQoNCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQouc2lkZWJhciB7DQoJcG9zaXRpb246IGZpeGVkOw0KCXJpZ2h0OiA1MCU7DQoJdG9wOiAwcHg7DQoJd2lkdGg6IDM2cHg7DQoJaGVpZ2h0OiAxMDAlOw0KCW92ZXJmbG93OiB2aXNpYmxlOw0KCWRpc3BsYXk6bm9uZTsNCn0NCkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkgew0KCS5zaWRlYmFyIHsNCgkgICAgbWFyZ2luLXJpZ2h0OiAtMzk1cHg7DQoJICAgZGlzcGxheTogaW5saW5lOw0KCX0NCn0NCkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkgew0KCS5zaWRlYmFyIHsNCgkgICAgbWFyZ2luLXJpZ2h0Oi01MDVweDsNCgkgICAgZGlzcGxheTogaW5saW5lOw0KCX0NCn0NCkBtZWRpYSAobWluLXdpZHRoOiAxMjAwcHgpew0KCS5zaWRlYmFyIHsNCgkgICAgbWFyZ2luLXJpZ2h0Oi02MDRweDsNCgkgICAgZGlzcGxheTogaW5saW5lOw0KCX0NCn0NCi5zaWRlYmFyLXRhYnMgew0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDMwJTsNCglsZWZ0OiAwcHg7IA0KCXdpZHRoOiAzNXB4Ow0KCWZvbnQtc2l6ZTogNDVweDsNCglvdmVyZmxvdzogdmlzaWJsZTsNCn0NCi50YWItaWNvew0KCW1hcmdpbi1sZWZ0OiAxcHg7IA0KCXBvc2l0aW9uOiByZWxhdGl2ZTsgDQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsgDQp9DQoudGFiLXRleHR7DQoJd2lkdGg6IDEwNXB4OyANCgloZWlnaHQ6IDI1cHg7DQoJZm9udC1zaXplOiAxNHB4Ow0KCWxpbmUtaGVpZ2h0OiAyNXB4OyANCgljb2xvcjogI0ZGRjsgDQoJdGV4dC1hbGlnbjogY2VudGVyOyANCglmb250LWZhbWlseTogIuW+rui9r+mbhem7kSI7IA0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsgDQoJcmlnaHQ6IDM1cHg7DQoJdG9wOiAwcHg7DQoJYmFja2dyb3VuZC1jb2xvcjogIzdBNkU2RTsgDQoJYm9yZGVyLXJhZGl1czogMTBweDsgDQoJZm9udC1zdHlsZTogbm9ybWFsOyANCgljdXJzb3I6IHBvaW50ZXI7DQoJZGlzcGxheTpub25lOw0KfQ0KLnNpZGViYXItYnRuOmhvdmVyIC50YWItdGV4dHsNCglkaXNwbGF5OmlubGluZS1ibG9jazsNCn0NCi5zaWRlYmFyLWJ0bnsNCglwb3NpdGlvbjpyZWxhdGl2ZTsNCglvdmVyZmxvdzogdmlzaWJsZTsNCgliYWNrZ3JvdW5kLWNvbG9yOiAjNGM5Y2RhOw0KCXRyYW5zaXRpb246IGFsbCAuM3MgZWFzZTsNCiAgICAtby10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7DQogICAgLW1vei10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7DQogICAgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7DQogICAgYm94LXNoYWRvdzogMCA1cHggNXB4IHJnYmEoMTQ2LDE0NiwxNDYsLjUpOw0KICAgIG1hcmdpbi10b3A6IDEwcHg7DQogICAgZm9udC1zaXplOiAxNnB4Ow0KICAgIHRleHQtYWxpZ246Y2VudGVyOw0KICAgIGNvbG9yOndoaXRlOw0KICAgIGZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7DQogICAgY3Vyc29yOnBvaW50ZXI7DQp9DQouc2lkZWJhci1idG46Zmlyc3QtY2hpbGR7DQoJIG1hcmdpbi10b3A6IDA7DQp9DQouc2lkZWJhci1idG46aG92ZXJ7DQoJYmFja2dyb3VuZC1jb2xvcjogIzJkYTNmZjsNCn0NCi5zaWRlYmFyLWJ0bjpob3ZlciAuaW5mb0NvZGV7DQoJZGlzcGxheTogaW5saW5lLWJsb2NrOw0KfQ0KLmluZm9Db2Rlew0KCXdpZHRoOiAxMjBweDsNCgloZWlnaHQ6MTIwcHg7DQoJcG9zaXRpb246IGFic29sdXRlOw0KCXRvcDogNTAlOw0KCXJpZ2h0OiAzNXB4Ow0KCW1hcmdpbi10b3A6IC02MHB4Ow0KCWRpc3BsYXk6IG5vbmU7DQoJYm9yZGVyOiAxcHggc29saWQgYmxhY2s7DQoJYm94LXNpemluZzogY29udGVudC1ib3g7DQoJcGFkZGluZzogMTBweDsgDQp9DQouc2hhcmV7DQoJZGlzcGxheTpibG9jazsNCgl3aWR0aDoxMDAlOw0KCWhlaWdodDozNXB4Ow0KCWJhY2tncm91bmQtY29sb3I6d2hpdGU7DQoNCn0NCi5zaGFyZSBlbXsNCglkaXNwbGF5OmJsb2NrOw0KCXdpZHRoOjM1cHg7DQoJaGVpZ2h0OjM1cHg7DQoJYmFja2dyb3VuZC1pbWFnZTp1cmwoaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9sb2dpbi10eXBlLnBuZyk7DQp9DQojd2JzaGFyZSBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAxcHg7Ow0KfQ0KI3dic2hhcmU6aG92ZXJ7ICANCgliYWNrZ3JvdW5kLWNvbG9yOiNkZDEzN2I7DQp9DQojd2JzaGFyZTpob3ZlciBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtOTRweCAtMzJweDs7DQp9DQojcXFzaGFyZSBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggMXB4Ow0KfQ0KI3Fxc2hhcmU6aG92ZXJ7ICANCgliYWNrZ3JvdW5kLWNvbG9yOiMyNzlkZDY7DQp9DQojcXFzaGFyZTpob3ZlciBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAxcHggLTMycHg7DQp9DQojd3hzaGFyZSBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAxcHg7Ow0KfQ0KI3d4c2hhcmU6aG92ZXJ7ICANCgliYWNrZ3JvdW5kLWNvbG9yOiMxY2IzMTk7DQp9DQojd3hzaGFyZTpob3ZlciBlbXsNCgliYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTBweCAtMzJweDs7DQp9DQoucXJjb2RlLXdyYXBwZXIgew0KICAgIHBvc2l0aW9uOiBmaXhlZDsNCiAgICBsZWZ0OiA1MCU7DQogICAgbWFyZ2luLWxlZnQ6IC0xMjBweDsNCiAgICB0b3A6IDUwJTsNCiAgICBtYXJnaW4tdG9wOiAtMTM4cHg7DQogICAgcGFkZGluZzogMTBweDsNCiAgICB3aWR0aDogMjQwcHg7DQogICAgaGVpZ2h0OiAyOTVweDsNCiAgICBiYWNrZ3JvdW5kOiAjZmZmOw0KICAgIGJvcmRlcjogc29saWQgMXB4ICNkOGQ4ZDg7DQogICAgei1pbmRleDogMTEwMDE7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCByZ2JhKDE0NiwxNDYsMTQ2LC41KTsNCn0NCi5xcmNvZGUtd3JhcHBlciAucG9wdXBfaGVhZGVyIHsNCiAgICBtYXJnaW46IDEwcHggMCAyMHB4Ow0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBmb250LXdlaWdodDogNzAwOw0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgbGluZS1oZWlnaHQ6IDE2cHg7DQogICAgaGVpZ2h0OiAxNnB4Ow0KICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsNCiAgICBjb2xvcjogZ3JheTsNCiAgICB0ZXh0LWFsaWduOmNlbnRlcjsNCn0NCi5xcmNvZGUtd3JhcHBlciAuaWNvbnNfY2xvc2Ugew0KICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCiAgICByaWdodDogMTBweDsNCiAgICBjdXJzb3I6IHBvaW50ZXI7DQogICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLXdlYmtpdC10cmFuc2Zvcm0gMjE4bXM7DQogICAgLW1vei10cmFuc2l0aW9uOiAtbW96LXRyYW5zZm9ybSAyMThtczsNCiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMjE4bXM7DQp9DQoucXJjb2RlLXdyYXBwZXIgLmljb25zX2Nsb3NlOmhvdmVyIHsNCiAgICB0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsNCgktbXMtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7IAkvKiBJRSA5ICovDQoJLW1vei10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsgCS8qIEZpcmVmb3ggKi8NCgktd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOyAvKiBTYWZhcmkg5ZKMIENocm9tZSAqLw0KCS1vLXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOyAJLyogT3BlcmEgKi8NCn0NCi5xcmNvZGUtd3JhcHBlciAjd2VjaGF0LXFyY29kZS1pbWcgew0KICAgIHdpZHRoOiAxODBweDsNCiAgICBoZWlnaHQ6IDE4MHB4Ow0KICAgIG1hcmdpbjogMCBhdXRvOw0KfQ0KLnFyY29kZS13cmFwcGVyIC5wb3B1cF9mb290ZXIgew0KICAgIG1hcmdpbi10b3A6IDIwcHg7DQogICAgZm9udC1zaXplOiAxMnB4Ow0KICAgIHRleHQtYWxpZ246IGxlZnQ7DQogICAgbGluZS1oZWlnaHQ6IDIycHg7DQogICAgY29sb3I6ICM2NjY7DQogICAgdGV4dC1hbGlnbjpjZW50ZXI7DQp9DQoucXJjb2RlLXdyYXBwZXIgI3dlY2hhdC1xcmNvZGUtaW1nIC5xci1sb2dvew0KCXdpZHRoOjI0cHg7DQoJaGVpZ2h0OjI0cHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJdG9wOjUwJTsNCglsZWZ0OjUwJTsNCgltYXJnaW4tdG9wOi0xMnB4Ow0KCW1hcmdpbi1sZWZ0Oi0xMnB4Ow0KCWJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNRQUFBN0VBWlVyRGhzQUFBWjBTVVJCVkVoTGZaWmJqRjFWR2NkL2UrM3J1Y3gwemt3N1pkcFM3R2l0TGExb3F5QzFzVkNtQld4aklrMzBRYUppSEcxVWlNS0QwUmdNNElNSlRRelJGMkpDbENDRW1JaU5saWFWK29ESm9GQXNpUldzcFpZU3pMU2QrN251NjlyK1R4bGpmV0ZOOXBtWmRkYjUxbmY1WDQ3enE2a0w1YUhIVDRJWGtwY0J4aGhLVzFDV1lJS1UxSHBram90ckhLSXN3L1RmdUdxVnhpTXBjMXc4UEJ1U2VJUFV5aVpwUHMvUHY3WUQ1K1AzLzZZOG5Zem9aS3FJTVlrQythNVBHZWM0WllicmVUZ0tFc2N4YmhCUTRpeUhmbmRaUjhGTGhTOE41RG05TUdlRnpXaWFnR2pSeFZ4c0Y0VEZaUXJqa2ljZUEwNUkyTTBZc2daclZxaWFDbmxQWjB5Rm9IRHg5UVMyLzF0RjY0eVgxM0JULzBvRnZkSlNUMXppYkZqdkt6SEhRZjBJU04yR0RpUUVOWldiOUhEQ0NqT0ZQa3ltUXlXVldoMnJyRnlqL010RWwvYXd4S3E0eDBBK296cGlla1ZDNUtxMS9RTFZXazhYNUU2cUM1YVhLWldTU3NRZklGYzF2a21KMDV5NDA2Ylo2dmZVb1owRzVKa2xiV2ZZY0l5czJXWEJOdWhSSSs4V2VHNjRIRzE1YVY3T3RaTkh5cm1ncHN4aTlkZkh1aDZqemlKZnVYTUxHNFlHcUZBb3VDcXBWdm5saXhmNDJMcUk2a0NkWDcvd1R4NDR1TzNLaklMZUhMM0tTcjc3OUd1MDRvTGM2N2RPOVhmYi82dWdkSHdTdGFYb05ubG84amErczNzdGF4b1JvM1VZSDlWRlFjU21Sc3ozUHJ1WmlmVXVrd2UyOG9YdERUWU11MXk3ZHBUcDJTWkxDNTNsYVAxVjZrZHpVdlBWcTRMQjFPcVNKa2xIM1UwU211MEJmdmJjQ2FHaTRFK3ZycUFhWHVLMXd3Y3h1U1dMUW93TldIQmQ5ai95SWt2dFFmemhSU3IxbFdwaFJtRzd1TGFPRVdCTWtRbVdnbGlpWXJ4S2hCa2U0WUZIai9EOUo0OHhjY000UisrOWkwOXZ2c2l6RHg3ZzNJVVdQejB4VFVWNE40THpTT294V0NrWUdHcGgxWkk0dWJxQ2Q1ZEJtTGY5ckh4bG5sV294UW0vZSt6TC9PRHoremk0NC8yMGlvS2RXOGY1MU5vYWpicUdXM1dVWFVLcm5GZjlIbE1QMzhHSnc1L2grdEZCUmZ0L2p2U1g1NUNUYTdEVkl0UTRaN1ZWOHRpVEo3bDUwd0R6R3ZybGFjdnpwOStoV1YrRG4xaW16czB6YzhubG1UKy95WHpUTUtqYS96cmQ0ZlhMTVdrMFNMMFFmSzlhenJxdkh5bW53eW8xa1NrVlUyTmJ4WFdYQlBGQURGNmlkQ1BxWXZsaVZxcFlsMm9TMGZPYXd2b1lianluOUlRVHYwTGtweUtpK09CVUpTMnh5QmhoZTJwOFhYTjJQTTA3eUduWUMwUzJqZlZxK0g0UE54SW5zb0J1Tms5WlZBV0dFS2VpZ0pJUUV5emdEc2Y0alpWaXZ4S0tteXlZWVhySm9tWXFjRWVLcTU0WUkyaXltT0RQelhQOGtYMThWSU91OTg3cEFzdm5QbHpsME80aEhyMW5MNU8zcnBmRzVBVE9MQS9kZlJ2SnJGcjdkaFZhbDFqMFZncmlzRFdjNXY0N1A4aTJvVnhhMXNHSWVLYVYreHk0YVl5ZlRONkVUUTA3dDdWNDl0NzkzREcranZ0MmpYUGY3akdXM3BoaVl2c3dTYnZMbGhGZmdicDg2L1pWSEhud1JocHV6SVpxekkvdTNzRTl0MzZJL1ZzRzJiVjVERWZneVBOU0N1SEJVbXVlZXMyS0VoRjM3ZDNERDU4NGdXa1l6czhzY3MyYVlVYlhqTk5aYXJGNWM0UEQzOXpINmpVT0d3WnFlUEZsSm5aczVLMlpOaStkT3NmZUc2L2podXRHaVlRbUt6VzFrZ3FCdjRVQXdSZWZPc3RmenJiWTlZMWpuRXdxR21iS1NORG02TXRkNmpxVFZrZDUvY3daM2xsTWVmbVY4N1NMQ3JHL25yK2R2Y2hYUHpuS3prMHJPWGFxUzhPUnJEVGZwaWI5eW4zeGFobE5rdXBFY3VzUTFHVTZmc2o1MllUZi9xUGt4MytZb2xvWm85SnJNckxxR3A1NDVqaTM3UGtFalNqbTlLdlBjL05ITnZMMHFVVWUvdjJiTkZaRVBQVUtYSC9MSHZaT2ZBQ3ZjMGt3UGZSY09TYzE5T2p5cFlrdC9PTG92MGhXQklTZERxbU14bkdyckhabkpYQkRuSmt6cklveUJpUXZ2U3loVWkzNDk0S1JWNVFFYnNuRzk2M2pwYi9QeUxBazNZSitxeXMxL2U4RnJySFliRUd3R2hLclMyd2hSNktGU1YwUnlKQ0o3YlhRSSsybFFsaUlVRThoNGpyeUJsZG1sUGVsWHJ1KzlDbFE3L3VmejNQNWdjYWhOK1E3WW0wY05DVFg0bzA4MWxGV21hM1JySWpoVm1JV0RFazJIREw5SDB2b1FubTNWeWlBNXdveEdaRWtta2dDSnhkTTVHUjlrWXo3WWxlcTk0bmE0OGh3UExsWHJuT3BwQnQ1clpVdlNxbkE3VkNVSGFGTWhDeVVuYnk3TGNWTVZYVld5SUJjSzlPUlRtVmR2ZWF5WVBGQWw3dm1NbWJ0eUdxeE10SjJncHRwOHowZXYwODBKUkk0bHZDcTU4cWVudjdmamd5bjU3VXBvNXFNU05YOThZMlpjdkx3Y2Q1aUJEY1hIZDlqbFZkOVpla2JldjhMeHBVOXU3emZiN2oyK21vYnhJYkh2NzJkL3dEVCtQd2tBNEcxTFFBQUFBQkpSVTVFcmtKZ2dnPT0iKTsNCn0NCi5jeiB7IA0KCXBhZGRpbmc6NXB4Ow0KCWZvbnQtc2l6ZTogMTRweDsNCn0NCi5jYXRhbG9nLWJ0bnsNCgltYXJnaW4tcmlnaHQ6MTBweDsNCn0NCjwvc3R5bGU+DQoNCgk8ZGl2IGNsYXNzPSJzaWRlYmFyIj4NCgkJPGRpdiBjbGFzcz0ic2lkZWJhci10YWJzIj4NCgkJCQ0KCQkJCTxkaXYgY2xhc3M9InNpZGViYXItYnRuIGN6IG9wZW5wZGYiPg0KCQkJCQk8c3BhbiBjbGFzcz0idGFiLWljbyBnbHlwaGljb24gZ2x5cGhpY29uLWZpbGUiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjNweDsiPjwvc3Bhbj4NCgkJCQkJPHNwYW4+5YWo5paHPC9zcGFuPiAgDQoJCQkJPC9kaXY+DQoJCQkNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0KCQkJCTxkaXYgY2xhc3M9InNpZGViYXItYnRuIHB1Yl9yZXZpZXcgY3oiIHBlVHlwZT0iSU1QTCIgcElkPSI1NjA5MCI+DQoJCQkJCTxzcGFuPuaEj+ingeW7uuiurjwvc3Bhbj4NCgkJCQk8L2Rpdj4NCgkJCQ0KCQkJDQoJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLWJ0biIgaWQ9InNoYXJlIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojOWRhNWFiOyI+DQoJCQkJPHNwYW4gY2xhc3M9InRhYi1pY28gZ2x5cGhpY29uIGdseXBoaWNvbi1zaGFyZSIgc3R5bGU9InBhZGRpbmc6NXB4OyI+PC9zcGFuPg0KCQkJCTxzcGFuIGlkPSJ3YnNoYXJlIiBjbGFzcz0ic2hhcmUiPg0KCQkJCQk8ZW0+PC9lbT4NCgkJCQk8L3NwYW4+DQoJCQkJPHNwYW4gaWQ9InFxc2hhcmUiIGNsYXNzPSJzaGFyZSI+DQoJCQkJCTxlbT48L2VtPg0KCQkJCTwvc3Bhbj4NCgkJCQk8c3BhbiBpZD0id3hzaGFyZSIgY2xhc3M9InNoYXJlIj4NCgkJCQkJPGVtPjwvZW0+DQoJCQkJPC9zcGFuPg0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InFyY29kZS13cmFwcGVyIiBpZD0ibGF5ZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4NCgk8ZGl2IGNsYXNzPSJwb3B1cF9oZWFkZXIiPg0KCTxlbSBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1yZW1vdmUgaWNvbnNfY2xvc2UiPjwvZW0+DQoJPHNwYW4+5YiG5Lqr5Yiw5b6u5L+h5pyL5Y+L5ZyIPC9zcGFuPg0KCTwvZGl2Pg0KCTxkaXYgaWQ9IndlY2hhdC1xcmNvZGUtaW1nIj4NCgk8aW1nIGNsYXNzPSJxci1sb2dvIi8+DQoJPC9kaXY+DQoJPGRpdiBjbGFzcz0icG9wdXBfZm9vdGVyIj7miZPlvIDlvq7kv6HigJzmiavkuIDmiavigJ3liIbkuqvoh7PmnIvlj4vlnIg8L2Rpdj4NCgk8L2Rpdj4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiQoZnVuY3Rpb24oKXsNCgl2YXIgJGJ0bkNvbnRhaW5lciA9ICQoJzxkaXYgY2xhc3M9InZpc2libGUteHMiPjwvZGl2PicpOw0KCQ0KCXZhciAkYnRuID0gJCgnPGJ1dHRvbiBjbGFzcz0iY2F0YWxvZy1idG4gYnRuIGJ0bi1wcmltYXJ5IG9wZW5wZGYiPuafpeeci+WFqOaWhzwvYnV0dG9uPicpOw0KCSRidG4ucHJlcGVuZCgnPHNwYW4gY2xhc3M9InRhYi1pY28gZ2x5cGhpY29uIGdseXBoaWNvbi1maWxlIiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjNweDsiPjwvc3Bhbj4nKTsNCgkkYnRuQ29udGFpbmVyLmFwcGVuZCgkYnRuKTsNCgkNCgkkYnRuID0gbnVsbDsNCgkNCgkNCgkNCgkJJGJ0biA9ICQoJzxidXR0b24gY2xhc3M9ImNhdGFsb2ctYnRuIGJ0biBidG4taW5mbyBwdWJfcmV2aWV3IiBwZU1vZGU9ImhyZWYiIHBlVHlwZT0iSU1QTCIgcElkPSI1NjA5MCI+5oSP6KeB5bu66K6uPC9idXR0b24+Jyk7DQoJDQoJaWYoJGJ0biE9bnVsbCl7DQoJCSRidG4ucHJlcGVuZCgnPHNwYW4gY2xhc3M9InRhYi1pY28gZ2x5cGhpY29uIGdseXBoaWNvbi1lZGl0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjNweDsiPjwvc3Bhbj4nKTsNCgkJJGJ0bkNvbnRhaW5lci5hcHBlbmQoJGJ0bik7DQoJfQ0KCSQoJy5jYXRhbG9nJykuYmVmb3JlKCRidG5Db250YWluZXIpOw0KCXZhciBwID0gew0KCQkJdXJsOmxvY2F0aW9uLmhyZWYsIC8q6I635Y+WVVJM77yM5Y+v5Yqg5LiK5p2l6Ieq5YiG5Lqr5YiwUVHmoIfor4bvvIzmlrnkvr/nu5/orqEqLw0KCQkJZGVzYzonJywgLyrliIbkuqvnkIbnlLEo6aOO5qC85bqU5qih5ouf55So5oi35a+56K+dKSzmlK/mjIHlpJrliIbkuqvor63pmo/mnLrlsZXnjrDvvIjkvb/nlKh85YiG6ZqU77yJKi8NCgkJCXRpdGxlOlNIQVJFX1RJVExFLCAvKuWIhuS6q+agh+mimCjlj6/pgIkpKi8NCgkJCXN1bW1hcnk6U0hBUkVfU1VNTUFSWSwgLyrliIbkuqvmkZjopoEo5Y+v6YCJKSovDQoJCQlwaWNzOidodHRwOi8vd3d3LnN0ZC5nb3YuY24vaW1hZ2VzL3NoYXJlTG9nby5wbmcnLCAvKuWIhuS6q+WbvueJhyjlj6/pgIkpKi8NCgkJCXBpYzonaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9zaGFyZUxvZ28ucG5nJywgLyrliIbkuqvlm77niYco5Y+v6YCJKSovDQoJCQlmbGFzaDogJycsIC8q6KeG6aKR5Zyw5Z2AKOWPr+mAiSkqLw0KCQkJc2l0ZTonJywgLyrliIbkuqvmnaXmupAo5Y+v6YCJKSDlpoLvvJpRUeWIhuS6qyovDQoJCQlzdHlsZTonMTAxJywNCgkJCXdpZHRoOjk2LA0KCQkJaGVpZ2h0OjI0DQoJfTsNCgl2YXIgcyA9IFtdOw0KCWZvcih2YXIgaSBpbiBwKXsNCgkJcy5wdXNoKGkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQocFtpXXx8JycpKTsNCgl9DQoJJCgnI3dic2hhcmUnKS5jbGljayhmdW5jdGlvbigpew0KCQl3aW5kb3cub3BlbignaHR0cDovL3NlcnZpY2Uud2VpYm8uY29tL3NoYXJlL3NoYXJlLnBocD8nK3Muam9pbignJicpKTsNCgl9KTsNCgkkKCcjcXFzaGFyZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXdpbmRvdy5vcGVuKCdodHRwOi8vY29ubmVjdC5xcS5jb20vd2lkZ2V0L3NoYXJlcXEvaW5kZXguaHRtbD8nK3Muam9pbignJicpKTsNCgl9KTsNCgkkKCcjd3hzaGFyZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCSQoJy5xcmNvZGUtd3JhcHBlcicpLnNob3coKTsNCgl9KTsNCgkkKCcucXJjb2RlLXdyYXBwZXIgLmljb25zX2Nsb3NlJykuY2xpY2soZnVuY3Rpb24oKXsNCgkJJCgnLnFyY29kZS13cmFwcGVyJykuaGlkZSgpOw0KCX0pOw0KCS8v5LqM57u056CB55Sf5oiQDQoJdmFyIGlkID0gJzcxRjc3MkQ4MkMwMkQzQTdFMDUzOTdCRTBBMEFCODJBJzsNCgkkKCIjd2VjaGF0LXFyY29kZS1pbWciKS5xcmNvZGUoeyANCgkgICAgcmVuZGVyOiAiY2FudmFzIiwgDQoJICAgIHdpZHRoOiAxODAsIC8v5a695bqmIA0KCSAgICBoZWlnaHQ6MTgwLCAvL+mrmOW6piANCgkgICAgdGV4dDogd2luZG93LmxvY2F0aW9uLmhyZWYsDQoJICAgIGNvcnJlY3RMZXZlbDogMiwNCgkgICAgZm9yZWdyb3VuZDonIzQyOEJDQScNCgl9KTsgDQoJJCgiLm9wZW5wZGYiKS5jbGljayhmdW5jdGlvbigpew0KCQl3aW5kb3cub3BlbignaHR0cDovL3d3dy5nYjY4OC5jbi9iemdrL2diL25ld0diSW5mbz9oY25vPTYxRUZEMDc1QkQ4MzZGOUYxMTYyQUE3MDI0MzA0Rjg0JywnX2JsYW5rJyk7DQoJfSkNCgkvL+W8ueWHuuWvueivneahhg0KCSQoJy5wdWJfcmV2aWV3JykucHViUmV2aWV3KHsNCgkJJ3Byb3h5JzogJ2h0dHA6Ly93d3cuc3RkLmdvdi5jbi9wcm94eScNCgl9KTsNCn0pOw0KPC9zY3JpcHQ+DQo8L2h0bWw+DQo=
73
+ http_version:
74
+ recorded_at: Thu, 18 Oct 2018 16:41:24 GMT
75
+ - request:
76
+ method: get
77
+ uri: http://www.std.gov.cn/gb/search/gbDetailed?id=71F772D778ADD3A7E05397BE0A0AB82A
78
+ body:
79
+ encoding: US-ASCII
80
+ string: ''
81
+ headers:
82
+ Accept-Encoding:
83
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
84
+ Accept:
85
+ - "*/*"
86
+ User-Agent:
87
+ - Ruby
88
+ response:
89
+ status:
90
+ code: 200
91
+ message: ''
92
+ headers:
93
+ Set-Cookie:
94
+ - JSESSIONID=5212128076142E4D64BCF639C50129A2;path=/;HttpOnly
95
+ Content-Type:
96
+ - text/html;charset=UTF-8
97
+ Content-Language:
98
+ - zh-CN
99
+ Transfer-Encoding:
100
+ - chunked
101
+ Vary:
102
+ - Accept-Encoding
103
+ Date:
104
+ - Thu, 18 Oct 2018 16:41:15 GMT
105
+ body:
106
+ encoding: ASCII-8BIT
107
+ string: !binary |-
108
+ DQoNCg0KDQoNCg0KPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KPGhlYWQ+DQo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPWVkZ2UiIC8+DQo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgbWF4aW11bS1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIi8+DQo8dGl0bGU+5Zu95a625qCH5YeGIC0g5YWo5Zu95qCH5YeG5L+h5oGv5YWs5YWx5pyN5Yqh5bmz5Y+wPC90aXRsZT4NCjxsaW5rIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvYm9vdHN0cmFwL2Nzcy9ib290c3RyYXAubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2Nzcy9pbmRleC5jc3MiIHR5cGU9InRleHQvY3NzIiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vY3NzL3NvY2lhbFB1YmxpY2l0eS5jc3MiIC8+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9jc3MvZGV0YWlsLmNzcyIgdHlwZT0idGV4dC9jc3MiIC8+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcmVzb3VyY2VzL2pxdWVyeS9qcXVlcnktMS45LjEubWluLmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9yZXNvdXJjZXMvYm9vdHN0cmFwL2pzL2Jvb3RzdHJhcC5taW4uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2pzL3NvY2lhbFB1YmxpY2l0eS5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vanMvZGV0YWlsLmpzIj48L3NjcmlwdD4NCjwvaGVhZD4NCjxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kOiNmNWY1ZjU7Ij4NCg0KDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9qcy9sYXllci9sYXllci5qcyI+PC9zY3JpcHQ+DQo8c3R5bGU+DQoubWFpbi1ib2R5IHsNCglwYWRkaW5nOjE1cHg7DQp9DQouYnMtZG9jcy1uYXYgLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTYzZDdjOw0KfQ0KLm5hdmJhci10b2dnbGUgew0KCW1hcmdpbi1yaWdodDowICFpbXBvcnRhbnQ7DQp9IA0KLm5hdmJhci10b2dnbGUgLmljb24tYmFyIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsNCn0NCi5uYXYtbWVudSB7DQoJYmFja2dyb3VuZC1jb2xvcjogIzAwNWRhODsNCglvdmVyZmxvdzpoaWRkZW47DQp9DQoubmF2LW1lbnUgdWx7DQoJbWFyZ2luLWJvdHRvbTowICFpbXBvcnRhbnQ7DQoJIHBhZGRpbmctbGVmdDogMDsNCn0NCi5uYXZiYXItdG9nZ2xlew0KCXBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7DQoJcmlnaHQ6NnB4Ow0KCWN1cnNvcjpwb2ludGVyOw0KfQ0KLm5hdmJhci10b2dnbGU6aG92ZXJ7DQoJYmFja2dyb3VuZC1jb2xvcjogIzQxOGVkZTsNCn0NCi5uYXYtbWVudSB1bCBsaXsNCgljdXJzb3I6cG9pbnRlcjsNCglsaXN0LXN0eWxlOiBub25lOw0KCXdpZHRoOiA5NnB4Ow0KCXRleHQtYWxpZ246IGNlbnRlcjsNCglmbG9hdDogbGVmdDsNCgloZWlnaHQ6IDQzcHg7DQogICAgbGluZS1oZWlnaHQ6IDQzcHg7DQogICAgY29sb3I6ICNmZmY7DQogICAgbWFyZ2luLXJpZ2h0OiA3cHg7DQogICAgZm9udC1zaXplOiAxNnB4Ow0KfQ0KLm5hdi1tZW51IHVsIGxpOmhvdmVyew0KCWJhY2tncm91bmQtY29sb3I6ICMzMzhlZmY7DQp9DQoubmF2LW1lbnUgdWwgbGkgYSB7DQogICAgY29sb3I6ICNmZmY7DQp9DQoubmF2LW1lbnUgdWwgbGkgYTpob3ZlciwubmF2LW1lbnUgbGkgYTpmb2N1cywubmF2LW1lbnUgbGkgYTpsaW5rew0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCi5uYXYtbWVudSAubmF2X2luIHsNCiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGY4OWViOw0KfQ0KDQoNCg0KQG1lZGlhIChtYXgtd2lkdGg6IDEyMDBweCl7DQoJLm5hdi1tZW51IHVsIGxpIHsNCgkgICAgd2lkdGg6IDg0cHg7DQoJfQkNCn0NCkBtZWRpYSAobWF4LXdpZHRoOiA5OTJweCkgeyANCgkubmF2LW1lbnUgdWwgbGkgew0KCSAgICB3aWR0aDogNjhweDsNCiAgICAJbWFyZ2luLXJpZ2h0OiA0cHg7DQogICAgCWZvbnQtc2l6ZTogMTRweDsNCgl9DQoJI2xvZ2luLWFyZWF7DQoJCXRvcDogNTlweCAhaW1wb3J0YW50Ow0KICAgIAlyaWdodDogMjRweCAhaW1wb3J0YW50Ow0KCX0JDQp9DQpAbWVkaWEgKG1heC13aWR0aDogMzY4cHgpIHsNCgkubmF2YmFyLWJyYW5kIHNtYWxsew0KCQlkaXNwbGF5Om5vbmU7DQoJfQ0KfQ0KQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7IA0KCS5tYWluLWJvZHkgew0KCSAgIHBhZGRpbmc6MDsNCgl9DQoJLm5hdi1tZW51LXNob3d7DQoJCWRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsNCgkJaGVpZ2h0OjE1MHB4IWltcG9ydGFudDsNCgl9DQoJLm5hdi1tZW51IHsNCgkJaGVpZ2h0OjA7DQoJICAgCWJhY2tncm91bmQtY29sb3I6ICMzZjc1Yjc7DQoJICAgCXRyYW5zaXRpb246aGVpZ2h0IDUwMG1zOw0KCSAgIAktbW96LXRyYW5zaXRpb246aGVpZ2h0IDUwMG1zOyAvKiBGaXJlZm94IDQgKi8NCgkJLXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCA1MDBtczsgLyogU2FmYXJpIGFuZCBDaHJvbWUgKi8NCgkJLW8tdHJhbnNpdGlvbjpoZWlnaHQgNTAwbXM7IC8qIE9wZXJhICovDQoJfQ0KCS5uYXYtbWVudSAubmF2X2luIHsNCgkgICAgYmFja2dyb3VuZC1jb2xvcjogIzMzOGVmZjsNCgl9IA0KCS5uYXYtbWVudSB1bCBsaSB7DQoJCWRpc3BsYXk6YmxvY2s7DQoJICAgIHdpZHRoOiAzMy4zMzMzMyU7DQoJICAgIGhlaWdodDogNTBweDsNCgkgICAgbGluZS1oZWlnaHQ6IDUwcHg7DQoJICAgIGZvbnQtc2l6ZTogMTZweDsNCgkgICAgbWFyZ2luLXJpZ2h0OjA7DQoJICAgIGJvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7DQoJICAgIGZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7DQoJfQ0KCS5uYXYtbWVudSB1bCBsaTpudGgtY2hpbGQoLTFuKzQpew0KCQlib3JkZXItdG9wOjA7DQoJfQ0KCS5uYXYtbWVudSB1bCBsaSBhIHsNCgkgICAgY29sb3I6IHdoaXRlOw0KCX0NCgkuaGVhZGVyLWNhcm91c2VsIHsNCiAgICAJYm9yZGVyOiAwOw0KCX0NCgkjdG9wLWJnIHsNCgkJYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9sb2dvaW1nLmpwZykgcmlnaHQgLTExMHB4IGNlbnRlciBuby1yZXBlYXQgIzE4N2VkMCAhaW1wb3J0YW50Ow0KCX0NCgkjbG9naW4tYXJlYXsNCgkJZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KCX0NCgkNCn0NCjwvc3R5bGU+DQo8IS0tIFBIUFN0YXQgU3RhcnQgLS0+DQo8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0IiBpZD0icGhwc3RhdF9qc19pZF8xMDAwMjk1MCI+DQp2YXIgX3RyYWNrRGF0YVR5cGUgPSAnd2ViJzsNCnZhciBfdHJhY2tEYXRhID0gX3RyYWNrRGF0YSB8fCBbXTsNCihmdW5jdGlvbigpIHsNCnZhciBwaHBzdGF0X2pzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHBocHN0YXRfanMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOyANCnBocHN0YXRfanMuY2hhcnNldCA9ICd1dGYtOCc7IHBocHN0YXRfanMuaWQgPSAncGhwc3RhdF9hc3luY19qc19pZF8xMDAwMjk1MCc7IHBocHN0YXRfanMuYXN5bmMgPSB0cnVlOw0KcGhwc3RhdF9qcy5zcmMgPSAnLy9zMS50b3BzdGF0LmNuL2NvdW50LzEwMDAyOTUwLzEwMDAyOTUwLmpzJzsNCnZhciBwaHBzdGF0X2NqcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTsgcGhwc3RhdF9janMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocGhwc3RhdF9qcywgcGhwc3RhdF9janMpOw0KfSkoKTsNCjwvc2NyaXB0Pg0KPCEtLS9QSFBTdGF0IEVuZCAtLT4NCjxzY3JpcHQ+DQokKGZ1bmN0aW9uKCl7DQoJZG9jdW1lbnQub25rZXlkb3duID0gZnVuY3Rpb24oZSl7DQoJCSAgIGlmKCFlKXsNCgkJICAgIGUgPSB3aW5kb3cuZXZlbnQ7DQoJCSAgIH0NCgkJICAgaWYoKGUua2V5Q29kZSB8fCBlLndoaWNoKSA9PSAxMyl7DQoJCQkJLy/nmbvpmYYNCgkJCQkkKCcuYnRuU3VtaXQnKS5jbGljaygpOw0KCQkgICB9DQoJfQkNCgkNCgkkKCcubmF2YmFyLXRvZ2dsZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCSQoJy5uYXYtbWVudScpLnRvZ2dsZUNsYXNzKCJuYXYtbWVudS1zaG93Iik7DQoJfSk7DQoJJCgnLm5hdi1tZW51IGxpJykuY2xpY2soZnVuY3Rpb24oKXsNCgkJdmFyIHRhcmdldCA9ICQodGhpcykuZmluZCgiYSIpLmF0dHIoJ3RhcmdldCcpOw0KCQl2YXIgaHJlZiA9ICQodGhpcykuZmluZCgiYSIpLmF0dHIoJ2hyZWYnKQ0KCQlpZih0YXJnZXQ9PW51bGx8fHRhcmdldD09Jycpew0KCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSBocmVmOw0KCQl9IGVsc2Ugew0KCQkJd2luZG93Lm9wZW4oaHJlZik7DQoJCX0NCgkJcmV0dXJuIGZhbHNlOw0KCX0pOw0KCQ0KCSQuYWpheFNldHVwICh7DQogICAgICAgIGNhY2hlOiBmYWxzZSwgLy/lhbPpl61BSkFY57yT5a2YDQogICAgICAgIGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIsICANCiAgICAgICAgY29tcGxldGU6ZnVuY3Rpb24oWE1MSHR0cFJlcXVlc3QsdGV4dFN0YXR1cyl7ICANCiAgICAgICAgICAgIC8v6YCa6L+HWE1MSHR0cFJlcXVlc3Tlj5blvpflk43lupTlpLTvvIxzZXNzaW9uc3RhdHVz77yMICANCiAgICAgICAgICAgIHZhciBzZXNzaW9uc3RhdHVzPVhNTEh0dHBSZXF1ZXN0LmdldFJlc3BvbnNlSGVhZGVyKCJzZXNzaW9uc3RhdHVzIik7ICAgDQogICAgICAgICAgICBpZihzZXNzaW9uc3RhdHVzPT0idGltZW91dCIpeyAgDQogICAgICAgICAgICAgICBsYXllci5tc2coJ+eZu+W9lei2heaXticpOw0KICAgICAgICAgICAgICAgbG9naW5Qb3AoKTsNCiAgICAgICAgICAgIH0gIA0KICAgICAgICB9ICANCiAgICB9KTsNCn0pOw0KDQoNCmZ1bmN0aW9uIGdldExvZ2luZWRBcmVhKGRhdGEpew0KCXZhciBsb2dpbmVkQXJlYSA9ICc8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcHJvcG9zYWwvcHJvcG9zYWxRdWVyeSIgc3R5bGU9ImNvbG9yOiAjZmZmOyI+5oiR55qE6LSm5oi3PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9nb3V0KCkiIHN0eWxlPSJjb2xvcjogI2YwMDsiIHRpdGxlPSLms6jplIAiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW9mZiI+PC9zcGFuPjwvYT4nDQoJCSsnPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZV91c2VybmFtZSIgdmFsdWU9JytkYXRhLnVzZXJuYW1lKycgc3R5bGU9ImRpc3BsYXk6bm9uZSIgLz4gICcNCgkJKyc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlX3JlYWxuYW1lIiB2YWx1ZT0nK2RhdGEucmVhbG5hbWUrJyBzdHlsZT0iZGlzcGxheTpub25lIiAvPiAgJw0KCQkrJzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icmVfbW9iaWxlIiAgIHZhbHVlPScrZGF0YS5tb2JpbGUrJyAgIHN0eWxlPSJkaXNwbGF5Om5vbmUiIC8+ICAnDQoJCSsnPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZV9lbWFpbCIgICAgdmFsdWU9JytkYXRhLmVtYWlsKycgICAgc3R5bGU9ImRpc3BsYXk6bm9uZSIgLz4gICcNCgkJKyc8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InJlX3Jlc291cmNlIiB2YWx1ZT0nK2RhdGEucmVzb3VyY2UrJyBzdHlsZT0iZGlzcGxheTpub25lIiAvPiAgJzsNCglyZXR1cm4gbG9naW5lZEFyZWE7DQp9DQoNCnZhciBpc0xvZ29uID0gISgnJz09JycpOw0KLyrnmbvlvZXnirbmgIHnm5HmjqcqLw0KJChmdW5jdGlvbigpew0KCQ0KCXZhciB1YWNTZXJ2ZXJVcmwgPSAnJzsNCgl2YXIgY2FzU2VydmVyVXJsID0gJyc7DQoJDQoJdmFyIHNhY1VhY1NlcnZlclVybCA9ICdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuL3VhYyc7DQoJdmFyIHNhY0Nhc1NlcnZlclVybCA9ICdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuJzsNCgkNCgkNCgkvL+mmluWFiOajgOa1i+ekvuS8muWFrOS8l+eZu+W9leeKtuaAgQ0KCWlmKCFpc0xvZ29uKXsNCgkJDQoJCXZhciByZXF1ZXN0VVJJID0gJyc7DQoJCQ0KCQkkLmFqYXgoew0KCQkJdHlwZTogIkdFVCIsDQoJCQl1cmw6IHVhY1NlcnZlclVybCArICIvY2xpZW50TG9naW4vY2hlY2tVdWlkLmRvIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCWlmKGRhdGEucmVzdWx0KSB7DQoJCQkJCXZhciB1dWlkID0gKGRhdGEudXVpZCk7DQoJCQkJCWlmKHV1aWQ9PW51bGx8fHV1aWQ9PSIiKXsNCgkJCQkJCQ0KCQkJCQl9ZWxzZXsNCgkJCQkJCSQuYWpheCh7DQoJCQkJCQkJdHlwZTogIkdFVCIsDQoJCQkJCQkJdXJsOiAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvbG9naW5CeVVVSUQuZG8iLA0KCQkJCQkJCWRhdGE6eyd1dWlkJzp1dWlkfSwNCgkJCQkJCQlkYXRhVHlwZTogJ0pTT04nLA0KCQkJCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKGdldExvZ2luZWRBcmVhKGRhdGEpKTsNCgkJCQkJCQkJCS8vd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL3d3dy5zdGQuZ292LmNuIityZXF1ZXN0VVJJOw0KCQkJCQkJCQl9DQoJCQkJCQkJCS8qIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsgKi8NCgkJCQkJCQl9DQoJCQkJCQl9KTsNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJDQoJCQkJfSBlbHNlIHsNCgkJCQkJLy/msqHmnInmo4DmtYvliLB1dWlk77yM5YiZ5byA5aeL5qOA5rWLc2FjDQoJCQkJCSQuYWpheCh7DQoJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCXVybDogc2FjVWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9jaGVja1V1aWQuZG8iLA0KCQkJCQkJZGF0YVR5cGU6ICdKU09OUCcsDQoJCQkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQkJCWpzb25wOiAianNvbnBDYWxsYmFjayIsDQoJCQkJCQl0aW1lb3V0OjEwMDAsDQoJCQkJCQlzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCQkJaWYoZGF0YS5yZXN1bHQpIHsNCgkJCQkJCQkJdmFyIHV1aWQgPSAoZGF0YS51dWlkKTsNCgkJCQkJCQkJaWYodXVpZD09bnVsbHx8dXVpZD09IiIpew0KCQkJCQkJCQkJDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJLy/ojrflj5bnlKjmiLflr7nosaHvvIzmiafooYznmbvlvZUNCgkJCQkJCQkJCSQuYWpheCh7DQoJCQkJCQkJCQkJdHlwZTogIkdFVCIsDQoJCQkJCQkJCQkJdXJsOiAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvc2FjTG9naW5CeVVVSUQuZG8iLA0KCQkJCQkJCQkJCWRhdGE6eyd1dWlkJzp1dWlkfSwNCgkJCQkJCQkJCQlkYXRhVHlwZTogJ0pTT04nLA0KCQkJCQkJCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJCQkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKGdldExvZ2luZWRBcmVhKGRhdGEpKTsNCgkJCQkJCQkJCQkJCS8vd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOw0KDQoJCQkJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJCQkJd2luZG93LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL3d3dy5zdGQuZ292LmNuIityZXF1ZXN0VVJJOw0KCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCS8qIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsgKi8NCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9KTsNCgkJCQkJCQkJfQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCWlzSW50ZXJjZXB0ZWQoKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0pLmZhaWwoZnVuY3Rpb24oanFYSFIsIHRleHRTdGF0dXMsIGVycm9yVGhyb3duKXsNCgkJCQkJCWlzSW50ZXJjZXB0ZWQoKTsNCgkJCQkJfSk7DQoJCQkJCQ0KCQkJCQkNCgkJCQl9DQoJCQl9DQoJCX0pOwkNCg0KCX1lbHNlew0KCQkvL+ajgOa1i+azqOmUgA0KCQkkLmFqYXgoew0KCQkJdHlwZTogIkdFVCIsDQoJCQl1cmw6IHVhY1NlcnZlclVybCArICIvY2xpZW50TG9naW4vY2hlY2tVdWlkLmRvIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCWlmKGRhdGEucmVzdWx0KXsNCgkJCQkJdmFyIHV1aWQgPSAoZGF0YS51dWlkKTsNCgkJCQkJaWYodXVpZD09bnVsbHx8dXVpZD09IiIpew0KCQkJCQkJbG9nb3V0KCk7DQoJCQkJCX0NCgkJCQl9ZWxzZXsNCgkJCQkJLy/msqHmnInmo4DmtYvliLB1dWlk77yM5YiZ5byA5aeL5qOA5rWLc2FjDQoJCQkJCSQuYWpheCh7DQoJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCXVybDogc2FjVWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9jaGVja1V1aWQuZG8iLA0KCQkJCQkJZGF0YVR5cGU6ICdKU09OUCcsDQoJCQkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQkJCWpzb25wOiAianNvbnBDYWxsYmFjayIsDQoJCQkJCQl0aW1lb3V0OjEwMDAsDQoJCQkJCQlzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCQkJaWYoZGF0YS5yZXN1bHQpIHsNCgkJCQkJCQkJaWYoZGF0YS51dWlkPT1udWxsfHxkYXRhLnV1aWQ9PSIiKXsNCgkJCQkJCQkJCWxvZ291dCgpOw0KCQkJCQkJCQl9DQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCWxvZ291dCgpOw0KCQkJCQkJCX0NCgkJCQkJCX0NCgkJCQkJfSkuZmFpbChmdW5jdGlvbihqcVhIUiwgdGV4dFN0YXR1cywgZXJyb3JUaHJvd24pew0KCQkJCQkJbG9nb3V0KCk7DQoJCQkJCX0pOw0KCQkJCX0NCgkJCX0NCgkJfSk7DQoJfQ0KCQ0KCQ0KfSk7DQoNCg0KDQovL+ebkeaOp+aYr+WQpuiiq+aLpuaIquWZqOaLpuWHug0KZnVuY3Rpb24gaXNJbnRlcmNlcHRlZCgpew0KCXZhciBpc0ludGVyY2VwdGVkID0gISgnJz09JycpOw0KCWlmKGlzSW50ZXJjZXB0ZWQpew0KCQlsb2dpbkxheWVyKCk7DQoJfQ0KfQ0KDQoNCnZhciBJbnRlclZhbE9iajsgLy90aW1lcuWPmOmHj++8jOaOp+WItuaXtumXtA0KdmFyIGNvdW50ID0gMTgwOyAvL+mXtOmalOWHveaVsO+8jDHnp5LmiafooYwNCnZhciBjdXJDb3VudDsvL+W9k+WJjeWJqeS9meenkuaVsA0KDQpmdW5jdGlvbiBzZW5kTWVzc2FnZShudW0pew0KCWN1ckNvdW50ID0gbnVtOw0KCS8v6K6+572uYnV0dG9u5pWI5p6c77yM5byA5aeL6K6h5pe2DQoJJCgiI2dldFBDb2RlSW5wdXQiKS5hdHRyKCJkaXNhYmxlZCIsICJkaXNhYmxlZCIpOw0KCSQoIiNnZXRQQ29kZUlucHV0IikuaHRtbChjdXJDb3VudCArICLnp5IiKTsNCglJbnRlclZhbE9iaiA9IHdpbmRvdy5zZXRJbnRlcnZhbChTZXRSZW1haW5UaW1lLCAxMDAwKTsgLy/lkK/liqjorqHml7blmajvvIwx56eS5omn6KGM5LiA5qyhDQp9DQoNCi8vdGltZXLlpITnkIblh73mlbANCmZ1bmN0aW9uIFNldFJlbWFpblRpbWUoKSB7DQogICAgaWYgKGN1ckNvdW50ID09IDApIHsgICAgICAgICAgICAgICAgDQogICAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKEludGVyVmFsT2JqKTsvL+WBnOatouiuoeaXtuWZqA0KICAgICAgICAkKCIjZ2V0UENvZGVJbnB1dCIpLnJlbW92ZUF0dHIoImRpc2FibGVkIik7Ly/lkK/nlKjmjInpkq4NCiAgICAgICAgJCgiI2dldFBDb2RlSW5wdXQiKS5odG1sKCLojrflj5bpqozor4HnoIEiKTsNCiAgICB9DQogICAgZWxzZSB7DQogICAgICAgIGN1ckNvdW50LS07DQogICAgICAgICQoIiNnZXRQQ29kZUlucHV0IikuaHRtbChjdXJDb3VudCArICLnp5IiKTsNCiAgICB9DQp9DQoNCi8v5YGc5q2i6K6h5pe25ZmoDQpmdW5jdGlvbiBvdmVyUmVtYWluVGltZSgpew0KCXdpbmRvdy5jbGVhckludGVydmFsKEludGVyVmFsT2JqKTsvL+WBnOatouiuoeaXtuWZqA0KICAgICQoIiNnZXRQQ29kZUlucHV0IikucmVtb3ZlQXR0cigiZGlzYWJsZWQiKTsNCiAgICAkKCIjZ2V0UENvZGVJbnB1dCIpLmh0bWwoIuiOt+WPlumqjOivgeeggSIpOw0KfQ0KZnVuY3Rpb24gY2hhbmdlQ29kZSgpew0KCXZhciBpbWdOb2RlID0gJCgiLmxheXVpLXZpbWciKTsNCgl2YXIgc3JjU3RyID0gImh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldC92Y29kZS5kbz90PSIrIE1hdGgucmFuZG9tKCk7DQoJaW1nTm9kZS5hdHRyKCJzcmMiLCBzcmNTdHIpOw0KfQ0KDQpmdW5jdGlvbiBnZXRQaG9uZU1zZygpew0KCQ0KCQ0KCQ0KCXZhciB2Y29kZSA9ICQudHJpbSgkKCcjdmNvZGUnKS52YWwoKSk7DQoJDQoJDQoJaWYodmNvZGU9PW51bGx8fHZjb2RlPT0iIil7DQoJCWxheWVyLnRpcHMoJ+ivt+i+k+WFpeWbvueJh+mqjOivgeeggScsICcjdmNvZGUnLCB7DQoJCQkgIHRpcHM6IFsxLCAnI2YwMGUwZSddLA0KCQkJICB0aW1lOiAzMDAwDQoJCX0pOw0KCQlyZXR1cm47DQoJfQkNCg0KCXZhciB1c2VybmFtZSA9ICQudHJpbSgkKCcjY2VsbHBob25lJykudmFsKCkpOw0KCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQlsYXllci50aXBzKCfor7fovpPlhaXnlKjmiYvmnLrlj7cnLCAnI2NlbGxwaG9uZScsIHsNCgkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkgIHRpbWU6IDMwMDANCgkJCX0pOw0KCQlyZXR1cm47DQoJfQkNCgkNCgl2YXIgcmVzdWx0ID0gZ2V0UENvZGUoJ21Mb2dpbkZvcm0nKTsNCgkNCgkNCgkNCglpZiAocmVzdWx0LnN1Y2Nlc3M9PXRydWUpIHsNCgkJCXNlbmRNZXNzYWdlKHJlc3VsdC5kYXRldGltZSk7DQoJCQlyZXR1cm4gZmFsc2U7DQoJfWVsc2V7DQoJCQlsYXllci5tc2cocmVzdWx0LmVycm9yTWVzc2FnZSwge2ljb246IDV9KTsNCgkJCXJldHVybiBmYWxzZTsNCgl9DQp9DQp2YXIgbG9naW5IdG1sID0gJzxkaXY+JysNCic8ZGl2PicrDQonPHVsIGNsYXNzPSJuYXYgbmF2LXRhYnMgbmF2LWp1c3RpZmllZCBzZWFyY2gtaGVhZCI+JysNCgknPGxpIG9uY2xpY2s9ImNoYW5nZVRhYigxKSIgY2xhc3M9ImxvZ2luSGVhZCBhY3RpdmUiPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSI+56S+5Lya5YWs5LyXPC9hPjwvbGk+JysNCgknPGxpIG9uY2xpY2s9ImNoYW5nZVRhYigyKSIgY2xhc3M9ImxvZ2luSGVhZCI+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIj5TQUPnlKjmiLc8L2E+PC9saT4nKw0KJzwvdWw+JysNCic8ZGl2IGNsYXNzPSJzZWFyY2gtYm9keSI+JysNCgkvL+ekvuS8muWFrOS8lw0KCSc8ZGl2IGNsYXNzPSJzZWFyY2gtZm9ybSBsb2dpbkJvZHkiIHN0eWxlPSJkaXNwbGF5OiBibG9jazsiPicrDQoJJyAgPGRpdiBzdHlsZT0ibWFyZ2luOiAyNXB4OyI+JysNCgknCTxsYWJlbCBjbGFzcz0icmFkaW8taW5saW5lIj4nKw0KCScJICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9ImxvZ2luU2VsZWN0IiBvbmNsaWNrPSJjaGFuZ2VMb2dpblR5cGUoMSkiICB2YWx1ZT0icCIgY2hlY2tlZD0iY2hlY2tlZCI+IOWvhueggeeZu+W9lSAnKw0KCScJPC9sYWJlbD4nKw0KCScJPGxhYmVsIGNsYXNzPSJyYWRpby1pbmxpbmUiPicrDQoJJwkgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ibG9naW5TZWxlY3QiIG9uY2xpY2s9ImNoYW5nZUxvZ2luVHlwZSgyKSIgIiB2YWx1ZT0ibSI+IOefreS/oeeZu+W9lSAnKw0KCScJPC9sYWJlbD4nKw0KCScgIDwvZGl2PicrDQoJLy/lr4bnoIHnmbvlvZUNCgknICA8ZGl2IHN0eWxlPSJtYXJnaW46IDI1cHg7Ij4nKw0KCScgIDxkaXYgaWQ9InBMb2dpbiI+JysNCgknICAgICAgPGZvcm0gaWQ9InBMb2dpbkZvcm0iIGFjdGlvbj0iIyIgbWV0aG9kPSJwb3N0Ij4nKw0KCScgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+JysNCiAgICAnICAgICAgICAgIDxsYWJlbD7nlKjmiLflkI08L2xhYmVsPicrDQogICAgJyAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InVzZXJuYW1lMSIgcGxhY2Vob2xkZXI9Iuivt+WcqOatpOi+k+WFpeeUqOaIt+WQjSIgbmFtZT0idXNlcm5hbWUiLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+5a+G56CBPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icGFzc3dvcmQxIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl5a+G56CBIiBuYW1lPSJwYXNzd29yZCIgLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCiAgICAnICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIHJhZGl1cyBmb3JtLXN1Ym1pdCBidG5TdW1pdDEgYnRuU3VtaXQiICB0eXBlPSJidXR0b24iIG9uY2xpY2s9ImRvU3VibWl0QnlQd2QoKSI+55m7IOW9lTwvYnV0dG9uPicrDQogICAgJyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9maW5kUHdkIiB0YXJnZXQ9Il9ibGFuayI+IOW/mOiusOWvhuegge+8nyAgPC9hPicrDQoJJyAgICAgIDwvZm9ybT4nKw0KCScgIDwvZGl2PicrDQoJLy/nn63kv6HnmbvlvZUNCgknICA8ZGl2IGlkPSJtTG9naW4iIHN0eWxlPSJkaXNwbGF5OiBub25lIj4nKw0KCScgICAgICA8Zm9ybSBpZD0ibUxvZ2luRm9ybSIgYWN0aW9uPSIjIiBtZXRob2Q9InBvc3QiPicrDQoJJyAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4nKw0KICAgICcgICAgICAgICAgPGxhYmVsPuaJi+acuuWPt+eggTwvbGFiZWw+JysNCiAgICAnICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0iY2VsbHBob25lIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl5omL5py65Y+3IiBuYW1lPSJhY2NvdW50Ii8+JysNCiAgICAnICAgICAgICAgIDwvZGl2PicrCQkJDQoJJyAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4nKw0KICAgICcgICAgICAgICAgPGxhYmVsPuefreS/oemqjOivgTwvbGFiZWw+JysNCiAgICAnICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+JysNCiAgICAnICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtbWQtOCI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJwQ29kZSIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InBjb2RlIiBwbGFjZWhvbGRlcj0i6K+35Zyo5q2k6L6T5YWl55+t5L+h6aqM6K+B56CBIiBuYW1lPSJwY29kZSIvPjwvZGl2PicrDQogICAgJyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTQiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZ2V0UENvZGVJbnB1dCIgb25jbGljaz0iZ2V0UGhvbmVNc2coKSIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG5jeCIgc3R5bGU9ImZsb2F0OiByaWdodDsgbGluZS1oZWlnaHQ6IDIwcHg7IG1hcmdpbi10b3A6IDBweDsiPuiOt+WPlumqjOivgeeggTwvYnV0dG9uPiA8L2Rpdj4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCiAgICAnICAgICAgICAgIDwvZGl2PicrDQogICAgJyAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPicrDQoJJyAgICAgIAkgICAgICAgPGRpdiBjbGFzcz0iY29sLW1kLTgiPjxpbnB1dCAgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9InZjb2RlIiBuYW1lPSJyYW5kIiBwbGFjZWhvbGRlcj0i6aqM6K+B56CBIiB2YWx1ZT0iIj48L2Rpdj4nKw0KCScgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1tZC00Ij48aW1nIGNsYXNzPSJsYXl1aS12aW1nIiBzdHlsZT0iaGVpZ2h0OiAzNHB4OyBmbG9hdDogcmlnaHQ7IiB0aXRsZT0i54K55Ye75pu05o2iIiBvbmNsaWNrPSJjaGFuZ2VDb2RlKCk7IiBzcmM9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldC92Y29kZS5kbyI+PC9kaXY+JysNCiAgICAnICAgICAgICAgIDwvZGl2Pjxici8+JysJDQogICAgJyAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciByYWRpdXMgZm9ybS1zdWJtaXQgYnRuU3VtaXQyIiAgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJkb1N1Ym1pdEJ5UGhvbmUoKSI+55m7IOW9lTwvYnV0dG9uPicrDQogICAgJyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9maW5kUHdkIiB0YXJnZXQ9Il9ibGFuayI+IOW/mOiusOWvhuegge+8nyAgPC9hPicrCQkJCSAgICANCgknICAgICAgPC9mb3JtPicrDQoJJyAgPC9kaXY+JysNCgknICA8L2Rpdj4nKw0KCSc8L2Rpdj4nKw0KCS8vU0FD55So5oi35YWs5LyXDQoJJzxkaXYgIGNsYXNzPSJzZWFyY2gtZm9ybSBsb2dpbkJvZHkiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+JysNCgknJysgICAgICAgICAgDQoJJyAgPGRpdiBzdHlsZT0ibWFyZ2luOiAyNXB4OyI+JysNCgknICA8ZGl2IGlkPSJzYWNMb2dpbiIgc3R5bGU9Im1hcmdpbi10b3A6IDQwcHg7Ij4nKw0KCScgICAgICA8Zm9ybSBpZD0ic2FjTG9naW5Gb3JtIiBhY3Rpb249IiMiIG1ldGhvZD0icG9zdCI+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+55So5oi35ZCNPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhY2NvdW50MyIgY2xhc3M9ImZvcm0tY29udHJvbCIgcGxhY2Vob2xkZXI9Iuivt+i+k+WFpVNBQ+i0puWPtyIgbmFtZT0iYWNjb3VudDMiLz4nKw0KICAgICcgICAgICAgICAgPC9kaXY+JysNCgknICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPicrDQogICAgJyAgICAgICAgICA8bGFiZWw+5a+G56CBPC9sYWJlbD4nKw0KICAgICcgICAgICAgICAgPGlucHV0IHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZm9ybS1jb250cm9sIiBpZD0icENvZGUzIiBuYW1lPSJwQ29kZTMiIHBsYWNlaG9sZGVyPSLor7flnKjmraTovpPlhaXlr4bnoIEiIG5hbWU9InBhc3N3b3JkIiAvPicrDQogICAgJyAgICAgICAgICA8L2Rpdj4nKw0KICAgICcgICAgICAgICAgPGlucHV0IGNsYXNzPSJidG4gYnRuLWRhbmdlciByYWRpdXMgZm9ybS1zdWJtaXQgYnRuU3VtaXQzIiAgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJhamF4TG9naW4oXCdodHRwOi8vdWFjLnNhY2luZm8ub3JnLmNuL3VhY1wnKTsiIHZhbHVlPSJTQUPnmbvlvZUiIC8+PGEgaHJlZj0iaHR0cDovL3VhYy5zYWNpbmZvLm9yZy5jbi91YWMvZm9yZ2V0L2ZpbmRpbmdQYXNzd29yZC5kbyIgdGFyZ2V0PSJfYmxhbmsiPiDlv5jorrDlr4bnoIHvvJ8gIDwvYT4nKw0KICAgICcgICAgICAgICAgJysJDQoJJyAgICAgICAgICA8UCBzdHlsZT0iZm9udC1zaXplOiAxMnB4OyBjb2xvcjogYmx1ZTsgbWluLWhlaWdodDogNTBweDsiPicrDQoJJyAgICAgICAgICA8YnI+IDxlbSBpZD0iSl9FcnJvck1zZyIgc3R5bGU9ImNvbG9yOiByZWQ7Ij48L2VtPiAnKw0KICAgICcgICAgICAgICAgPC9QPicrDQoJJyAgICAgIDwvZm9ybT4nKw0KCScgIDwvZGl2PicrICAgICAgDQoJJyAgPC9kaXY+JysgICAgICANCgknJysgICAgICAgICAgDQoJJzwvZGl2PicrICAgICAgICAgICAgICAgIA0KJzwvZGl2PicrDQonPC9kaXY+JysNCic8L2Rpdj4nOw0KZnVuY3Rpb24gbG9naW5Qb3AoKXsNCglsYXllci5vcGVuKHsNCgkJICB0eXBlOiAxLA0KCQkgIHRpdGxlOifnlKjmiLfnmbvlvZUnLA0KCQkgIGNsb3NlQnRuOmZhbHNlLA0KCQkgIHNraW46ICdsYXl1aS1sYXllci1yaW0nLCAvL+WKoOS4iui+ueahhg0KCQkgIGNvbnRlbnQ6IGxvZ2luSHRtbA0KCX0pOw0KCSQoJyN1c2VybmFtZTEnKS5mb2N1cygpOw0KfQ0KZnVuY3Rpb24gbG9naW5MYXllcigpew0KCWxheWVyLm9wZW4oew0KCQkgIHR5cGU6IDEsDQoJCSAgdGl0bGU6J+eUqOaIt+eZu+W9lScsDQoJCSAgc2hhZGVDbG9zZSA6dHJ1ZSwNCgkJICBza2luOiAnbGF5dWktbGF5ZXItcmltJywgLy/liqDkuIrovrnmoYYNCgkJICBjb250ZW50OiBsb2dpbkh0bWwNCgl9KTsNCgkkKCcjbG9naW5BVGFnJykuYmx1cigpOw0KfQ0KLy/liIfmjaJ0YWLpobXpnaINCmZ1bmN0aW9uIGNoYW5nZVRhYihudW0pew0KCSAgdmFyIGhlYWRzID0gJCgiLmxvZ2luSGVhZCIpOw0KCSAgdmFyIGJvZHlzID0gJCgiLmxvZ2luQm9keSIpOw0KCSAgZm9yKHZhciBpPTA7aTxoZWFkcy5sZW5ndGg7aSsrKXsNCgkJJChoZWFkc1tpXSkucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpOw0KCQkkKGJvZHlzW2ldKS5jc3MoJ2Rpc3BsYXknLCdub25lJyk7DQoJCWlmKGk9PShudW0tMSkpew0KCQkJJChoZWFkc1tpXSkuYWRkQ2xhc3MoImFjdGl2ZSIpOw0KCQkJJChib2R5c1tpXSkuY3NzKCdkaXNwbGF5JywnYmxvY2snKTsNCgkJfQ0KCSAgfQ0KCSAgDQoJICANCgkgIC8v5aaC5p6cbnVt5Li6MeWImeS4uuekvuS8muWFrOS8l+eZu+mZhu+8jOWwhuWbnui9pumUrue7keWumuWIsGJ0blN1bWl0MeS4iu+8jOWQpuWImee7keWumuWIsGJ0blN1bWl0M+S4ig0KCSAgaWYobnVtPT0xKXsNCgkJICBpZigkKCIuYnRuU3VtaXQxIikuaGFzQ2xhc3MoImJ0blN1bWl0Iikpew0KCQkJICANCgkJICB9ZWxzZXsNCgkgCQkgICQoIi5idG5TdW1pdDEiKS5hZGRDbGFzcygiYnRuU3VtaXQiKTsNCgkJCSAgJCgiLmJ0blN1bWl0MiIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQkJICAkKCIuYnRuU3VtaXQzIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7IA0KCQkgIH0NCgkgIH1lbHNlew0KCQkgIGlmKCQoIi5idG5TdW1pdDMiKS5oYXNDbGFzcygiYnRuU3VtaXQiKSl7DQoJCQkgIA0KCQkgIH1lbHNlew0KCQkJICAkKCIuYnRuU3VtaXQzIikuYWRkQ2xhc3MoImJ0blN1bWl0Iik7DQoJCQkgICQoIi5idG5TdW1pdDIiKS5yZW1vdmVDbGFzcygiYnRuU3VtaXQiKTsNCgkJCSAgJCgiLmJ0blN1bWl0MSIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOyANCgkJICB9DQoJICB9DQp9DQovL+aOp+WItueZu+W9leaWueW8jw0KZnVuY3Rpb24gY2hhbmdlTG9naW5UeXBlKG51bSl7DQoJaWYobnVtPT0xKXsNCgkJJCgiI3BMb2dpbiIpLmNzcygiZGlzcGxheSIsImJsb2NrIik7DQoJCSQoIiNtTG9naW4iKS5jc3MoImRpc3BsYXkiLCJub25lIik7DQoJCQ0KCQkvL+aOp+WItuWbnui9pue7keWumg0KCQlpZigkKCIuYnRuU3VtaXQxIikuaGFzQ2xhc3MoImJ0blN1bWl0Iikpew0KCQkgIA0KCQl9ZWxzZXsNCgkgCSAgICAkKCIuYnRuU3VtaXQxIikuYWRkQ2xhc3MoImJ0blN1bWl0Iik7DQoJCSAgICAkKCIuYnRuU3VtaXQyIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7DQoJCSAgICAkKCIuYnRuU3VtaXQzIikucmVtb3ZlQ2xhc3MoImJ0blN1bWl0Iik7IA0KCQl9DQoJfQkNCglpZihudW09PTIpew0KCQkkKCIjbUxvZ2luIikuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTsNCgkJJCgiI3BMb2dpbiIpLmNzcygiZGlzcGxheSIsIm5vbmUiKTsNCgkJDQoJCS8v5o6n5Yi25Zue6L2m57uR5a6aDQoJCWlmKCQoIi5idG5TdW1pdDIiKS5oYXNDbGFzcygiYnRuU3VtaXQiKSl7DQoJCSAgDQoJCX1lbHNlew0KCQkJJCgiLmJ0blN1bWl0MiIpLmFkZENsYXNzKCJidG5TdW1pdCIpOw0KCQkJJCgiLmJ0blN1bWl0MSIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQkJJCgiLmJ0blN1bWl0MyIpLnJlbW92ZUNsYXNzKCJidG5TdW1pdCIpOw0KCQl9CQkNCg0KCX0JCQ0KfQ0KLy/ojrflj5bpqozor4HnoIENCmZ1bmN0aW9uIGNoYW5nZUNvZGUoKXsNCgl2YXIgaW1nTm9kZSA9ICQoIi5sYXl1aS12aW1nIik7DQoJdmFyIHNyY1N0ciA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9nZXQvdmNvZGUuZG8/dD0iKyBNYXRoLnJhbmRvbSgpOw0KCWltZ05vZGUuYXR0cigic3JjIiwgc3JjU3RyKTsNCn0NCjwvc2NyaXB0Pg0KPCEtLeeUqOS6juekvuS8muWFrOS8l+eZu+W9leeahGpzLS0+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJdmFyIHVhY1NlcnZlclVybCA9ICcnOw0KCXZhciBjYXNTZXJ2ZXJVcmwgPSAnJzsNCgkNCglmdW5jdGlvbiBkb1N1Ym1pdEJ5UHdkKCkgew0KCQl2YXIgdXNlcm5hbWUgPSAkLnRyaW0oJCgnI3VzZXJuYW1lMScpLnZhbCgpKTsNCgkJdmFyIHB3ZCA9ICQudHJpbSgkKCcjcGFzc3dvcmQxJykudmFsKCkpOw0KCQl2YXIgc3lzdGVtQ29kZSA9ICdzeXN0ZW0wMDEtdW5pdGUtY2VydGlmaWNhdGlvbic7DQoJCXZhciB1cmwgPSB1YWNTZXJ2ZXJVcmwgKyAiL2NsaWVudExvZ2luL2FqYXhMb2dpbi5kbyI7DQoJCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQkJbGF5ZXIudGlwcygn6K+36L6T5YWl55So5oi35ZCNJywgJyN1c2VybmFtZTEnLCB7DQoJCQkJICB0aXBzOiBbMSwgJyNmMDBlMGUnXSwNCgkJCQkgIHRpbWU6IDMwMDANCgkJCQl9KTsNCgkJCXJldHVybjsNCgkJfWVsc2UgaWYocHdkPT1udWxsfHxwd2Q9PSIiKXsNCgkJCWxheWVyLnRpcHMoJ+ivt+i+k+WFpeeUqOWvhueggScsICcjcGFzc3dvcmQxJywgew0KCQkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkJICB0aW1lOiAzMDAwDQoJCQkJfSk7DQoJCQlyZXR1cm47DQoJCX1lbHNlew0KCQkJdmFyIGluZGV4ID0gbGF5ZXIubG9hZCgxLCB7DQoJCQkJICBzaGFkZTogWzAuMSwnI2ZmZiddIC8vMC4x6YCP5piO5bqm55qE55m96Imy6IOM5pmvDQoJCQl9KTsNCgkJCSQuYWpheCh7DQoJCQkJdHlwZTogIlBPU1QiLA0KCQkJCXVybDogdXJsLA0KCQkJCWRhdGE6eydzeXNkJzpzeXN0ZW1Db2RlLCd1bic6dXNlcm5hbWUsJ3B3ZCc6cHdkfSwNCgkJCQlkYXRhVHlwZTogJ0pTT05QJywNCgkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLCAvL+WbuuWumuWGmeazlQ0KCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJbGF5ZXIuY2xvc2UoaW5kZXgpOw0KCQkJCQlpZihkYXRhLnJlc3VsdCkgew0KCQkJCQkJdmFyIHV1aWQgPSBkYXRhLnV1aWQ7DQoJCQkJCQkvL+iOt+WPluWIsHV1aWTlkI7vvIzlsIZ1dWlk5Lyg5Yiw5ZCO5Y+w77yM6YCa6L+H5o6l5Y+j6I635Y+W5Yiw55So5oi35L+h5oGv77yM5a6M5oiQ5pys5Zywc2Vzc2lvbuWIneWni+WMlu+8jOeZu+W9leWujOaIkA0KCQkJCQkJJC5hamF4KHsNCgkJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCQl1cmw6ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9sb2dpbkJ5VVVJRC5kbyIsDQoJCQkJCQkJZGF0YTp7J3V1aWQnOnV1aWR9LA0KCQkJCQkJCWRhdGFUeXBlOiAnSlNPTicsDQoJCQkJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCQkJCQkNCgkJCQkJCQkJdmFyIHJlcXVlc3RVUkkgPSAnJzsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmKHJlcXVlc3RVUkk9PScnKXsNCgkJCQkJCQkJCSQoIiNsb2dpbi1hcmVhIikuaHRtbChnZXRMb2dpbmVkQXJlYShkYXRhKSk7DQoJCQkJCQkJCQlsYXllci5jbG9zZUFsbCgpOw0KCQkJCQkJCQkJLy93aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7DQoNCgkJCQkJCQkJfWVsc2V7DQoJCQkJCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24iK3JlcXVlc3RVUkk7DQoJCQkJCQkJCX0NCgkJCQkJCQkJDQoJCQkJCQkJfQ0KCQkJCQkJfSk7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQlsYXllci5tc2coZGF0YS5tc2csIHtpY29uOiA1fSk7DQoJCQkJCX0NCgkJCQl9DQoJCQl9KTsNCgkJfQ0KCX0NCg0KCWZ1bmN0aW9uIGRvU3VibWl0QnlQaG9uZSgpIHsNCgkJdmFyIHVzZXJuYW1lID0gJC50cmltKCQoJyNjZWxscGhvbmUnKS52YWwoKSk7DQoJCXZhciBwQ29kZSA9ICQudHJpbSgkKCcjcENvZGUnKS52YWwoKSk7DQoJCXZhciBzeXN0ZW1Db2RlID0gJ3N5c3RlbTAwMS11bml0ZS1jZXJ0aWZpY2F0aW9uJzsNCgkJLy92YXIgdXJsID0gdWFjU2VydmVyVXJsICsgIi9jbGllbnRMb2dpbi9hamF4TG9naW4uZG8/c3lzZD0iICsgc3lzdGVtQ29kZSsiJnVuPSIgKyB1c2VybmFtZSArICImcHdkPSIgKyBwd2Q7DQoJCXZhciB1cmwgPSB1YWNTZXJ2ZXJVcmwgKyAiL2NsaWVudExvZ2luL2FqYXhMb2dpbi5kbyI7DQoJCWlmKHVzZXJuYW1lPT1udWxsfHx1c2VybmFtZT09IiIpew0KCQkJbGF5ZXIudGlwcygn6K+36L6T5YWl55So5omL5py65Y+3JywgJyNjZWxscGhvbmUnLCB7DQoJCQkJICB0aXBzOiBbMSwgJyNmMDBlMGUnXSwNCgkJCQkgIHRpbWU6IDMwMDANCgkJCQl9KTsNCgkJfWVsc2UgaWYocENvZGU9PW51bGx8fHBDb2RlPT0iIil7DQoJCQlsYXllci50aXBzKCfor7fovpPlhaXnn63kv6Hpqozor4HnoIEnLCAnI3BDb2RlJywgew0KCQkJCSAgdGlwczogWzEsICcjZjAwZTBlJ10sDQoJCQkJICB0aW1lOiAzMDAwDQoJCQkJfSk7DQoJCX1lbHNlew0KCQkJdmFyIGluZGV4ID0gbGF5ZXIubG9hZCgxLCB7DQoJCQkJICBzaGFkZTogWzAuMSwnI2ZmZiddIC8vMC4x6YCP5piO5bqm55qE55m96Imy6IOM5pmvDQoJCQl9KTsNCgkJCSQuYWpheCh7DQoJCQkJdHlwZTogIlBPU1QiLA0KCQkJCXVybDogdXJsLA0KCQkJCWRhdGE6eydzeXNkJzpzeXN0ZW1Db2RlLCd1bic6dXNlcm5hbWUsJ3B3ZCc6cENvZGUsJ2lzUGhvbmVMb2dpbic6J3RydWUnfSwNCgkJCQlkYXRhVHlwZTogJ0pTT05QJywNCgkJCQljcm9zc0RvbWFpbjogdHJ1ZSwNCgkJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLCAvL+WbuuWumuWGmeazlQ0KCQkJCXN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsNCgkJCQkJbGF5ZXIuY2xvc2UoaW5kZXgpOw0KCQkJCQlpZihkYXRhLnJlc3VsdCkgew0KCQkJCQkJdmFyIHV1aWQgPSBkYXRhLnV1aWQ7DQoJCQkJCQkvL+iOt+WPluWIsHV1aWTlkI7vvIzlsIZ1dWlk5Lyg5Yiw5ZCO5Y+w77yM6YCa6L+H5o6l5Y+j6I635Y+W5Yiw55So5oi35L+h5oGv77yM5a6M5oiQ5pys5Zywc2Vzc2lvbuWIneWni+WMlu+8jOeZu+W9leWujOaIkA0KCQkJCQkJJC5hamF4KHsNCgkJCQkJCQl0eXBlOiAiR0VUIiwNCgkJCQkJCQl1cmw6ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9sb2dpbkJ5VVVJRC5kbyIsDQoJCQkJCQkJZGF0YTp7J3V1aWQnOnV1aWR9LA0KCQkJCQkJCWRhdGFUeXBlOiAnSlNPTicsDQoJCQkJCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCQkJCQl2YXIgcmVxdWVzdFVSSSA9ICcnOw0KCQkJCQkJCQkNCgkJCQkJCQkJaWYocmVxdWVzdFVSST09Jycpew0KCQkJCQkJCQkJDQoJCQkJCQkJCQkkKCIjbG9naW4tYXJlYSIpLmh0bWwoZ2V0TG9naW5lZEFyZWEoZGF0YSkpOw0KCQkJCQkJCQkJbGF5ZXIuY2xvc2VBbGwoKTsNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJLy93aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7DQoJDQoJCQkJCQkJCX1lbHNlew0KCQkJCQkJCQkJDQoJCQkJCQkJCQl3aW5kb3cubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vd3d3LnN0ZC5nb3YuY24iK3JlcXVlc3RVUkk7DQoJCQkJCQkJCQkNCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJCX0pOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJbGF5ZXIubXNnKGRhdGEubXNnLCB7aWNvbjogNX0pOw0KCQkJCQl9DQoJCQkJfQ0KCQkJfSk7DQoJCX0NCgl9DQoNCgkvL+azqOmUgA0KCWZ1bmN0aW9uIGxvZ291dCgpIHsNCgkJJC5hamF4KHsNCgkJCXR5cGU6ICJHRVQiLA0KCQkJdXJsOiBjYXNTZXJ2ZXJVcmwgKyAiL2xvZ291dD9zZXJ2ZXI9c3lzdGVtMDAxMi1jcHNjIiwNCgkJCWRhdGFUeXBlOiAnSlNPTlAnLA0KCQkJY3Jvc3NEb21haW46IHRydWUsDQoJCQlqc29ucDogImpzb25wQ2FsbGJhY2siLA0KCQkJc3VjY2VzczogZnVuY3Rpb24oZGF0YSkgew0KCQkJCXdpbmRvdy5sb2NhdGlvbj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL3VzZXIvbG9nb3V0LmRvIjsNCgkJCX0sDQoJCQllcnJvcjpmdW5jdGlvbihkYXRhKXsNCgkJCQl3aW5kb3cubG9jYXRpb249Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2xvZ291dC5kbyI7DQoJCQl9DQoJCX0pOw0KCX0NCg0KCS8v6I635Y+W55+t5L+h6aqM6K+B56CBDQoJZnVuY3Rpb24gZ2V0UENvZGUoc3RyKXsNCgkJdmFyIHJlc3VsdDsNCgkJCSQuYWpheCh7DQoJCQkJdXJsIDogImh0dHA6Ly93d3cuc3RkLmdvdi5jbi91c2VyL2dldFBob25lQ29kZS5kbyIsDQoJCQkJdHlwZSA6ICJwb3N0IiwNCgkJCQlkYXRhVHlwZSA6ICJqc29uIiwNCgkJCQlkYXRhOiAkKCcjJytzdHIpLnNlcmlhbGl6ZSgpLA0KCQkJCWFzeW5jOmZhbHNlLA0KCQkJCXN1Y2Nlc3MgOiBmdW5jdGlvbihkYXRhKSB7DQoJCQkJCXJlc3VsdCA9IGRhdGE7CQ0KCQkJCX0NCgkJCX0pOw0KCQlyZXR1cm4gcmVzdWx0Ow0KCX0JDQo8L3NjcmlwdD4NCjwhLS3nlKjkuo5TQUPnmbvlvZXnmoRqcy0tPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCQl2YXIgYWpheExvZ2luPSBmdW5jdGlvbih1cmwpew0KCQl2YXIgdXNtID0gJC50cmltKCQoJyNhY2NvdW50MycpLnZhbCgpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KCQl2YXIgcHdkID0gJC50cmltKCQoJyNwQ29kZTMnKS52YWwoKSk7DQoJCXZhciBtc2cgPSAnJzsNCgkJIGlmICgkLnRyaW0odXNtKS5sZW5ndGggPT0gMCApew0KCQkgIG1zZyA9ICLnlKjmiLflkI3kuI3og73kuLrnqbrjgIIiOw0KCQkgfSBlbHNlIGlmICgkLnRyaW0ocHdkKS5sZW5ndGggPT0gMCApew0KCQkgIG1zZyA9ICLlr4bnoIHkuI3og73kuLrnqbrjgIIiOw0KCQkgfQ0KCQkgaWYgKG1zZyAmJiBtc2cubGVuZ3RoID4gMCkgew0KCQkgICQoJyNKX0Vycm9yTXNnJykudGV4dChtc2cpOw0KCQkgIHJldHVybiBmYWxzZTsNCgkJIH0NCgkJICQoJyNKX0Vycm9yTXNnJykudGV4dCgnJyk7DQoJICAgICAgJC5hamF4KHsNCiAgCSAgICAgICAgdHlwZTogIkdFVCIsICANCiAgCSAgICAgICAgdXJsOiB1cmwrIi9jbGllbnRMb2dpbi9hamF4TG9naW4uZG8/dW49Iit1c20rIiZwd2Q9IitlbmNvZGVVUklDb21wb25lbnQocHdkKSsiJnN5c2Q9c3lzdGVtMDAxMS10Y3JtIiwNCiAgCSAgICAgICAgZGF0YVR5cGU6ICdKU09OUCcsDQogIAkgICAgICAgIGNyb3NzRG9tYWluOnRydWUsDQogIAkgICAgICAgIGpzb25wIDogImpzb25wQ2FsbGJhY2siLA0KICAJICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKXsgDQogIAkgICAgICAgICAgaWYoZGF0YS5yZXN1bHQpew0KICAJICAgICAgICAJLy/nmbvlvZXmiJDlip/vvIzlnKjmnKzlnLDlhpnlhaVzZXNzaW9uDQogICAgICAgCSAgICAgICAgJC5wb3N0KCJodHRwOi8vd3d3LnN0ZC5nb3YuY24vdXNlci9zYWNVc2VyTG9naW4uZG8iLHsidXNlcm5hbWUiOnVzbSwicmVhbG5hbWUiOmRhdGEucmVhbG5hbWUsInVpZCI6ZGF0YS51aWQsIm1vYmlsZSI6ZGF0YS5tb2JpbGUsImVtYWlsIjpkYXRhLmVtYWlsfSxmdW5jdGlvbihkYXRhMil7DQogICAgICAJICAgICAgICAJaWYoZGF0YTIucmVzdWx0KXsNCiAgICAgIAkgICAgICAgIAkJJCgiI2xvZ2luLWFyZWEiKS5odG1sKCc8YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcHJvcG9zYWwvcHJvcG9zYWxRdWVyeSIgc3R5bGU9ImNvbG9yOiAjZmZmOyI+5oiR55qE6LSm5oi3PC9hPiB8IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9nb3V0KCkiIHN0eWxlPSJjb2xvcjogI2YwMDsiIHRpdGxlPSLms6jplIAiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLW9mZiI+PC9zcGFuPjwvYT4nKTsNCiAgICAgIAkgICAgICAgIAkJbGF5ZXIuY2xvc2VBbGwoKTsNCiAgICAgIAkgICAgICAgIAkJLyogd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpOyAqLw0KICAgICAgCSAgICAgICAgCX1lbHNlew0KICAgICAgCSAgICAgICAgCSAJJCgnI0pfRXJyb3JNc2cnKS50ZXh0KGRhdGEyLm1zZyk7DQogICAgICAJICAgICAgICAJCXJldHVybjsNCiAgICAgIAkgICAgICAgIAl9CQkJCQkJCSAgICAgIAkgICAgICAgIAkNCiAgICAgIAkgICAgICAgIH0pOw0KICAJICAgICAgICAgIH1lbHNlew0KICAJICAgICAgICAJJCgnI0pfRXJyb3JNc2cnKS50ZXh0KGRhdGEubXNnKTsNCiAgCSAgICAgICAgCXJldHVybjsNCiAgCSAgICAgICAgICB9ICANCiAgCSAgICAgfSAgDQoJICAgICAgfSk7ICAgICAgICAgIAkNCgkgICAgfTsNCjwvc2NyaXB0Pg0KPGRpdiBzdHlsZT0iYmFja2dyb3VuZDp1cmwoaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9iZ3JlcC5qcGcpIHRvcCByZXBlYXQteDt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6ICMxODdlZDA7Ij4NCgk8ZGl2IGNsYXNzPSJjb250YWluZXIiPg0KCQk8ZGl2IGNsYXNzPSJyb3ciPiAgDQoJCQk8ZGl2IGlkPSJ0b3AtYmciIGNsYXNzPSJjb2wtc20tMTIiIHN0eWxlPSJiYWNrZ3JvdW5kOnVybChodHRwOi8vd3d3LnN0ZC5nb3YuY24vaW1hZ2VzL2xvZ29pbWcuanBnKSByaWdodCAxNXB4IGNlbnRlciBuby1yZXBlYXQgIzE4N2VkMDt3aWR0aDoxMDAlO2ZvbnQtZmFtaWx5OiBhcmlhbCx0YWhvbWEsJ01pY3Jvc29mdCBZYWhlaScsJ1w1YjhiXDRmNTMnLHNhbnMtc2VyaWY7Ij4NCgkJCQk8aW1nIGNsYXNzPSJoaWRkZW4teHMiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9sb2dvbmV3LnBuZyIvPg0KCQkJCQ0KCQkJCTxkaXYgc3R5bGU9InBhZGRpbmc6NXB4IDA7cGFkZGluZy1yaWdodDozMHB4OyIgY2xhc3M9InZpc2libGUteHMiIGNsYXNzPSJuYXZiYXItaGVhZGVyIj4NCgkJCQkgICAgICA8YnV0dG9uIGNsYXNzPSIgbmF2YmFyLXRvZ2dsZSBjb2xsYXBzZWQiIHR5cGU9ImJ1dHRvbiIgZGF0YS10b2dnbGU9ImNvbGxhcHNlIiBkYXRhLXRhcmdldD0iI2JzLW5hdmJhciIgYXJpYS1jb250cm9scz0iYnMtbmF2YmFyIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSI+DQoJCQkJICAgICAgICA8c3BhbiBjbGFzcz0ic3Itb25seSI+VG9nZ2xlIG5hdmlnYXRpb248L3NwYW4+DQoJCQkJICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbi1iYXIiPjwvc3Bhbj4NCgkJCQkgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLWJhciI+PC9zcGFuPg0KCQkJCSAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tYmFyIj48L3NwYW4+DQoJCQkJICAgICAgPC9idXR0b24+DQoJCQkJICAgICAgPGEgc3R5bGU9ImNvbG9yOndoaXRlO3BhZGRpbmc6MTVweCAwOyIgIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbiIgY2xhc3M9Im5hdmJhci1icmFuZCI+PGltZyBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0OjEwcHg7bWFyZ2luLXRvcDotNXB4OyIgd2lkdGg9IjMwcHgiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9zaGFyZUxvZ28ucG5nIi8+5YWo5Zu95qCH5YeG5L+h5oGv5YWs5YWx5pyN5Yqh5bmz5Y+wPHNtYWxsIHN0eWxlPSJtYXJnaW4tbGVmdDo1cHgiPuivlei/kOihjDwvc21hbGw+PC9hPg0KCQkJCSAgICAgIA0KCQkJCQk8ZGl2IHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kaXY+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0ibmF2LW1lbnUiPg0KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCTxkaXYgY2xhc3M9InJvdyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wtc20tMTIiPg0KCQkJCTx1bD4NCgkJCSAgICA8bGkgY2xhc3M9ImhpZGRlbi14cyIgPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbiI+6aaW6aG1PC9hPjwvbGk+DQoJCQkgICAgPGxpIGNsYXNzPSJuYXZfaW4iPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9nYiI+5Zu95a625qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vaGIiPuihjOS4muagh+WHhjwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2RiIj7lnLDmlrnmoIflh4Y8L2E+PC9saT4NCgkJCSAgICA8bGkgPjxhIGhyZWY9Imh0dHA6Ly93d3cudHRiei5vcmcuY24vIiB0YXJnZXQ9Il9ibGFuayI+5Zui5L2T5qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LmNwYnouZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPuS8geS4muagh+WHhjwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2dqIj7lm73pmYXmoIflh4Y8L2E+PC9saT4NCgkJCSAgICA8bGkgPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9ndyI+5Zu95aSW5qCH5YeGPC9hPjwvbGk+DQoJCQkgICAgPGxpID48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vcGlsb3QiPuekuuiMg+ivleeCuTwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ptcmgiPumHjeeCueW3peeoizwvYT48L2xpPg0KCQkJICAgIDxsaSA+PGEgaHJlZj0iaHR0cDovL3d3dy5zdGQuZ292LmNuL29yZyI+5oqA5pyv5aeU5ZGY5LyaPC9hPjwvbGk+DQoJCQkgIDwvdWw+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJPC9kaXY+DQoJPGRpdiBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGl2Pg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJjb250YWluZXIgbWFpbi1ib2R5Ij4NCgk8ZGl2IGNsYXNzPSJyb3ciPg0KCQk8ZGl2IGNsYXNzPSJjb2wtc20tMTIiPg0KCQkJPGRpdiBzdHlsZT0id2lkdGg6MTAwJTttaW4taGVpZ2h0OjgwMHB4O2JhY2tncm91bmQ6ICNmZmY7Ym9yZGVyOiAxcHggc29saWQgI2U1ZTVlNTtwYWRkaW5nOjAgMjBweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzp2aXNpYmxlOyI+DQoJCQkJPGRpdiBjbGFzcz0icGFnZS1oZWFkZXIiIHN0eWxlPSJtYXJnaW4tdG9wOjIwcHg7Ij4NCgkJCQkJPGg0IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWwsdGFob21hLCdNaWNyb3NvZnQgWWFoZWknLCdcNWI4Ylw0ZjUzJyxzYW5zLXNlcmlmOyI+5qOJ55+t57uSPC9oND4NCgkJCQkJPGg1IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWwsdGFob21hLCdNaWNyb3NvZnQgWWFoZWknLCdcNWI4Ylw0ZjUzJyxzYW5zLXNlcmlmO2NvbG9yOmdyYXk7bWFyZ2luLXRvcDo1cHg7Ij5Db3R0b24gbGludGVyPC9oNT4gDQoJCQkJCTxkaXYgc3R5bGU9ImZvbnQtc2l6ZToxNnB4O21hcmdpbi10b3A6NXB4Ij4NCgkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1pbmZvIj7lm73lrrbmoIflh4Y8L3NwYW4+ICANCgkJCQkJCTxzcGFuIGNsYXNzPSJzLXN0YXR1cyBsYWJlbCBsYWJlbC1zdWNjZXNzIj7mjqjojZDmgKc8L3NwYW4+DQoJCQkJCQkNCgkJCQkJCQk8c3BhbiBjbGFzcz0icy1zdGF0dXMgbGFiZWwgbGFiZWwtZGFuZ2VyIj7lup/mraI8L3NwYW4+DQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCQk8cD7lm73lrrbmoIflh4bjgIrmo4nnn63nu5LjgIvnlLE8YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgVEFfQ09ERT0iMSIgdGFyZ2V0PSJfYmxhbmsiPjQyNC1maWJyZTwvYT7vvIjkuK3lm73nuqTnu7Tmo4DpqozlsYDvvInlvZLlj6PkuIrmiqXlj4rmiafooYzvvIzkuLvnrqHpg6jpl6jkuLo8YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgQ0RfQ09ERT0iMSIgdGFyZ2V0PSJfYmxhbmsiPuWbveWutui0qOmHj+ebkeedo+ajgOmqjOajgOeWq+aAu+WxgDwvYT7jgII8L3A+DQoJCQkJDQoJCQkJPHA+5Li76KaB6LW36I2J5Y2V5L2NDQoJCQkJCQkJCQkJCQ0KCQkJCQkNCgkJCQkJCTxzcGFuIERSQUZUX1VOSVQ9IjEiPuWxseS4nOecgee6pOe7tOajgOmqjOWxgDwvc3Bhbj4NCgkJCQkJDQoJCQkJCQnjgIE8c3BhbiBEUkFGVF9VTklUPSIxIj7lsbHkuJzmtbfpvpnogqHku73mnInpmZDlhazlj7g8L3NwYW4+DQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+5Lit5Y2O5YWo5Zu95L6b6ZSA5ZCI5L2c5oC756S+5qOJ6bq75bGAPC9zcGFuPg0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPuS4reWNjuWFqOWbveS+m+mUgOWQiOS9nOaAu+ekvuajieiKseWKoOW3peW3peS4muagh+WHhuWMluaKgOacr+WnlOWRmOS8mjwvc3Bhbj4NCgkJCQkJDQoJCQkJ44CCPC9wPg0KCQkJCQ0KCQkJCQ0KCQkJCTxwPuS4u+imgei1t+iNieS6ug0KCQkJCQkJCQkJCQkNCgkJCQkJDQoJCQkJCQk8c3BhbiBEUkFGVF9VTklUPSIxIj7kuo7kuL3ljY48L3NwYW4+IA0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPuadqOeFp+iJrzwvc3Bhbj4gDQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+55Sw57Sg5bOwPC9zcGFuPiANCgkJCQkJDQoJCQkJCQnjgIE8c3BhbiBEUkFGVF9VTklUPSIxIj7pgqLmmKXoirE8L3NwYW4+IA0KCQkJCQkNCgkJCQkJCeOAgTxzcGFuIERSQUZUX1VOSVQ9IjEiPuefs+WuneeUnzwvc3Bhbj4gDQoJCQkJCQ0KCQkJCQkJ44CBPHNwYW4gRFJBRlRfVU5JVD0iMSI+5a2Z5bu65rCR562JPC9zcGFuPiANCgkJCQkJDQoJCQkJ44CCPC9wPg0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9ImNhdGFsb2ciPg0KCQkJCQk8ZGl2IGNsYXNzPSJjYXRhbG9nLWlubmVyIj4NCgkJCQkJCTxoMiBjbGFzcz0iY2F0YWxvZy10aXRsZSI+55uu5b2VPC9oMj4NCgkJCQkJCTxkaXYgY2xhc3M9ImNhdGFsb2ctbGlzdCI+DQoJCQkJCQkJPG9sPg0KCQkJCQkJCTwvb2w+DQoJCQkJCQkJPG9sPg0KCQkJCQkJCTwvb2w+DQoJCQkJCQkJPG9sPg0KCQkJCQkJCTwvb2w+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0icGFyYS10aXRsZSI+DQoJCQkJCTxoMiBjbGFzcz0idGl0bGUtdGV4dCI+5qCH5YeG54q25oCBPC9oMj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJ0aW1lbGluZSI+DQoJCQkJCTxkaXYgY2xhc3M9ImV2ZW50cy13cmFwcGVyIj4NCgkJCQkJCTxkaXYgY2xhc3M9ImV2ZW50cyIgc3R5bGU9IndpZHRoOiAxMDAlOyI+DQoJCQkJCQkJPG9sPiAgDQoJCQkJCQkJCTxsaT48YSBocmVmPSIjIiBzdHlsZT0ibGVmdDoxNi41JTsiPuWPkeW4gzxzcGFuIGNsYXNzPSJoaWRkZW4teHMiPuS6jiZuYnNwOzIwMDYtMDMtMTA8L3NwYW4+PC9hPjwvbGk+DQoJCQkJCQkJCTxsaT48YSBocmVmPSIjIiBzdHlsZT0ibGVmdDo0NSU7Ij7lrp7mlr08c3BhbiBjbGFzcz0iaGlkZGVuLXhzIj7kuo4mbmJzcDsyMDA2LTA5LTAxPC9zcGFuPjwvYT48L2xpPg0KCQkJCQkJCQk8bGk+PGEgaHJlZj0iIyIgc3R5bGU9ImxlZnQ6NzguNSU7Ij7lup/mraI8c3BhbiBjbGFzcz0iaGlkZGVuLXhzIj7kuo4mbmJzcDsyMDE4LTA1LTAxPC9zcGFuPjwvYT48L2xpPg0KCQkJCQkJCTwvb2w+DQoJCQkJCQkJPHNwYW4gY2xhc3M9ImZpbGxpbmctbGluZSIgYXJpYS1oaWRkZW49InRydWUiID48L3NwYW4+IA0KCQkJCQkJPC9kaXY+IDwhLS0gLmV2ZW50cyAtLT4NCgkJCQkJPC9kaXY+IDwhLS0gLmV2ZW50cy13cmFwcGVyIC0tPg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InBhcmEtdGl0bGUiPg0KCQkJCQk8aDIgY2xhc3M9InRpdGxlLXRleHQiPuWfuuehgOS/oeaBrzwvaDI+DQoJCQkJPC9kaXY+DQoJCQkJPGRpdiBjbGFzcz0iYmFzaWMtaW5mbyBjbW4tY2xlYXJmaXgiPg0KCQkJCQ0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tbGVmdCI+DQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5qCH5YeG5Y+3PC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPkdCL1QgMjAyMjMtMjAwNjwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7lj5HluIPml6XmnJ88L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+MjAwNi0wMy0xMDwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5a6e5pa95pel5pyfPC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPg0KCQkJCQkJCTIwMDYtMDktMDENCgkJCQkJCTwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7lup/mraLml6XmnJ88L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+DQoJCQkJCQkJMjAxOC0wNS0wMQ0KCQkJCQkJPC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2RsPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tcmlnaHQiPg0KCQkJCQkJDQoJCQkJCQk8ZHQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIG5hbWUiPuS4reWbveagh+WHhuWIhuexu+WPtzwvZHQ+DQoJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj5CMzI8L2RkPg0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5Zu96ZmF5qCH5YeG5YiG57G75Y+3PC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPiANCgkJCQkJCQk8c3BhbiBkYXRhLXRvZ2dsZT0idG9vbHRpcCIgZGF0YS1wbGFjZW1lbnQ9ImJvdHRvbSIgZGF0YS1odG1sPSJ0cnVlIiB0aXRsZT0iPGRpdj41OSDnurrnu4flkoznmq7pnanmioDmnK88L2Rpdj48ZGl2PjU5LjA2MCDnurrnu4fnuqTnu7Q8L2Rpdj48ZGl2PjU5LjA2MC4xMCDlpKnnhLbnuqTnu7Q8L2Rpdj4gIiA+NTkuMDYwLjEwPC9zcGFuPg0KCQkJCQkJCTxkaXYgY2xhc3M9Imljc0luZm9Qb3AiPg0KCQkJCQkJCQk8dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPg0KCQkJCQkJCQkJPHRib2R5Pg0KCQkJCQkJCQkJICANCgkJCQkJCQkJCQkgIAk8dHI+PHRkPjU5IOe6uue7h+WSjOearumdqeaKgOacrzwvdGQ+PC90cj4NCgkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCSAgCTx0cj48dGQ+NTkuMDYwIOe6uue7h+e6pOe7tDwvdGQ+PC90cj4NCgkJCQkJCQkJCSAgIA0KCQkJCQkJCQkJCSAgCTx0cj48dGQ+NTkuMDYwLjEwIOWkqeeEtue6pOe7tDwvdGQ+PC90cj4NCgkJCQkJCQkJCSAgICANCgkJCQkJCQkJCTwvdGJvZHk+DQoJCQkJCQkJCSA8L3RhYmxlPg0KCQkJCQkJCSA8L2Rpdj4NCgkJCQkJCTwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7lvZLlj6PljZXkvY08L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIFRBX0NPREU9IjEiIHRhcmdldD0iX2JsYW5rIj7kuK3lm73nuqTnu7Tmo4DpqozlsYA8L2E+PC9kZD4NCgkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkNCgkJCQkJCTxkdCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gbmFtZSI+5omn6KGM5Y2V5L2NPC9kdD4NCgkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiBUTV9DT0RFPSIxIiB0YXJnZXQ9Il9ibGFuayI+5Lit5Zu957qk57u05qOA6aqM5bGAPC9hPjwvZGQ+DQoJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJPGR0IGNsYXNzPSJiYXNpY0luZm8taXRlbSBuYW1lIj7kuLvnrqHpg6jpl6g8L2R0Pg0KCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIENEX0NPREU9IjEiIHRhcmdldD0iX2JsYW5rIj7lm73lrrbotKjph4/nm5HnnaPmo4Dpqozmo4DnlqvmgLvlsYA8L2E+PC9kZD4NCgkJCQkJCQkNCgkJCQkJPC9kbD4NCgkJCQkJPGRsIHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kbD4NCgkJCQk8L2Rpdj4NCg0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCQk8ZGl2IGNsYXNzPSJwYXJhLXRpdGxlIj4NCgkJCQkJCTxoMiBjbGFzcz0idGl0bGUtdGV4dCI+6KKr5Lul5LiL5qCH5YeG5Luj5pu/PC9oMj4NCgkJCQkJPC9kaXY+DQoJCQkJCQ0KCQkJCQkJPHA+6KKrDQoJCQkJCQkJDQoJCQkJCQkJCTxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9nYi9zZWFyY2gvZ2JEZXRhaWxlZD9pZD03MUY3NzJEODJDMDJEM0E3RTA1Mzk3QkUwQTBBQjgyQSIgdGFyZ2V0PSJfYmxhbmsiPg0KCQkJCQkJCQkJPHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayIgc3R5bGU9ImRpc3BsYXk6IGlubGluZTsiPjwvc3Bhbj5HQi9UIDIwMjIzLTIwMTgNCgkJCQkJCQkJPC9hPg0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCeWFqOmDqOS7o+abvw0KCQkJCQkJCQ0KCQkJCQkJPC9wPg0KCQkJCQkNCgkJCQkgDQoJCQkJDQoJCQkJDQoJCQkJDQoJCQkJDQoJCQkJPGRpdiBjbGFzcz0icGFyYS10aXRsZSIgPg0KCQkJCQk8aDIgY2xhc3M9InRpdGxlLXRleHQiPui1t+iNieWNleS9jTwvaDI+DQoJCQkJPC9kaXY+DQoJCQkJCQkJCQkJDQoJCQkJPGRpdiBjbGFzcz0iYmFzaWMtaW5mbyBjbW4tY2xlYXJmaXgiPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tbGVmdCI+DQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiIERSQUZUX1VOSVQ9IjEiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxpbmsiPjwvc3Bhbj7lsbHkuJznnIHnuqTnu7Tmo4DpqozlsYA8L2E+PC9kZD4NCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB2YWx1ZSI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIiBEUkFGVF9VTklUPSIxIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1saW5rIj48L3NwYW4+5Lit5Y2O5YWo5Zu95L6b6ZSA5ZCI5L2c5oC756S+5qOJ6bq75bGAPC9hPjwvZGQ+DQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQk8L2RsPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tcmlnaHQiPg0KCQkJCQkJIA0KCQkJCQkJCQ0KCQkJCQkJIA0KCQkJCQkJCQ0KCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgRFJBRlRfVU5JVD0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayI+PC9zcGFuPuWxseS4nOa1t+m+meiCoeS7veaciemZkOWFrOWPuDwvYT48L2RkPg0KCQkJCQkJCQ0KCQkJCQkJIA0KCQkJCQkJCQ0KCQkJCQkJIA0KCQkJCQkJCQ0KCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgRFJBRlRfVU5JVD0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayI+PC9zcGFuPuS4reWNjuWFqOWbveS+m+mUgOWQiOS9nOaAu+ekvuajieiKseWKoOW3peW3peS4muagh+WHhuWMluaKgOacr+WnlOWRmOS8mjwvYT48L2RkPg0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCTwvZGw+DQoJCQkJCTxkbCBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGw+DQoJCQkJPC9kaXY+CQ0KCQkJCQ0KCQkJCQ0KCQkJCQ0KCQkJCTxkaXYgY2xhc3M9InBhcmEtdGl0bGUiPg0KCQkJCQk8aDIgY2xhc3M9InRpdGxlLXRleHQiPui1t+iNieS6ujwvaDI+DQoJCQkJPC9kaXY+CQkJCQ0KCQkJCTxkaXYgY2xhc3M9ImJhc2ljLWluZm8gY21uLWNsZWFyZml4Ij4NCgkJCQkJPGRsIGNsYXNzPSJiYXNpY0luZm8tYmxvY2sgYmFzaWNJbmZvLWxlZnQiPg0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkJPGRkIGNsYXNzPSJiYXNpY0luZm8taXRlbSB0d29kIj48YSBjbGFzcz0idHJpZ2dlcnMiIGhyZWY9IiIgdGFyZ2V0PSJfYmxhbmsiIERSQUZUX1VTRVJTPSIxIj48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+5LqO5Li95Y2OPC9hPjwvZGQ+DQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCI+PGEgY2xhc3M9InRyaWdnZXJzIiBocmVmPSIiIHRhcmdldD0iX2JsYW5rIiBEUkFGVF9VU0VSUz0iMSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdXNlciI+PC9zcGFuPuadqOeFp+iJrzwvYT48L2RkPg0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHR3b2QiIHN0eWxlPSJjb2xvcjogIzk5OSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdXNlciI+PC9zcGFuPuefs+WuneeUnzwvZGQ+DQoJCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHR3b2QiPjxhIGNsYXNzPSJ0cmlnZ2VycyIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgRFJBRlRfVVNFUlM9IjEiPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLXVzZXIiPjwvc3Bhbj7lrZnlu7rmsJE8L2E+PC9kZD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCTwvZGw+DQoJCQkJCTxkbCBjbGFzcz0iYmFzaWNJbmZvLWJsb2NrIGJhc2ljSW5mby1yaWdodCI+DQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHR3b2QiIHN0eWxlPSJjb2xvcjogIzk5OSI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tdXNlciI+PC9zcGFuPueUsOe0oOWzsDwvZGQ+DQoJCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQkNCgkJCQkJCQkJCQ0KCQkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdHdvZCIgc3R5bGU9ImNvbG9yOiAjOTk5Ij48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi11c2VyIj48L3NwYW4+6YKi5pil6IqxPC9kZD4NCgkJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJPC9kbD4NCgkJCQkJPGRsIHN0eWxlPSJjbGVhcjpib3RoOyI+PC9kbD4NCgkJCQk8L2Rpdj4JDQoJCQkJDQoJCQkJDQoJCQkJDQoNCgkJCQkNCgkJCQkNCgkJCQkNCgkJCQk8ZGl2IGNsYXNzPSJwYXJhLXRpdGxlIiA+DQoJCQkJCTxoMiBjbGFzcz0idGl0bGUtdGV4dCI+55u46L+R5qCH5YeGKOiuoeWIkik8L2gyPg0KCQkJCTwvZGl2PgkJCQkJDQoJCQkJPGRpdiBjbGFzcz0iYmFzaWMtaW5mbyBjbW4tY2xlYXJmaXgiPg0KCQkJCQk8ZGwgY2xhc3M9ImJhc2ljSW5mby1ibG9jayBiYXNpY0luZm8tbGVmdCIgc3R5bGU9IndpZHRoOiBhdXRvOyI+DQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiICBzdHlsZT0id2lkdGg6IDEwMCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9nYi9zZWFyY2gvZ2JEZXRhaWxlZD9pZD03MUY3NzJEODJDMDJEM0E3RTA1Mzk3QkUwQTBBQjgyQSIgdGFyZ2V0PSJfYmxhbmsiID48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1saW5rIj48L3NwYW4+R0IvVCAyMDIyMy0yMDE4ICZuYnNwO+ajieefree7kjwvYT48L2RkPg0KCQkJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJCTxkZCBjbGFzcz0iYmFzaWNJbmZvLWl0ZW0gdmFsdWUiICBzdHlsZT0id2lkdGg6IDEwMCUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuc3RkLmdvdi5jbi9oYi9zZWFyY2gvc3RkSEJEZXRhaWxlZD9pZD01RERBOEJBMjhGODUxOERFRTA1Mzk3QkUwQTBBOTVBNyIgdGFyZ2V0PSJfYmxhbmsiID48c3BhbiBjbGFzcz0iZ2x5cGhpY29uIGdseXBoaWNvbi1saW5rIj48L3NwYW4+R0gvVCAxMDIzLTIwMDAgJm5ic3A75qOJ55+t57uS5riF55CG5py6PC9hPjwvZGQ+DQoJCQkJCQkJCQ0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkNCgkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQk8ZGQgY2xhc3M9ImJhc2ljSW5mby1pdGVtIHZhbHVlIiAgc3R5bGU9IndpZHRoOiAxMDAlIj48YSBocmVmPSJodHRwOi8vd3d3LnN0ZC5nb3YuY24vaGIvc2VhcmNoL3N0ZEhCRGV0YWlsZWQ/aWQ9NUREQThCQTJEMzE3MThERUUwNTM5N0JFMEEwQTk1QTciIHRhcmdldD0iX2JsYW5rIiA+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGluayI+PC9zcGFuPlNOL1QgMTU2My0yMDExICZuYnNwO+i/m+WHuuWPo+ajieefree7kuajgOmqjOinhOeoizwvYT48L2RkPg0KCQkJCQkJCQkNCgkJCQkJCQkJDQoJCQkJCQkJCQ0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCTwvZGw+DQoJCQkJCTxkbCBzdHlsZT0iY2xlYXI6Ym90aDsiPjwvZGw+DQoJCQkJPC9kaXY+CQ0KCQkJCQ0KCQkJCQ0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KPC9kaXY+DQoNCjxzdHlsZT4NCkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkgew0KCS5mb290ZXItYm9keSBsaSB7DQoJICAgIGNvbG9yOiB3aGl0ZTsNCgkgICAgZm9udC1zaXplOiAxMnB4Ow0KCX0NCn0NCjwvc3R5bGU+DQo8ZGl2IGNsYXNzPSJmb290ZXItYm9keSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICMwNTY2YWI7Zm9udC1mYW1pbHk6IGFyaWFsLHRhaG9tYSwnTWljcm9zb2Z0IFlhaGVpJywnXDViOGJcNGY1Mycsc2Fucy1zZXJpZjsiPg0KCTxkaXYgY2xhc3M9ImNvbnRhaW5lciI+DQoJCTxkaXYgY2xhc3M9InJvdyIgc3R5bGU9InBhZGRpbmc6MTVweCAwOyI+DQoJCQk8ZGl2IGNsYXNzPSJjb2wtc20tNSBjb2wteHMtNiI+DQoJCQkJPHVsIHN0eWxlPSJsaXN0LXN0eWxlOm5vbmU7Ij4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDEwcHggMHB4OyI+PGg2IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250LXdlaWdodDogYm9sZDtsaW5lLWhlaWdodDogMS4xO2ZvbnQtc2l6ZTogMTRweDsiPueJiOadg+aJgOaciSDkvrXmnYPlv4XnqbY8L2g2PjwvbGk+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+5Li7566h77ya5Zu95a625qCH5YeG5YyW566h55CG5aeU5ZGY5LyaPC9saT4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDJweCAwcHg7Y29sb3I6I2JlYzhjZTsiID7kuLvlip7vvJrlm73lrrbmoIflh4bljJbnrqHnkIblp5TlkZjkvJrmoIflh4bkv6Hmga/kuK3lv4M8L2xpPg0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMnB4IDBweDtjb2xvcjojYmVjOGNlOyIgPuaKgOacr+aUr+aMge+8muWMl+S6rOS4reagh+i1m+Wuh+enkeaKgOaciemZkOWFrOWPuDwvbGk+DQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+5pSv5oyB55S16K+d77yaMDEwLTgyMjYxMDU2PC9saT4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDJweCAwcHg7Y29sb3I6I2JlYzhjZTsiID7lpIfmoYjlj7fvvJrkuqxJQ1DlpIcwOTAwMTIzOeWPty02PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wtc20tNCBjb2wteHMtNiI+DQoJCQkJPHVsIHN0eWxlPSJsaXN0LXN0eWxlOm5vbmU7Ij4gDQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAxMHB4IDBweCI+PGg2IHN0eWxlPSJjb2xvcjp3aGl0ZTtmb250LXdlaWdodDogYm9sZDtsaW5lLWhlaWdodDogMS4xO2ZvbnQtc2l6ZTogMTRweDsiPuWPi+aDhemTvuaOpTwvaDY+PC9saT4NCgkJCQkJPGxpIHN0eWxlPSJtYXJnaW46IDJweCAwcHg7Y29sb3I6I2JlYzhjZTsiID48YSBzdHlsZT0iY29sb3I6I2JlYzhjZTsiIGhyZWY9Imh0dHA6Ly93d3cuc2FjLmdvdi5jbi8iIHRhcmdldD0iX2JsYW5rIj7lm73lrrbmoIflh4bljJbnrqHnkIblp5TlkZjkvJo8L2E+PC9saT4gDQoJCQkJCTxsaSBzdHlsZT0ibWFyZ2luOiAycHggMHB4O2NvbG9yOiNiZWM4Y2U7IiA+PGEgc3R5bGU9ImNvbG9yOiNiZWM4Y2U7IiBocmVmPSJodHRwOi8vd3d3LmNwYnouZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPuS8geS4muagh+WHhuS/oeaBr+WFrOWFseacjeWKoeW5s+WPsDwvYT48L2xpPg0KCQkJCQk8bGkgc3R5bGU9Im1hcmdpbjogMnB4IDBweDtjb2xvcjojYmVjOGNlOyIgPjxhIHN0eWxlPSJjb2xvcjojYmVjOGNlOyIgaHJlZj0iaHR0cDovL3d3dy50dGJ6Lm9yZy5jbi8iIHRhcmdldD0iX2JsYW5rIj7lhajlm73lm6LkvZPmoIflh4bkv6Hmga/lubPlj7A8L2E+PC9saT4NCgkJCQk8L3VsPg0KCQkJPC9kaXY+DQoJCQk8ZGl2IGNsYXNzPSJjb2wtc20tMyBoaWRkZW4teHMiIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiPg0KCQkJCTxpbWcgd2lkdGg9IjEwMCUiIHNyYz0iaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9ld20uanBnIiBzdHlsZT0id2lkdGg6IDEyOHB4O2hlaWdodDogMTI4cHg7Ii8+IA0KCQkJPC9kaXY+DQoJCTwvZGl2Pg0KCTwvZGl2Pg0KPC9kaXY+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCXZhciBDVVJSRU5UX0xJTks9Jyc7DQoJdmFyIFNUQUdFX0NPREU9Jyc7DQoJdmFyIFNIQVJFX1RJVExFID0gJ+WbveWutuagh+WHhi0yMDAxMDMyMC1ULTQyNC3mo4nnn63nu5InOw0KCXZhciBTSEFSRV9TVU1NQVJZID0gJ+WbveWutuagh+WHhuOAiuajieefree7kuOAi+eUsTQyNC1maWJyZe+8iOS4reWbvee6pOe7tOajgOmqjOWxgO+8ieW9kuWPo+S4iuaKpeWPiuaJp+ihjO+8jOS4u+euoemDqOmXqOS4uuWbveWutui0qOmHj+ebkeedo+ajgOmqjOajgOeWq+aAu+WxgOOAgic7DQoJdmFyIFNUQVRFPSflup/mraInOw0KCXZhciBTVEFURV9JTkQ9MDsNCgkkKGZ1bmN0aW9uKCkgew0KCQl2YXIgY2xsID0gMDsNCgkJaWYoU1RBVEU9PSfljbPlsIblrp7mlr0nKSB7DQoJCQlTVEFURV9JTkQgPSAwOw0KCQl9IGVsc2UgaWYoU1RBVEU9PSfnjrDooYwnKSB7DQoJCQlTVEFURV9JTkQgPSAxOw0KCQl9IGVsc2UgaWYoU1RBVEU9PSflup/mraInKSB7DQoJCQlTVEFURV9JTkQgPSAyOw0KCQl9DQoJCSQoJy50aW1lbGluZSAuZXZlbnRzIGxpIGEnKS5lYWNoKGZ1bmN0aW9uKGluZGV4KXsNCgkJCWlmKGluZGV4Pj1TVEFURV9JTkQpew0KCQkJCSQodGhpcykuYWRkQ2xhc3MoJ3NlbGVjdGVkJyk7DQoJCQkJY2xsID0gJCh0aGlzKS5vZmZzZXQoKS5sZWZ0KyQodGhpcykud2lkdGgoKS8yOw0KCQkJCXJldHVybiBmYWxzZTsNCgkJCX0gZWxzZSB7DQoJCQkJJCh0aGlzKS5hZGRDbGFzcygnb2xkZXItZXZlbnQnKTsNCgkJCX0NCgkJfSk7DQoJCWNsbCAtPSAkKCcudGltZWxpbmUgLmV2ZW50cyBvbCcpLm9mZnNldCgpLmxlZnQ7DQoJCSQoJy50aW1lbGluZSAuZmlsbGluZy1saW5lICcpLmNzcygndHJhbnNmb3JtJywnc2NhbGVYKCcrKGNsbC8kKCcudGltZWxpbmUgLmV2ZW50cyBvbCcpLndpZHRoKCkpKycpJyk7DQoJCSQoIi50cmlnZ2VycyIpLmVhY2goZnVuY3Rpb24oaSl7DQoJICAgICAgICAgICAkKHRoaXMpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJICAgICAgICAJICAgaWYoJCh0aGlzKS5hdHRyKCJUQV9DT0RFIikpew0KCSAgICAgICAgCQkgICBpZignNDI0LWZpYnJlJy5pbmRleE9mKCJUQyIpPT0wIHx8ICc0MjQtZmlicmUnLmluZGV4T2YoIlNXRyIpPT0wKQ0KCSAgICAgICAgCQkJICAgJCh0aGlzKS5hdHRyKCJocmVmIiwgImh0dHA6Ly93d3cuc3RkLmdvdi5jbi9zZWFyY2gvb3JnRGV0YWlsVmlldz90Y0NvZGU9NDI0LWZpYnJlIik7DQoJICAgICAgICAJCSAgIGVsc2UNCgkgICAgICAgIAkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCfkuK3lm73nuqTnu7Tmo4DpqozlsYAnKSk7IA0KCSAgICAgICAgCSAgICAgIH1lbHNlIGlmKCQodGhpcykuYXR0cigiQ0RfQ09ERSIpKXsNCgkgICAgICAgIAkJCSAgIGlmKCc0MjQnLmluZGV4T2YoIlRDIik9PTAgfHwgJzQyNCcuaW5kZXhPZigiU1dHIik9PTApDQoJICAgICAgICAJCQkJICAgJCh0aGlzKS5hdHRyKCJocmVmIiwgImh0dHA6Ly93d3cuc3RkLmdvdi5jbi9zZWFyY2gvb3JnRGV0YWlsVmlldz90Y0NvZGU9NDI0Iik7DQoJICAgICAgICAJCQkgICBlbHNlIA0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCflm73lrrbotKjph4/nm5HnnaPmo4Dpqozmo4DnlqvmgLvlsYAnKSk7IA0KCSAgICAgICAgCQkgICB9ZWxzZSBpZigkKHRoaXMpLmF0dHIoIlRNX0NPREUiKSl7DQoJICAgICAgICAJCQkgICBpZignNDI0LWZpYnJlJy5pbmRleE9mKCJUQyIpPT0wIHx8ICc0MjQtZmlicmUnLmluZGV4T2YoIlNXRyIpPT0wKQ0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ0RldGFpbFZpZXc/dGNDb2RlPTQyNC1maWJyZSIpOw0KCSAgICAgICAgCQkJICAgZWxzZSANCgkgICAgICAgIAkJCQkgICAkKHRoaXMpLmF0dHIoImhyZWYiLCAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3NlYXJjaC9vcmdPdGhlcnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudCgn5Lit5Zu957qk57u05qOA6aqM5bGAJykpOyANCgkgICAgICAgIAkJICAgfWVsc2UgaWYoJCh0aGlzKS5hdHRyKCJVVEFfTkFNRSIpKXsNCgkgICAgICAgIAkJCQkkKHRoaXMpLmF0dHIoImhyZWYiLCAiaHR0cDovL3d3dy5zdGQuZ292LmNuL3NlYXJjaC9vcmc/cT0iK2VuY29kZVVSSUNvbXBvbmVudCgnJykpOyANCgkgICAgICAgIAkJICAgfWVsc2UgaWYoJCh0aGlzKS5hdHRyKCJEUkFGVF9VTklUIikpew0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL29yZ090aGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KCQodGhpcykudGV4dCgpKSk7IA0KCSAgICAgICAgCQkgICB9ZWxzZSBpZigkKHRoaXMpLmF0dHIoIkRSQUZUX1VTRVJTIikpew0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY24vc2VhcmNoL3BlcnNvbkRldGFpbGVkP3E9IitlbmNvZGVVUklDb21wb25lbnQoJCh0aGlzKS50ZXh0KCkpKyImdGNDb2RlPTQyNC1maWJyZSZ0Y05hbWU9IitlbmNvZGVVUklDb21wb25lbnQoJ+S4reWbvee6pOe7tOajgOmqjOWxgCcpKTsgDQoJICAgICAgICAJCSAgIH1lbHNlIGlmKCQodGhpcykuYXR0cigiS1BJIikpew0KCSAgICAgICAgCQkJCSAgICQodGhpcykuYXR0cigiaHJlZiIsICJodHRwOi8vd3d3LnN0ZC5nb3YuY246ODA4MC9wdWJsaWNTZXJ2aWNlTWFuYWdlci9vL3BkZlByZXZpZXc/ZmlsZU1kNT0ma3BpPSIrZW5jb2RlVVJJQ29tcG9uZW50KCQodGhpcykudGV4dCgpKSk7IA0KCSAgICAgICAgCQkgICB9DQoJICAgICAgICAgIH0pDQoJICAgICAgIH0pOw0KCQkNCgl9KQ0KCTwvc2NyaXB0Pg0KPC9ib2R5Pg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KLnNpZGViYXIgew0KCXBvc2l0aW9uOiBmaXhlZDsNCglyaWdodDogNTAlOw0KCXRvcDogMHB4Ow0KCXdpZHRoOiAzNnB4Ow0KCWhlaWdodDogMTAwJTsNCglvdmVyZmxvdzogdmlzaWJsZTsNCglkaXNwbGF5Om5vbmU7DQp9DQpAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHsNCgkuc2lkZWJhciB7DQoJICAgIG1hcmdpbi1yaWdodDogLTM5NXB4Ow0KCSAgIGRpc3BsYXk6IGlubGluZTsNCgl9DQp9DQpAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHsNCgkuc2lkZWJhciB7DQoJICAgIG1hcmdpbi1yaWdodDotNTA1cHg7DQoJICAgIGRpc3BsYXk6IGlubGluZTsNCgl9DQp9DQpAbWVkaWEgKG1pbi13aWR0aDogMTIwMHB4KXsNCgkuc2lkZWJhciB7DQoJICAgIG1hcmdpbi1yaWdodDotNjA0cHg7DQoJICAgIGRpc3BsYXk6IGlubGluZTsNCgl9DQp9DQouc2lkZWJhci10YWJzIHsNCglwb3NpdGlvbjogYWJzb2x1dGU7DQoJdG9wOiAzMCU7DQoJbGVmdDogMHB4OyANCgl3aWR0aDogMzVweDsNCglmb250LXNpemU6IDQ1cHg7DQoJb3ZlcmZsb3c6IHZpc2libGU7DQp9DQoudGFiLWljb3sNCgltYXJnaW4tbGVmdDogMXB4OyANCglwb3NpdGlvbjogcmVsYXRpdmU7IA0KCWN1cnNvcjogcG9pbnRlcjsNCglkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IA0KfQ0KLnRhYi10ZXh0ew0KCXdpZHRoOiAxMDVweDsgDQoJaGVpZ2h0OiAyNXB4Ow0KCWZvbnQtc2l6ZTogMTRweDsNCglsaW5lLWhlaWdodDogMjVweDsgDQoJY29sb3I6ICNGRkY7IA0KCXRleHQtYWxpZ246IGNlbnRlcjsgDQoJZm9udC1mYW1pbHk6ICLlvq7ova/pm4Xpu5EiOyANCglwb3NpdGlvbjogYWJzb2x1dGU7IA0KCXJpZ2h0OiAzNXB4Ow0KCXRvcDogMHB4Ow0KCWJhY2tncm91bmQtY29sb3I6ICM3QTZFNkU7IA0KCWJvcmRlci1yYWRpdXM6IDEwcHg7IA0KCWZvbnQtc3R5bGU6IG5vcm1hbDsgDQoJY3Vyc29yOiBwb2ludGVyOw0KCWRpc3BsYXk6bm9uZTsNCn0NCi5zaWRlYmFyLWJ0bjpob3ZlciAudGFiLXRleHR7DQoJZGlzcGxheTppbmxpbmUtYmxvY2s7DQp9DQouc2lkZWJhci1idG57DQoJcG9zaXRpb246cmVsYXRpdmU7DQoJb3ZlcmZsb3c6IHZpc2libGU7DQoJYmFja2dyb3VuZC1jb2xvcjogIzRjOWNkYTsNCgl0cmFuc2l0aW9uOiBhbGwgLjNzIGVhc2U7DQogICAgLW8tdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOw0KICAgIC1tb3otdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOw0KICAgIC13ZWJraXQtdHJhbnNpdGlvbjogYWxsIC4zcyBlYXNlOw0KICAgIGJveC1zaGFkb3c6IDAgNXB4IDVweCByZ2JhKDE0NiwxNDYsMTQ2LC41KTsNCiAgICBtYXJnaW4tdG9wOiAxMHB4Ow0KICAgIGZvbnQtc2l6ZTogMTZweDsNCiAgICB0ZXh0LWFsaWduOmNlbnRlcjsNCiAgICBjb2xvcjp3aGl0ZTsNCiAgICBmb250LWZhbWlseTogYXJpYWwsdGFob21hLCdNaWNyb3NvZnQgWWFoZWknLCdcNWI4Ylw0ZjUzJyxzYW5zLXNlcmlmOw0KICAgIGN1cnNvcjpwb2ludGVyOw0KfQ0KLnNpZGViYXItYnRuOmZpcnN0LWNoaWxkew0KCSBtYXJnaW4tdG9wOiAwOw0KfQ0KLnNpZGViYXItYnRuOmhvdmVyew0KCWJhY2tncm91bmQtY29sb3I6ICMyZGEzZmY7DQp9DQouc2lkZWJhci1idG46aG92ZXIgLmluZm9Db2Rlew0KCWRpc3BsYXk6IGlubGluZS1ibG9jazsNCn0NCi5pbmZvQ29kZXsNCgl3aWR0aDogMTIwcHg7DQoJaGVpZ2h0OjEyMHB4Ow0KCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgl0b3A6IDUwJTsNCglyaWdodDogMzVweDsNCgltYXJnaW4tdG9wOiAtNjBweDsNCglkaXNwbGF5OiBub25lOw0KCWJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOw0KCWJveC1zaXppbmc6IGNvbnRlbnQtYm94Ow0KCXBhZGRpbmc6IDEwcHg7IA0KfQ0KLnNoYXJlew0KCWRpc3BsYXk6YmxvY2s7DQoJd2lkdGg6MTAwJTsNCgloZWlnaHQ6MzVweDsNCgliYWNrZ3JvdW5kLWNvbG9yOndoaXRlOw0KDQp9DQouc2hhcmUgZW17DQoJZGlzcGxheTpibG9jazsNCgl3aWR0aDozNXB4Ow0KCWhlaWdodDozNXB4Ow0KCWJhY2tncm91bmQtaW1hZ2U6dXJsKGh0dHA6Ly93d3cuc3RkLmdvdi5jbi9pbWFnZXMvbG9naW4tdHlwZS5wbmcpOw0KfQ0KI3dic2hhcmUgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTk0cHggMXB4OzsNCn0NCiN3YnNoYXJlOmhvdmVyeyAgDQoJYmFja2dyb3VuZC1jb2xvcjojZGQxMzdiOw0KfQ0KI3dic2hhcmU6aG92ZXIgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTk0cHggLTMycHg7Ow0KfQ0KI3Fxc2hhcmUgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IDFweDsNCn0NCiNxcXNoYXJlOmhvdmVyeyAgDQoJYmFja2dyb3VuZC1jb2xvcjojMjc5ZGQ2Ow0KfQ0KI3Fxc2hhcmU6aG92ZXIgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogMXB4IC0zMnB4Ow0KfQ0KI3d4c2hhcmUgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggMXB4OzsNCn0NCiN3eHNoYXJlOmhvdmVyeyAgDQoJYmFja2dyb3VuZC1jb2xvcjojMWNiMzE5Ow0KfQ0KI3d4c2hhcmU6aG92ZXIgZW17DQoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTUwcHggLTMycHg7Ow0KfQ0KLnFyY29kZS13cmFwcGVyIHsNCiAgICBwb3NpdGlvbjogZml4ZWQ7DQogICAgbGVmdDogNTAlOw0KICAgIG1hcmdpbi1sZWZ0OiAtMTIwcHg7DQogICAgdG9wOiA1MCU7DQogICAgbWFyZ2luLXRvcDogLTEzOHB4Ow0KICAgIHBhZGRpbmc6IDEwcHg7DQogICAgd2lkdGg6IDI0MHB4Ow0KICAgIGhlaWdodDogMjk1cHg7DQogICAgYmFja2dyb3VuZDogI2ZmZjsNCiAgICBib3JkZXI6IHNvbGlkIDFweCAjZDhkOGQ4Ow0KICAgIHotaW5kZXg6IDExMDAxOw0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBib3gtc2hhZG93OiAwIDVweCA1cHggcmdiYSgxNDYsMTQ2LDE0NiwuNSk7DQp9DQoucXJjb2RlLXdyYXBwZXIgLnBvcHVwX2hlYWRlciB7DQogICAgbWFyZ2luOiAxMHB4IDAgMjBweDsNCiAgICBmb250LXNpemU6IDEycHg7DQogICAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIGxpbmUtaGVpZ2h0OiAxNnB4Ow0KICAgIGhlaWdodDogMTZweDsNCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7DQogICAgY29sb3I6IGdyYXk7DQogICAgdGV4dC1hbGlnbjpjZW50ZXI7DQp9DQoucXJjb2RlLXdyYXBwZXIgLmljb25zX2Nsb3NlIHsNCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQogICAgcmlnaHQ6IDEwcHg7DQogICAgY3Vyc29yOiBwb2ludGVyOw0KICAgICAtd2Via2l0LXRyYW5zaXRpb246IC13ZWJraXQtdHJhbnNmb3JtIDIxOG1zOw0KICAgIC1tb3otdHJhbnNpdGlvbjogLW1vei10cmFuc2Zvcm0gMjE4bXM7DQogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDIxOG1zOw0KfQ0KLnFyY29kZS13cmFwcGVyIC5pY29uc19jbG9zZTpob3ZlciB7DQogICAgdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7DQoJLW1zLXRyYW5zZm9ybTpyb3RhdGUoOTBkZWcpOyAJLyogSUUgOSAqLw0KCS1tb3otdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7IAkvKiBGaXJlZm94ICovDQoJLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsgLyogU2FmYXJpIOWSjCBDaHJvbWUgKi8NCgktby10cmFuc2Zvcm06cm90YXRlKDkwZGVnKTsgCS8qIE9wZXJhICovDQp9DQoucXJjb2RlLXdyYXBwZXIgI3dlY2hhdC1xcmNvZGUtaW1nIHsNCiAgICB3aWR0aDogMTgwcHg7DQogICAgaGVpZ2h0OiAxODBweDsNCiAgICBtYXJnaW46IDAgYXV0bzsNCn0NCi5xcmNvZGUtd3JhcHBlciAucG9wdXBfZm9vdGVyIHsNCiAgICBtYXJnaW4tdG9wOiAyMHB4Ow0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICAgIGxpbmUtaGVpZ2h0OiAyMnB4Ow0KICAgIGNvbG9yOiAjNjY2Ow0KICAgIHRleHQtYWxpZ246Y2VudGVyOw0KfQ0KLnFyY29kZS13cmFwcGVyICN3ZWNoYXQtcXJjb2RlLWltZyAucXItbG9nb3sNCgl3aWR0aDoyNHB4Ow0KCWhlaWdodDoyNHB4Ow0KCXBvc2l0aW9uOmFic29sdXRlOw0KCXRvcDo1MCU7DQoJbGVmdDo1MCU7DQoJbWFyZ2luLXRvcDotMTJweDsNCgltYXJnaW4tbGVmdDotMTJweDsNCgliYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzUUFBQTdFQVpVckRoc0FBQVowU1VSQlZFaExmWlpiakYxVkdjZC9lKzNydWN4MHprdzdaZHBTN0dpdExhMW9xeUMxc1ZDbUJXeGpJazMwUWFKaUhHMVVpTUtEMFJnTTRJTUpUUXpSRjJKQ2xDQ0VtSWlObGlhVitvREpvRkFzaVJXc3BaWVN6TFNkKzdudTY5citUeGxqZldGTjlwbVpkZGI1MW5mNVg0N3pxNmtMNWFISFQ0SVhrcGNCeGhoS1cxQ1dZSUtVMUhwa2pvdHJIS0lzdy9UZnVHcVZ4aU1wYzF3OFBCdVNlSVBVeWlacFBzL1B2N1lENStQMy82WThuWXpvWktxSU1Za0MrYTVQR2VjNFpZYnJlVGdLRXNjeGJoQlE0aXlIZm5kWlI4RkxoUzhONURtOU1HZUZ6V2lhZ0dqUnhWeHNGNFRGWlFyamtpY2VBMDVJMk0wWXNnWnJWcWlhQ25sUFoweUZvSER4OVFTMi8xdEY2NHlYMTNCVC8wb0Z2ZEpTVDF6aWJGanZLekhIUWYwSVNOMkdEaVFFTlpXYjlIRENDak9GUGt5bVF5V1ZXaDJyckZ5ai9NdEVsL2F3eEtxNHgwQStvenBpZWtWQzVLcTEvUUxWV2s4WDVFNnFDNWFYS1pXU1NzUWZJRmMxdmttSjA1eTQwNmJaNnZmVW9aMEc1SmtsYldmWWNJeXMyV1hCTnVoUkkrOFdlRzY0SEcxNWFWN090Wk5IeXJtZ3BzeGk5ZGZIdWg2anppSmZ1WE1MRzRZR3FGQW91Q3FwVnZubGl4ZjQyTHFJNmtDZFg3L3dUeDQ0dU8zS2pJTGVITDNLU3I3NzlHdTA0b0xjNjdkTzlYZmIvNnVnZEh3U3RhWG9ObmxvOGphK3Mzc3RheG9SbzNVWUg5VkZRY1NtUnN6M1BydVppZlV1a3dlMjhvWHREVFlNdTF5N2RwVHAyU1pMQzUzbGFQMVY2a2R6VXZQVnE0TEIxT3FTSmtsSDNVMFNtdTBCZnZiY0NhR2k0RSt2cnFBYVh1SzF3d2N4dVNXTFFvd05XSEJkOWoveUlrdnRRZnpoUlNyMWxXcGhSbUc3dUxhT0VXQk1rUW1XZ2xpaVlyeEtoQmtlNFlGSGovRDlKNDh4Y2NNNFIrKzlpMDl2dnNpekR4N2czSVVXUHoweFRVVjRONEx6U09veFdDa1lHR3BoMVpJNHVicUNkNWRCbUxmOXJIeGxubFdveFFtL2UrekwvT0R6K3ppNDQvMjBpb0tkVzhmNTFOb2FqYnFHVzNXVVhVS3JuRmY5SGxNUDM4R0p3NS9oK3RGQlJmdC9qdlNYNTVDVGE3RFZJdFE0WjdWVjh0aVRKN2w1MHdEekd2cmxhY3Z6cDkraFdWK0RuMWltenMwemM4bmxtVCsveVh6VE1LamEvenJkNGZYTE1XazBTTDBRZks5YXpycXZIeW1ud3lvMWtTa1ZVMk5ieFhXWEJQRkFERjZpZENQcVl2bGlWcXBZbDJvUzBmT2F3dm9ZYmp5bjlJUVR2MExrcHlLaStPQlVKUzJ4eUJoaGUycDhYWE4yUE0wN3lHbllDMFMyamZWcStINFBOeEluc29CdU5rOVpWQVdHRUtlaWdKSVFFeXpnRHNmNGpaVml2eEtLbXl5WVlYckpvbVlxY0VlS3E1NFlJMml5bU9EUHpYUDhrWDE4VklPdTk4N3BBc3ZuUGx6bDBPNGhIcjFuTDVPM3JwZkc1QVRPTEEvZGZSdkpyRnI3ZGhWYWwxajBWZ3Jpc0RXYzV2NDdQOGkyb1Z4YTFzR0llS2FWK3h5NGFZeWZUTjZFVFEwN3Q3VjQ5dDc5M0RHK2p2dDJqWFBmN2pHVzNwaGlZdnN3U2J2TGxoRmZnYnA4Ni9aVkhIbndSaHB1eklacXpJL3Uzc0U5dDM2SS9Wc0cyYlY1REVmZ3lQTlNDdUhCVW11ZWVzMktFaEYzN2QzREQ1ODRnV2tZenM4c2NzMmFZVWJYak5OWmFyRjVjNFBEMzl6SDZqVU9Hd1pxZVBGbEpuWnM1SzJaTmkrZE9zZmVHNi9qaHV0R2lZUW1Lelcxa2dxQnY0VUF3UmVmT3N0ZnpyYlk5WTFqbkV3cUdtYktTTkRtNk10ZDZqcVRWa2Q1L2N3WjNsbE1lZm1WODdTTENyRy9ucitkdmNoWFB6bkt6azByT1hhcVM4T1JyRFRmcGliOXluM3hhaGxOa3VwRWN1c1ExR1U2ZnNqNTJZVGYvcVBreDMrWW9sb1pvOUpyTXJMcUdwNTQ1amkzN1BrRWpTam05S3ZQYy9OSE52TDBxVVVlL3YyYk5GWkVQUFVLWEgvTEh2Wk9mQUN2YzBrd1BmUmNPU2MxOU9qeXBZa3QvT0xvdjBoV0JJU2REcW1NeG5HcnJIWm5KWEJEbkprenJJb3lCaVF2dlN5aFVpMzQ5NEtSVjVRRWJzbkc5NjNqcGIvUHlMQWszWUorcXlzMS9lOEZyckhZYkVHd0doS3JTMndoUjZLRlNWMFJ5SkNKN2JYUUkrMmxRbGlJVUU4aDRqcnlCbGRtbFBlbFhydSs5Q2xRNy91ZnozUDVnY2FoTitRN1ltMGNOQ1RYNG8wODFsRldtYTNScklqaFZtSVdERWsySERMOUgwdm9Rbm0zVnlpQTV3b3hHWkVrbWtnQ0p4ZE01R1I5a1l6N1lsZXE5NG5hNDhod1BMbFhybk9wcEJ0NXJaVXZTcW5BN1ZDVUhhRk1oQ3lVbmJ5N0xjVk1WWFZXeUlCY0s5T1JUbVZkdmVheVlQRkFsN3ZtTW1idHlHcXhNdEoyZ3B0cDh6MGV2MDgwSlJJNGx2Q3E1OHFlbnY3ZmpneW41N1VwbzVxTVNOWDk4WTJaY3ZMd2NkNWlCRGNYSGQ5amxWZDlaZWtiZXY4THhwVTl1N3pmYjdqMittb2J4SWJIdjcyZC93RFQrUHdrQTRHMUxRQUFBQUJKUlU1RXJrSmdnZz09Iik7DQp9DQouY3ogeyANCglwYWRkaW5nOjVweDsNCglmb250LXNpemU6IDE0cHg7DQp9DQouY2F0YWxvZy1idG57DQoJbWFyZ2luLXJpZ2h0OjEwcHg7DQp9DQo8L3N0eWxlPg0KDQoJPGRpdiBjbGFzcz0ic2lkZWJhciI+DQoJCTxkaXYgY2xhc3M9InNpZGViYXItdGFicyI+DQoJCQkNCgkJCQk8ZGl2IGNsYXNzPSJzaWRlYmFyLWJ0biBjeiBvcGVucGRmIj4NCgkJCQkJPHNwYW4gY2xhc3M9InRhYi1pY28gZ2x5cGhpY29uIGdseXBoaWNvbi1maWxlIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTozcHg7Ij48L3NwYW4+DQoJCQkJCTxzcGFuPuWFqOaWhzwvc3Bhbj4gIA0KCQkJCTwvZGl2Pg0KCQkJDQoJCQkNCgkJCQ0KCQkJDQoJCQkNCgkJCQ0KCQkJPGRpdiBjbGFzcz0ic2lkZWJhci1idG4iIGlkPSJzaGFyZSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IzlkYTVhYjsiPg0KCQkJCTxzcGFuIGNsYXNzPSJ0YWItaWNvIGdseXBoaWNvbiBnbHlwaGljb24tc2hhcmUiIHN0eWxlPSJwYWRkaW5nOjVweDsiPjwvc3Bhbj4NCgkJCQk8c3BhbiBpZD0id2JzaGFyZSIgY2xhc3M9InNoYXJlIj4NCgkJCQkJPGVtPjwvZW0+DQoJCQkJPC9zcGFuPg0KCQkJCTxzcGFuIGlkPSJxcXNoYXJlIiBjbGFzcz0ic2hhcmUiPg0KCQkJCQk8ZW0+PC9lbT4NCgkJCQk8L3NwYW4+DQoJCQkJPHNwYW4gaWQ9Ind4c2hhcmUiIGNsYXNzPSJzaGFyZSI+DQoJCQkJCTxlbT48L2VtPg0KCQkJCTwvc3Bhbj4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJxcmNvZGUtd3JhcHBlciIgaWQ9ImxheWVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+DQoJPGRpdiBjbGFzcz0icG9wdXBfaGVhZGVyIj4NCgk8ZW0gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tcmVtb3ZlIGljb25zX2Nsb3NlIj48L2VtPg0KCTxzcGFuPuWIhuS6q+WIsOW+ruS/oeaci+WPi+WciDwvc3Bhbj4NCgk8L2Rpdj4NCgk8ZGl2IGlkPSJ3ZWNoYXQtcXJjb2RlLWltZyI+DQoJPGltZyBjbGFzcz0icXItbG9nbyIvPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBvcHVwX2Zvb3RlciI+5omT5byA5b6u5L+h4oCc5omr5LiA5omr4oCd5YiG5Lqr6Iez5pyL5Y+L5ZyIPC9kaXY+DQoJPC9kaXY+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQokKGZ1bmN0aW9uKCl7DQoJdmFyICRidG5Db250YWluZXIgPSAkKCc8ZGl2IGNsYXNzPSJ2aXNpYmxlLXhzIj48L2Rpdj4nKTsNCgkNCgl2YXIgJGJ0biA9ICQoJzxidXR0b24gY2xhc3M9ImNhdGFsb2ctYnRuIGJ0biBidG4tcHJpbWFyeSBvcGVucGRmIj7mn6XnnIvlhajmloc8L2J1dHRvbj4nKTsNCgkkYnRuLnByZXBlbmQoJzxzcGFuIGNsYXNzPSJ0YWItaWNvIGdseXBoaWNvbiBnbHlwaGljb24tZmlsZSIgc3R5bGU9Im1hcmdpbi1yaWdodDozcHg7Ij48L3NwYW4+Jyk7DQoJJGJ0bkNvbnRhaW5lci5hcHBlbmQoJGJ0bik7DQoJDQoJJGJ0biA9IG51bGw7DQoJDQoJDQoJDQoJaWYoJGJ0biE9bnVsbCl7DQoJCSRidG4ucHJlcGVuZCgnPHNwYW4gY2xhc3M9InRhYi1pY28gZ2x5cGhpY29uIGdseXBoaWNvbi1lZGl0IiBzdHlsZT0ibWFyZ2luLXJpZ2h0OjNweDsiPjwvc3Bhbj4nKTsNCgkJJGJ0bkNvbnRhaW5lci5hcHBlbmQoJGJ0bik7DQoJfQ0KCSQoJy5jYXRhbG9nJykuYmVmb3JlKCRidG5Db250YWluZXIpOw0KCXZhciBwID0gew0KCQkJdXJsOmxvY2F0aW9uLmhyZWYsIC8q6I635Y+WVVJM77yM5Y+v5Yqg5LiK5p2l6Ieq5YiG5Lqr5YiwUVHmoIfor4bvvIzmlrnkvr/nu5/orqEqLw0KCQkJZGVzYzonJywgLyrliIbkuqvnkIbnlLEo6aOO5qC85bqU5qih5ouf55So5oi35a+56K+dKSzmlK/mjIHlpJrliIbkuqvor63pmo/mnLrlsZXnjrDvvIjkvb/nlKh85YiG6ZqU77yJKi8NCgkJCXRpdGxlOlNIQVJFX1RJVExFLCAvKuWIhuS6q+agh+mimCjlj6/pgIkpKi8NCgkJCXN1bW1hcnk6U0hBUkVfU1VNTUFSWSwgLyrliIbkuqvmkZjopoEo5Y+v6YCJKSovDQoJCQlwaWNzOidodHRwOi8vd3d3LnN0ZC5nb3YuY24vaW1hZ2VzL3NoYXJlTG9nby5wbmcnLCAvKuWIhuS6q+WbvueJhyjlj6/pgIkpKi8NCgkJCXBpYzonaHR0cDovL3d3dy5zdGQuZ292LmNuL2ltYWdlcy9zaGFyZUxvZ28ucG5nJywgLyrliIbkuqvlm77niYco5Y+v6YCJKSovDQoJCQlmbGFzaDogJycsIC8q6KeG6aKR5Zyw5Z2AKOWPr+mAiSkqLw0KCQkJc2l0ZTonJywgLyrliIbkuqvmnaXmupAo5Y+v6YCJKSDlpoLvvJpRUeWIhuS6qyovDQoJCQlzdHlsZTonMTAxJywNCgkJCXdpZHRoOjk2LA0KCQkJaGVpZ2h0OjI0DQoJfTsNCgl2YXIgcyA9IFtdOw0KCWZvcih2YXIgaSBpbiBwKXsNCgkJcy5wdXNoKGkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQocFtpXXx8JycpKTsNCgl9DQoJJCgnI3dic2hhcmUnKS5jbGljayhmdW5jdGlvbigpew0KCQl3aW5kb3cub3BlbignaHR0cDovL3NlcnZpY2Uud2VpYm8uY29tL3NoYXJlL3NoYXJlLnBocD8nK3Muam9pbignJicpKTsNCgl9KTsNCgkkKCcjcXFzaGFyZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCXdpbmRvdy5vcGVuKCdodHRwOi8vY29ubmVjdC5xcS5jb20vd2lkZ2V0L3NoYXJlcXEvaW5kZXguaHRtbD8nK3Muam9pbignJicpKTsNCgl9KTsNCgkkKCcjd3hzaGFyZScpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCSQoJy5xcmNvZGUtd3JhcHBlcicpLnNob3coKTsNCgl9KTsNCgkkKCcucXJjb2RlLXdyYXBwZXIgLmljb25zX2Nsb3NlJykuY2xpY2soZnVuY3Rpb24oKXsNCgkJJCgnLnFyY29kZS13cmFwcGVyJykuaGlkZSgpOw0KCX0pOw0KCS8v5LqM57u056CB55Sf5oiQDQoJdmFyIGlkID0gJzcxRjc3MkQ3NzhBREQzQTdFMDUzOTdCRTBBMEFCODJBJzsNCgkkKCIjd2VjaGF0LXFyY29kZS1pbWciKS5xcmNvZGUoeyANCgkgICAgcmVuZGVyOiAiY2FudmFzIiwgDQoJICAgIHdpZHRoOiAxODAsIC8v5a695bqmIA0KCSAgICBoZWlnaHQ6MTgwLCAvL+mrmOW6piANCgkgICAgdGV4dDogd2luZG93LmxvY2F0aW9uLmhyZWYsDQoJICAgIGNvcnJlY3RMZXZlbDogMiwNCgkgICAgZm9yZWdyb3VuZDonIzQyOEJDQScNCgl9KTsgDQoJJCgiLm9wZW5wZGYiKS5jbGljayhmdW5jdGlvbigpew0KCQl3aW5kb3cub3BlbignaHR0cDovL3d3dy5nYjY4OC5jbi9iemdrL2diL25ld0diSW5mbz9oY25vPTA4M0I0OEZBNzJEQkQzQjlCREU3NDUwN0JDMzE3MzZBJywnX2JsYW5rJyk7DQoJfSkNCgkvL+W8ueWHuuWvueivneahhg0KCSQoJy5wdWJfcmV2aWV3JykucHViUmV2aWV3KHsNCgkJJ3Byb3h5JzogJ2h0dHA6Ly93d3cuc3RkLmdvdi5jbi9wcm94eScNCgl9KTsNCn0pOw0KPC9zY3JpcHQ+DQo8L2h0bWw+DQo=
109
+ http_version:
110
+ recorded_at: Thu, 18 Oct 2018 16:41:24 GMT
111
+ recorded_with: VCR 4.0.0